手工测试 xss 没啥技术含量,只是把自己手工挖 xss 的简单心得和大家分享下
Xss 的形成原因无非是用户输入的 xss 代码经过服务器之后原封不动的返回到客户端中,这样攻击者就可以写出带有恶意行为的 js 脚本,传送给受害者,使得脚本在受害者机子上进行执行,最常见的就是盗取用户的 cookies
复杂的就需要懂很多 javascript 知识
现在的网站几乎大部分都会有与用户交互的功能,用户可以提交数据之类的,再加上开发对用户输入的数据过滤检查不严格,这样就很容易造成 xss
很多的工具可以扫到 xss 漏洞,工具的扫描过程有可能是对一个网址开始进行爬虫,查找用户可以输入的参数,可能是 get 方法的,可能是 post 方法的,更改输入参数值,使用自带的 xss 测试语句进行测试,观察返回的数据中有没有这些测试语句
但是很多的扫描工具扫描的并不是很全面
有可能漏掉很多
使用手工测试 xss 和工具扫描的原理是一样的,更改传递给服务器的参数值,观察返回的数据中参数值的变化,一般测试时,我习惯输入,这样若是返回的页面源代码中含有,那这个站 90%的就可以进行 xss,当然若要触发的话大多数情况下还需要你进行闭合操作
在手工测试 xss 中最重要的就是对一个站或是一个网址数据包的抓取及修改的过程,这样的工具很多,fiddler、brupsuite 等代理工具就可以实现抓包、改报的操作
我测试时喜欢 brupsuite,虽然免费的功能有所限制,但是对于自己抓包完全够用了
对于 brupsuite 的资料现在中文的貌似不是很多,自己也是一点点的摸索出来的
下面使用 brupsuite 做个简单的使用介绍
使用 brupsuite,首先需要对浏览器进行代理设置,推荐 firefox+proxy,用 ie 的话该代理,本机上网都会通过这个代理
打开 brupsu