はまやんはまやんはまやん

hamayanhamayan's blog

LINE CTF 2022 Web 解説まとめ

CTFtime.org / LINE CTF 2022

自分の復習用に集めた情報をまとめておく。

gotm

SSTI可能。idに{{.}}を与えてやるとJWTの秘密鍵が漏洩するので、それを使ってトークン改ざんしてflagを獲得する。

Memo Drive

バリデーションをbypassしながらLFIして、./flagを読む問題。

bb

環境変数を使ってRCEする方法がこの世に存在するようだ。これを使う。

https://movaxbx.ru/2022/02/22/how-do-i-use-environment-variables-to-inject-and-execute-arbitrary-commands/
(ruドメインの締め出しか知らないが、アクセスできない。VirusTotalとかでIPアドレスを持ってきてhostsに追加する感じで手元で名前解決してやれば見れる。)

online library

app.get("/:t/:s/:e", (req: Express.Request, res: Express.Response): void => {の部分で自由にLFIできるので、これと/proc/self/memを使ってメモリが見れる。
express-sessionではセッション情報がメモリに載るので、usernameにXSSコードを入れてsubmitするとメモリにXSSコードが載るので、それをLFIで取ってきて踏ませる。
すごい方法だけれど、わざわざusernameを報告前に送っているし、領域を指定して取得できる仕様もあるので想定解法なのかもしれない。
ログにpayload乗っけてLFIしてXSS発動と同じ雰囲気。

Discordのwebチャンネルではメモリ経由以外の解法もあると発言している人がいた。この人曰く、この解法ならxssの必要もないとのこと。

Haribote Secure Note

このセクション間違ってるかも。注意。

CSPをbypassして、XSSする問題。以上のように三者三葉

title todo

賢すぎるな。
画像アップロード機能があってキャッシュ機能もあるのだが、キャッシュヒットした場合は特殊なヘッダーが突くことを利用して、初回アクセスか2回目以降アクセスかが分かる。
これをオラクルとして機能させるために、scroll-to-textと画像のloading=lazyをうまく使う。
後はこのオラクルを使ってXSLeakする。

(そういえば去年もXSLeak問ありましたね)

me7-ball

理解できてない。
使ってるライブラリにsecret無しでデータを読みだす方法があって、それを利用すると解けるということだと思う。
多分。