其一:如何保留/**/注释符号?
部分过滤器会对style中的注释符号进行删除,有些只删一次,那注定会有漏洞;用递归删除注释的那基本没问题。
但是部分过滤器考虑到可能出现重复递归的异常或效率上的问题,只递归有限的次数。
之前一直想构造测试递归次数的的注释符号串,最近才想到可以绕过有限次数递归过滤的构造方式。
一个正确的删除注释的正则表达式如下:
/*.*?*/
删除时:
需要删除一次:/**/
需要删除两次://**/**/
之前一直卡在这里,一直构造不出来需要删除三次的情况。
最近发现只要将一对注释符号插入自身第一个"/"后面即可
需要删除三次:///**/**//**/**/
需要删除四次:////**/**//**/**///**/**//**/**/
并且可以重复这个动作无限次,重复的次数等同于需要递归过滤的次数,有点抽象,看代码。
string comment = "/**/"; for (int i = 0; i我利用这段代码生成了4M的数据发出去,结果还是被过滤,看来是正确的递归过滤。不过这个东西挺有意思。
第二:关于与link标签的问题
我们知道一段引用css的link标签的写法
其中rel必须等于stylesheet才能作为样式表引用,部分过滤器只判断rel是否等于stylesheet来进行过滤,因此我觉得其中有机可乘。
尝试添加各种字符,试到空格,
例如rel="stylesheet ":
在没有的情况下回去下载href链接中的文件但没有执行(十分诡异的设定,不能执行为啥要去下载?)
在有的情况下可以正常显示样式,但expression无法执行
另外IE8的iframe子页面不会继承父页面的,IE9会继承
最后试到在rel="stylesheet[null]"在末尾加了一个空字符,就可以执行跨站
不过仍然对实际目标跨站没啥帮助,因为被编码成了
失败的跨站过程,大家随便看看
摘自:http://zone.wooyun.org/content/2041
文章来源于lcx.cc:最近遇到的与跨站相关但关系不大的两个小问题
相关推荐: struts2 最新S2-016-S2-017漏洞通杀struts2所有版本
struts2 最新S2-016-S2-017漏洞通杀struts2所有版本 园长 (你在身边就是缘,缘分写在数据库里面。) | 2013-07-17 12:29 Struts2这个不争气的家伙。已经无话可说了。 POC来自官方: http://struts.…
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论