黑盒手动测试

  ● 有输入框的页面测试

  对于非富文本在输入框中输入特殊字符 <”tiehua ‘> 提交

  在提交后的页面查看源代码根据关键字tiehua查找源代码中的tiehua前后的<”>’是否已经被转义成

  &lt&quot&gt&apos 如果未被转义说明这个输入框存在xss漏洞的嫌疑(提交bug)。

  对于富文本输入框输入<img onerror=”alert(123)” src=http://xxx.com>提交页面

  如果页面有出现排版问题或者js错误说明这个输入框存在xss漏洞的嫌疑(提交bug)。

  ● 页面链接参数的测试

  链接带参数的如:

  http://mall.taobao.com/?ad_id=&am_id=&cm_id=&pm_id=

  该链接包含了4个参数,对于这种的测试方法和输入框测试方法一样只不过把参数当成你的输入框进行

  提交。如:

  http://mall.taobao.com/?ad_id=<”tiehua’>&am_id=&cm_id=&pm_id=

  另:可能大家会说光这点不足以说服开发修改bug,很可惜本文旨在说明如何找到xss漏洞并不是说明

  如何利用xss漏洞,感兴趣的看情况线下交流呵呵。

  黑盒工具测试

  推荐工具

  ● Paros(免费)

  ● Acunetix.Web.Vulnerability.Scanner (商业工具)

  白盒代码扫描测试

  在上一篇中我们讲到了xss漏洞产生的代码原因和解决方法如:

  <span>$!productName</span>

  此类的非富文本代码我们可以强制要求规范为:

  <span> $!stringEscapeUtil.escapeHtml ($!productName)</span>

  对于富文本的我们可以强制要求代码规范为通过过滤层过滤。

  根据以上的两条规则,我们可以从白盒代码上去进行静态扫描代码是否按照规范编写来预防和筛选xss漏洞。