首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

两个非常隐蔽的 bug 导致的 Python xss filter 绕过

  •  
  •   virusdefender · 2014-11-14 20:09:06 +08:00 · 2867 次点击
    这是一个创建于 1559 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在网上找了一个Python实现的xss filter,然后通过测试发现有绕过的情况。究其原因,是忽略了一个比较隐蔽而且经常被误用的地方。然后自己去修改,去打补丁,发现还是有问题,又牵扯出了python的另外两个知识点,反正我觉得自己学到了很多,在这里分享一下,有什么问题希望各位大神提出来。

    地址: http://www.virusdefender.net/index.php/archives/45/
    12 回复  |  直到 2014-11-15 07:09:42 +08:00
        1
    binux   2014-11-14 20:49:30 +08:00
    这样防xss思路就是错的
        2
    virusdefender   2014-11-14 20:50:28 +08:00
    @binux 为什么啊?
        3
    binux   2014-11-14 21:09:55 +08:00
    @virusdefender 哦,我明白你的目的了。

    创建模式要比删除模式好。创建一个新对象,提取需要的信息,把信息赋值给新对象。
        4
    feilaoda   2014-11-14 21:12:33 +08:00
    lxml的clean html即可
        5
    gamexg   2014-11-14 21:13:25 +08:00
    没做过,难道像 ChanneW 说的,全部无效,然后手工重新生成有效的html代码?
        6
    Bakemono   2014-11-14 21:15:44 +08:00 via iPad
    今天没带macbook回宿舍…明天我帮lz bypass一下xss filter 吧:)
        7
    nooper   2014-11-14 21:22:30 +08:00
    应当尽量避免使用del,你的代码可以更简化。还是有点复杂。
        8
    virusdefender   2014-11-14 21:25:58 +08:00
    @binux
    @nooper 其实这也是别人写的 我拿过来测试的时候发现了几个问题
        9
    virusdefender   2014-11-14 21:26:29 +08:00
    @Bakemono 好啊 好啊 这几个问题也是我在fuzz的时候发现的啊
        10
    ryd994   2014-11-15 00:27:21 +08:00 via Android
    典型的被语言惯坏了,你到C++里绝对会被打死~
    正确做法难道不是一边检查一边加元素,检查不通过就不加么
        11
    ryd994   2014-11-15 00:30:47 +08:00 via Android
    检查,坚持成功就加到新list里
        12
    msg7086   2014-11-15 07:09:42 +08:00
    从Rubyer的角度来看这个似乎应该用#select或者#delete加个block解决。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   855 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 22:16 · PVG 06:16 · LAX 14:16 · JFK 17:16
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1