最近遇到的与跨站相关但关系不大的两个小问题

  • A+
所属分类:lcx

其一:如何保留/**/注释符号?

部分过滤器会对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.…

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: