原标题:XSS进阶
1、XSS常用语句及编码绕过
XSS常用的测试语句有:
●<>alert(1)>
●
●
●
常见的XSS的绕过编码有JS编码、HTML实体编码和URL编码。
(1)JS编码
JS提供了四种字符编码的策略,如下所示。
●三个八进制数字,如果个数不够,在前面补0,例如“e”的编码为“145”。
●两个十六进制数字,如果个数不够,在前面补0,例如“e”的编码为“x65”。
●四个十六进制数字,如果个数不够,在前面补0,例如“e”的编码为“u0065”。
●对于一些控制字符,使用特殊的C类型的转义风格(例如n和r)。
(2)HTML实体编码
命名实体:以&开头,以分号结尾的,例如“
字符编码:十进制、十六进制ASCII码或Unicode字符编码,样式为“数值;”,例如“
(3)URL编码
这里的URL编码,也是两次URL全编码的结果。如果alert被过滤,结果为%25%36%31%25%36%63%25%36%35%25%37%32%25%37%34。
在使用XSS编码测试时,需要考虑HTML渲染的顺序,特别是针对多种编码组合时,要选择合适的编码方式进行测试。
2、使用XSS平台测试XSS漏洞
首先在XSS平台注册账并登录,单击“我的项目”中的“创建”按钮,如图1所示。
图1 XSS平台首页
页面中的名称和描述是分类的,随意填写即可。勾选“默认模块”选项后单击“下一步”按钮,如图2所示。
图2 XSS平台模块
页面上显示了多种利用代码,在实际情况中,一般会根据HTML源码选择合适的利用代码,以此构造浏览器能够执行的代码,这里选择第一种利用代码,如图3所示。
图3 XSS平台可利用的攻击代码
将利用代码插入到存在XSS漏洞的URL后,查看源代码。发现浏览器成功执行XSS的利用代码,如图4所示。
图4 目标用户访问的恶意链接
回到XSS平台,可以看到我们已经获取了信息,其中包含来源地址、cookie、IP、浏览器等,如果用户处于登录状态,可修改cookie并进入该用户的账户,如图5所示。
图5 在XSS平台获取目标用户的cookie信息
3、XSS漏洞修复建议
因为XSS漏洞涉及输入和输出两部分,所以其修复也分为两种。
●过滤输入的数据,包括“'”“””“”“on*”等非法字符。
●对输出到页面的数据进行相应的编码转换,包括HTML实体编码、Java编码等。返回搜狐,查看更多
责任编辑: