【问题标题】:How to fool Kerio filtering rule?如何欺骗 Kerio 过滤规则?
【发布时间】:2015-09-08 09:00:34
【问题描述】:

我们办公室有一个过滤规则,阻止客户下载音频和视频文件。此规则是使用 Kerio 服务器设置的。

例如,当我输入一个指向 .mp4 文件的直接链接时,我会从这个 Kerio 防火墙面对这个页面:

好吧,为了绕过这个过滤规则,我在网络服务器上使用flask编写了一个python程序,以接收该文件的地址作为地址栏中的参数,将其下载到该服务器上,将其扩展名更改为非音频/非视频扩展(例如.fk.pdf等)然后发给我!

这是程序:

__init__.py:

# encoding=utf8
from flask import Flask
from flask import send_file
import Downup

app = Flask(__name__)
app.debug = True

downupper = Downup.Downup()

@app.route('/<path:path>')
def test_1(path):
    url = "http://"+ path[6:]
    file_addr = downupper.downup(url)
    return send_file(file_addr, mimetype=None, as_attachment=False, attachment_filename=None, add_etags=True, cache_timeout=None, conditional=False)
    #return file_addr

@app.route('/test_2')
def test_2():
    return '<html><body><h1>Hi!</h1></body></html>'


if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)

Downup.py

import os
import urllib
import random

class Downup():
    def __init__(self):
        self.download_path = "/var/lib/openshift/55ed2d400c1e6677a50001d1/app-root/data/"

    def downup(self, url):
        file_downloader = urllib.URLopener()
        file_name = str(random.randint(1,99999999999)) + "-" + "change .fk to " + str(url)[-4:] +".fk"
        try:
            file_downloader.retrieve(url, self.download_path + file_name)
            return self.download_path + file_name
        except:
            return "Failed!"

问题是我还是面对之前的过滤页面:

如您所见,我将文件地址作为参数传递给我的应用程序(此处为:fcuk-kerio.rhcloud.com),它以不同的扩展名下载到服务器上,并以none 作为其Mime 发送,但还是失败了。

请注意,我检查了主机,我看到我的文件已下载到那里:

这是日志:

请注意,我可以使用 VPN 和代理服务器绕过 Kerio 服务器,但我想使用上述方法。

【问题讨论】:

    标签: python python-2.7 flask mime-types


    【解决方案1】:

    我不可能肯定地说,因为我没有这个产品可以测试。有两个明显的问题。

    首先,url 仍然包含扩展名。尝试从表单中发布您要下载的 url,而不是作为 url 参数。

    其次,mimetype 只是对浏览器的提示,更改它实际上并不会更改文件。文件具有“神奇的数字”,独特的标题可以可靠地识别大多数文件类型,而无需扩展名和 mimetype 提示。您可以尝试对文件进行 base64 编码,而不是将其作为下载文件发送,然后自行解码。

    Base64 编码是您真正应该做的简单版本:使用安全 HTTP(https、ssl、tls 等)。 VPN 和代理为您工作的原因是它们加密了您的计算机与外部之间的所有流量,因此防火墙无法对其进行检查。

    【讨论】:

      猜你喜欢
      • 2011-03-07
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多