xss-labs Less8-15关卡
level8
输入script '">< on On
看看他过滤什么东西
发现"><
被实体化了On
变成小写的了
发现我们输入的也被写到了script
变成scr_ipt
,"
转换成"
,on
变成o_n
,On
变成o_n
我们输入javascript:alert(1);
来点击链接进行弹窗
发现javascript:alert(1);
被转换成javascr_ipt:alert(1);
我们可以进行编码啊,js
代码又不管你什么编码都一样的效果
1 | javascript:alert('a') |
上面HTML编码后变成
1 | javascript:alert('a') |
我们就输入
1 | javascript:alert('a') |
我们输入点击
level9
输入script '">< on On
看看他过滤什么东西
可以看见下面说你的链接不合法,什么是不合法没有办法我就看了一下他的源码
1 | <!DOCTYPE html><!--STATUS OK--><html> |
可以看见源码上写参数必须有http://
上面过滤script,on,src,data,href,"
我们输入
1 | http://javascript:alert('a') |
发现他没有弹窗
看一下源码
看看我们能不能叫前面的http://
用/**/
注释掉
变成
1 | <a href="/*http://*/javascript:alert('a')">友情链接</a> |
我们输入
1 | /*http://*/javascript:alert('a') |
发现/*http://*/
在前面没有注释掉啊
我就想放到后面不就好了吗用//来闭合
1 | <a href="javascript:alert('a')//http://">友情链接</a> |
我们输入
1 | javascript:alert('a')//http:// |
level10
他的输入点在url上
我们输入<script>alert('a')</script>
看一下网页源码
他重要都已经过滤了没有思路了
我只能看一下源码了代码审计一下
下面可以看见有一个t_sort
GET请求,他还过滤><
转换成空
1 | <!DOCTYPE html><!--STATUS OK--><html> |
我们URL输入http://127.0.0.1/xss/level10.php?t_sort=aaa
他也没有显示啊
看一下网页源代码
可以看见有hidden
属性就是隐藏的意思,用hidden
叫代码进行了隐藏
隐藏但是代码还是执行了啊
1 | <input name="t_sort" value="我们输入到内容" type="hidden"> |
我们可以用"
进行闭合然后在添加事件触发弹窗
应为事件都是达到条件才会触发我们,但是应为他的是隐藏的type="hidden"
在最后面我们就可以注释掉啊,在添加一个type="text"
输入框
下面
1 | <input name="t_sort" value="1"onfocus='alert(1)' type="text" //" type="hidden"> |
我们输入1"onfocus='alert(1)' type="text" //
level11
他的输入到地方也是在URL里面
我还是输入script '">< on On
看看他过滤什么
看一下网页源码和level10差不多
我叫下面提交的参数
t_sort
这个参数有返回
我们输入level10的提交的1"onfocus='alert(1)' type="text" //
看看他过滤什么
发现"
被实体化了
我输入><
也是被实体化了
没有思路了
看一下代码审计一下
可以看见下面的代码有一个$_SERVER['HTTP_REFERER']
$_SERVER
是 PHP 预定义变量之一,可以直接使用,它是一个包含了诸如头信息(header)、路径(path)及脚本位置(script locations)信息的数组。$_SERVER['HTTP_REFERER']
里面的HTTP_REFERER
是链接到当前页面的前一页面的 URL 地址,
$str33
变量只过滤了<>
1 | <!DOCTYPE html><!--STATUS OK--><html> |
$_SERVER['HTTP_REFERER']
在level10
访问到level11
就会触发
进入level11
后我们查看一下网页源代码
下面就有返回了
点击确定他会请求
我就用burp修改里面的请求
可以看见http请求有一个Referer
字段,$_SERVER['HTTP_REFERER']
就会取Referer
字段的内容
我在这个地方输入AAA
他的表单就有显示出来
1 | <input name="t_ref" value="他会显示在这个地方" type="hidden"> |
进行分析改成这样
1 | <input name="t_ref" value="1"onfocus='alert(1)' type="text" //" type="hidden"> |
我们在Referer
字段改成1"onfocus='alert(1)' type="text" //
请求出来可以看见返回的
我们在浏览器打开
level12
我直接查看他的网页源代码
发现他就是User-Agent
字段啊
burp抓包看看
我直接叫User-Agent
字段啊数据改成level11
的那样
进行分析改成这样
1 | <input name="t_ref" value="1"onfocus='alert(1)' type="text" //" type="hidden"> |
我们在User-Agent
字段字段改成1"onfocus='alert(1)' type="text" //
burp的回话在浏览器打开
level13
我还是直接查看网页源代码
发现这次在Cookie
字段里面
和level11
和level12
的方法进行修改Cookie
字段内容
进行分析改成这样
1 | <input name="t_ref" value="1"onfocus='alert(1)' type="text" //" type="hidden"> |
我们在Cookie
字段字段字段改成1"onfocus='alert(1)' type="text" //
还是在浏览器打开burp原话
level14
不知道没有思路,
真的是没有办法我就百度了xss-level14
应为这个是要引用其他的web页面,那个页面已经没有了
level15
我看一下页面源码
我一看见就懵了
发现了有一个可疑的ng-include:
是引用
但是还是没有思路
看一下源码用了htmlspecialchars()函数进行