如何快速发现XSS跨站攻击漏洞

教你如何快速发现XSS跨站攻击漏洞
什么是XSS跨站攻击?
跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意的Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。(以上内容来自百度百科)
其实简单理解,就是我们的程序,在参数传入时,没有对输入字符串中特殊字符或字符串做合理的检查和处理,如果参数传入的内容中,包含了恶意代码,那么我们的程序就会把这段恶意代码在浏览器中执行。那么,XSS跨站攻击会给我们带来哪些危害呢?下面的这些内容,或许你并不陌生:
1、钓鱼欺骗
2、网站挂马
3、身份盗用
4、盗取网站用户信息
5、垃圾信息发送
6、劫持用户Web行为
7、XSS蠕虫
在哪些地方需要进行XSS跨站攻击的测试验证?
可传参的URL中
可输入内容的表单
怎么快速判断是否有XSS跨站攻击注入点?
即在表单填写框中直接注入攻击脚本(一般都是JS脚本),如在表单中输入JS内容后,正常预期程序是不应该让脚本执行的,如果程序没有对输入内容做有效处理,则提交后程序会执行我们输入的JS代码。
XSS跨站攻击测试示例
下面测试步骤举例以可视化当前暂未被修复的一个XSS跨站攻击点为例,帮助大家理解如何发现XSS跨站攻击点。
1、登陆可视化运营后台:
athena-mf.maoniuchuxing.com 13000000000 111111
(以上账号仅适用于测试服和预发布)
2、进入【可视化运营后台-用车订单-行程变更审核】模块,选择一个审核状态为“待审核”的订单,在审核建议中输入以下内容:
点击【提交】(当前因该模块有部分需求变动,还未提测,第一次点击提交审核时可能会报错,再次点击会提醒审核状态已变化,如果遇到,请先忽略这个问题)
如何快速发现XSS跨站攻击漏洞
3、提交成功后,页面自动刷新,在加载刷新步骤2提交审核的订单当前页码时,浏览器上会弹出一个嵌入式页面的对话框,并显示内容”Hello,XSS“
如何快速发现XSS跨站攻击漏洞

以上,如果该字段的输入内容被做了有效的验证和处理,如语句中特有的<>等特殊符号被处理掉,那么程序就不会执行这段JS代码。提交后查看审核建议时,页面也不会有任何异常的提示信息。
还有在URL中进行XSS注入,也就是把URL中的参数改成JS脚本。使用网上的一个举例给大家做为参考:
如“http://www.cnblogs.com/javame/index.asp?IDClass=2&ClassName=abc”
改成“http://www.cnblogs.com/javame/index.asp?IDClass=2&ClassName=abc”
看看有没弹出对话框显示hello,有的话就有跨站漏洞。
上面举例,是以页面加载弹出框的方式发现是否存在XSS跨站攻击,并不等同于所有的攻击代码,都会有弹窗提醒,代码是可以实现用户不感知的方式来注入攻击脚本的。因此,测试人员应该在测试过程中,尽可能的去主动发现这些安全漏洞。