本文共 2661 字,大约阅读时间需要 8 分钟。
","",$str11);$str33=str_replace("<","",$str22);echo "没有找到和".htmlspecialchars($str)."相关的结果.
".'';?> payload的长度:".strlen($str)."";?>
果不其然他是把上一关的链接加上了
","",$str11);$str33=str_replace("<","",$str22);echo "没有找到和".htmlspecialchars($str)."相关的结果.
".'';?> payload的长度:".strlen($str)."";?>
这个$_SERVER[‘HTTP_USER_AGENT’]就是来获取的
","",$str11);$str33=str_replace("<","",$str22);echo "没有找到和".htmlspecialchars($str)."相关的结果.
".'';?>
欢迎来到level14 欢迎来到level14
这关成功后不会自动跳转。成功者 点我进level15
我们查询一下,需要访问这个网页,
我们使用某种不存在的东西,访问一下 可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。将XSS写到Exif里(PowerExif)exif是PHP拓展,如果要用exif_read_data
函数要记得开启拓展。
linux系统使用exiftool工具,进行修改。windows系统直接使用鼠标右键进入属性页面直接修改。 在配置文件php.ini中找到
php_exif.dll
将其加载顺序替换到php_mbstring.dll
的后面,重启Apache打开页面进行读取,弹窗成功 这个网站可以修改 欢迎来到level15 欢迎来到第15关,自己想个办法走出去吧!
';?>
https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js
被墙了
https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js
ng-include 指令用于包含外部的 HTML 文件。
包含的内容将作为指定元素的子节点。
可以看到我们提交的参数src的值被插入到了标签的class属性值中,但是前面还有ng-include这样的字符。
ng-include是angular js中的东西,其作用相当于php的include函数。这里就是将1.png这个文件给包含进来
我们这么构造?src='level1.php?name='
就相当于访问了一次level1,同时让1执行了xss
1.ng-include,如果单纯指定地址,必须要加引号
2.ng-include,加载外部html,script标签中的内容不执行
3.ng-include,加载外部html中含有style标签样式可以识别
1,ng-include指令用于包含外部的HTML文件。 2,包含的内容将作为指定元素的子节点。
3,ng-include属性的值可以是一个表达式,返回一个文件名。
4,某种情况下,包含的文件需要包含在同一个域名下。
发现scrip和/被编码为
因为这里把空格都编码了,也就意味着我们无法通过空间来将字符分隔进行语义的区分,不过我们还可以用回车来将它们分开。而且这里将/符号也编码了,所以我们需要的是一个不需要封闭的标签,在一开始之前用过的 可以用回车的URL编码格式%0a来表示。当然%0d也可以。
http://127.0.0.1/xsslabs/xss/level16.php?keyword=
".$str5."";?>
可以看到关键字script以及/符号,空格都被替换成相同的空间字符实体了。这样也没办法去封闭前面的标签了。
18关同17关
arg01=version&arg02=<a href="javascript:alert(/xss/)">xss</a>
level20 仍然是flash的xss
一片空白的20关 https://blog.csdn.net/u014029795/article/details/103217680 师傅的博客level20.php?arg01=id&arg02=\"))}catch(e){ }if(!self.a)self.a=!alert(document.cookie)//%26width%26height
这关确实没思路了
可以试试flash xss扫描工具