PortSwigger30连环靶场XSS跨站脚本攻击—基础篇
什么是XSS
跨站脚本(也称为XSS),允许攻击者破坏用户与易受攻击的应用程序的交互。XSS漏洞通常允许攻击者伪装成受害用户,执行用户能够执行的任何操作,以及访问用户的任何数据。如果受害用户在应用程序中具有特权访问权限,那么攻击者可能能够完全控制应用程序的所有功能和数据。
跨站点脚本的工作原理是操纵易受攻击的网站,以便向用户返回恶意JavaScript。当恶意代码在受害者的浏览器内执行时,攻击者可以完全破坏他们与应用程序的交互。
世界第一个蠕虫病毒Morris就是XSS
一号靶场
基础篇,比较简单,属于入门级别
二号靶场
主页没有输入框,留言板处有注入点
闭合a标签,注入脚本即可
</a><script>alert(/xss/)</scrpt><!--
三号靶场
主页有输入框,试探一波
有回显,就好办了,查看一波源代码
h1标签,尝试闭合注入但是无果。
查看源码发现,底下有一个img标签,参数正好是搜索框中输入的文本,闭合img标签,注入脚本
"><script>alert(/xss/)</script><!--
四号靶场
跟三号靶场差不多,主页搜索框有回显,源码查看,span标签,尝试闭合
知道了,这个过滤了script 关键字,尝试绕过前端过滤
绕过尝试几波没走通,img标签没有过滤,搞定搞定
<img src=x onmouseenter='alert(1)'>
五号靶场
目标为 盗取cookie
留言板尝试几波无果…切到反馈页面
观察发现,参数returnPath的值会回显到href属性中,底下的script中的代码也验证了
javascript:alert(document.cookie)
六号靶场
主页没有任何输入框,查看一波源代码,发现底下一段 JS 代码
有个hashchange事件和一个函数,函数内貌似是在找包含相应代码的h2标签,然后赋值到post变量中,然后有个滑动效果
通过查阅发现,通过定位不同的hash值,可以使页面滑动到相应的位置
研究了下这段代码,发现hash值,可以找到一个h2 标签,如果通过appendChild的话,页面可以发现可以成功加入这个标签,出现回显,利用这个注入点的话,尝试构造img标签的payload
成功弹窗,那这里就是注入点,但是关卡没有提示通过,重新看了遍题目,需要使用虚拟服务器,来发送这个payload,因为目前还只是本地构造的,其他人并无法触发,通过利用iframe 和 靶场要求的服务器,重新构造payload
解决!这关还是有难度的,查了不少资料~~~
七号靶场
依然是页面有回显,但是脚本无法触发问题
用burpsuite找到回显位置,闭合构造payload即可
八号靶场
找到注入点,构造payload(感觉跟上面哪关一模一样 =。= ||| )
javascript:alert(1)
九号靶场
回显查看注入点,这个地方闭合了好几次没有效果,查阅资料,发现一种牛逼思路,通过- ,也就是减号作为运算处理。
'-alert(1)-'
基础篇就9个,进阶篇下次更!