川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > 常见问题

软件测试之跨站脚本攻击测试

作者:川石学院 日期:2021-03-15 16:02:58 点击数:

        XSS 又叫 CSSCross Site Script跨站脚本攻击),是指恶意攻击者在 Web 页面里插入恶意 HTML 代码。当用户浏览该页时,嵌入其中的 HTML 代码会被执行,从而达到恶意攻击的目的。 XSS 属于被动式攻击,因为其被动且不好利用,所以容易被忽略其危害性。 XSS 攻击分成两类:一类是来自内部的攻击,另一类是来自外部的攻击。内部攻击是指利用 程序自身的漏洞,构造跨站语句;外部攻击是指自己构造 XSS 跨站漏洞网页或者寻找非目标机以 外的有跨站漏洞的网页。

软件测试之跨站脚本攻击测试(图1)

        测试包括两方面的内容:GET 方式跨站脚本测试和 POST 方式跨站脚本测试。(1)GET 方式跨站脚本测试。 GET 方式跨站脚本测试主要是测试以 GET 方式提交的请求页面是否存在漏洞。如下面的页面, 假设访问的 UTL 为 http://127.0.0.1:81/testget.php。 <?PHP   echo "欢迎您,".$_GET['name'];  ?> 该页面输出的内容为“欢迎您,[name]”,name 为输入的参数,如输入 URL 为http://127.0.0.1:81/ testget.php?name=test,页面显示的内容为“欢迎您,test”。 浏览器对网页的展现通过解析 HTML 代码来实现,那么如果 name 的参数为 HTML 代码,结 果会怎么样呢?具体的测试步骤如下: 步骤 1:将 URL 修改为http://127.0.0.1:81/testget.php?name=<script>alert(hello)</script>,如果 alert 函数弹出一个 hello 对话框,则说明系统存在漏洞。 步骤 2:如果没有弹出 hello 对话框,则需要在页面上单击右键,在弹出菜单中选择“查看源 文件”命令,如果源文件的内容为“欢迎您,<script>alert(hello)</script> ”,不管会不会弹出 hello 对话框,都说明系统存在跨站脚本漏洞。 步骤 3:由于 HTML 元素(比如<textarea>或")会影响脚本的执行,所以不一定能够正确地弹 出 hello 对话框,在测试过程中可以根据实际需要来构造 name 的 value 值,如多行文本输入框: </textarea><script>alert(123456)</script> 文本输入框: </td><script>alert(123456)</script> '><script>alert(123456)</script> "><script>alert(123456)</script> </title><script>alert(123456)</script> --><script>alert(123456)</script>  [img]javascript:alert(123456)[/img]  <scrip<script>t>alert(123456)</scrip</script>t> </div><Script>alert(123456)</script> (2)POST 方式跨站脚本测试。 POST 方式跨站脚本测试主要是测试以 POST 方式提交的请求页面是否存在漏洞。如下面的页 面,假设访问的 UTL 为 http://127.0.0.1:81/testpost.php。 <?PHP   echo "欢迎您,".$_POST['name'];  ?> POST 方式跨站脚本攻击测试相对复杂一点,测试步骤如下: 步骤 1:新建一个 HTML 文件,假设为 test.html,文件中的源代码如下: <form action=" http://127.0.0.1:81/testpost.php " method="post">  <input name="name" value="<script>alert(hello)</script>" type="hidden" /><input name="ss" type="submit" value="XSS 测试" />  </form> 步骤 2:运行 test.html 文件,如果 alert 函数会弹出一个 hello 对话框,则说明系统存在漏洞。 步骤 3:如果没有弹出 hello 对话框,则需要在页面上单击右键,在弹出菜单中选择“查看源 文件”命令。如果源文件的内容为“欢迎您,<script>alert(hello)</script> ”,那么不管会不会弹出 hello 对话框,都说明系统存在跨站脚本漏洞。 步骤 4:由于 HTML 元素(比如<textarea>或")会影响脚本的执行,所以不一定能够正确地弹 出 hello 对话框,在测试过程中可以根据实际需要来构造 name 的 value 值,如多行文本输入框: </textarea><script>alert(123456)</script> 文本输入框: </td><script>alert(123456)</script> '><script>alert(123456)</script> "><script>alert(123456)</script> </title><script>alert(123456)</script> --><script>alert(123456)</script>  [img]javascript:alert(123456)[/img]  <scrip<script>t>alert(123456)</scrip</script>t> </div><script>alert(123456)</script>



相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2021-03-15 16:02:58
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2021-03-15 16:02:58
  • 国外的月亮也不一定比国内测试猿的年薪美~2021-03-15 16:02:58
  • 建筑工程专业朱同学成功转行为软件测试人!2021-03-15 16:02:58
  • 财务管理专业转行软件测试月薪甩会计几条街!2021-03-15 16:02:58
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2021-03-15 16:02:58
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2021-03-15 16:02:58
  • 文科生转行软件测试照样拿下高薪15K!2021-03-15 16:02:58
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2021-03-15 16:02:58
  • 毕业1年,迷茫的他最终选择转行软件测试2021-03-15 16:02:58