XSS
100
Flag格式:Flag:xxxxxxxxxxxxxxxxxxxxxxxx
打开页面提示XSS注入,但是没有注入点啊。。。百度提示在url上加id参数。。
试试 ?id=1,有回显1,这下有注入点了
构造xss
http://103.238.227.13:10089/?id=<script>alert(_key_)</script>
进行了回显,没有执行xss,应该是过滤了
右键查看源码
<div id="s"></div>
... ...
<script>
var s="<script>alert(_key_)</script>"; //获取url里的id值赋值给s
document.getElementById('s').innerHTML = s; //将s(上一句的变量)作为HTML代码赋值给id为s(这里指上文id为s的div元素)的元素
</script>
分析源码,首先获取url里的id值赋值给s,接着赋值到div中,但是.innerHTML有个特性
如果字符串中拼接的 HTML 标签中有 script 标签,那么该段脚本是无法执行的,这并不是 bug,而是 w3c 的文档规定的
那就不用 script 喽 ,用 <img src="javascript:alert(_key_)">,还是没有执行。
猜测 <> 可能有过滤,注意页面编码utf-8 ,id传入代码会在s中运行,那么考虑将<>进行unicode编码,这样当代码被替换进去运行时 utf-8编码又会将其变回来
详细内容看这里:https://blog.csdn.net/qq_26090065/article/details/81589817
< 的编码\u003C, > 的编码\u003E,构造 \u003cimg src="javascript:alert(_key_)"\u003e ,执行成功 ~ 右键源码查看flag