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

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

地址: http://www.virusdefender.net/index.php/archives/45/
3993 次点击
所在节点    Python
12 条回复
binux
2014-11-14 20:49:30 +08:00
这样防xss思路就是错的
virusdefender
2014-11-14 20:50:28 +08:00
@binux 为什么啊?
binux
2014-11-14 21:09:55 +08:00
@virusdefender 哦,我明白你的目的了。

创建模式要比删除模式好。创建一个新对象,提取需要的信息,把信息赋值给新对象。
feilaoda
2014-11-14 21:12:33 +08:00
lxml的clean html即可
gamexg
2014-11-14 21:13:25 +08:00
没做过,难道像 ChanneW 说的,全部无效,然后手工重新生成有效的html代码?
Bakemono
2014-11-14 21:15:44 +08:00
今天没带macbook回宿舍…明天我帮lz bypass一下xss filter 吧:)
nooper
2014-11-14 21:22:30 +08:00
应当尽量避免使用del,你的代码可以更简化。还是有点复杂。
virusdefender
2014-11-14 21:25:58 +08:00
@binux
@nooper 其实这也是别人写的 我拿过来测试的时候发现了几个问题
virusdefender
2014-11-14 21:26:29 +08:00
@Bakemono 好啊 好啊 这几个问题也是我在fuzz的时候发现的啊
ryd994
2014-11-15 00:27:21 +08:00
典型的被语言惯坏了,你到C++里绝对会被打死~
正确做法难道不是一边检查一边加元素,检查不通过就不加么
ryd994
2014-11-15 00:30:47 +08:00
检查,坚持成功就加到新list里
msg7086
2014-11-15 07:09:42 +08:00
从Rubyer的角度来看这个似乎应该用#select或者#delete加个block解决。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/146595

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX