BugKu -- XSS

XSS

100

http://103.238.227.13:10089/

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="&lt;script&gt;alert(_key_)&lt;/script&gt;";    //获取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

猜你喜欢

转载自blog.csdn.net/qq_26090065/article/details/81589876
xss