前言
我這次出兩題,分別是
- Web
- Login Panel
- Misc
- png chunk
Login Panel
預期解是 prototype pollution
sql injection
SELECT ? AS SECRET FROM users WHERE user = ? AND password = ?->
SELECT ? AS SECRET FROM users WHERE user = 'admin' AND password = '1'but 這樣行不通
prototype pollution
loginData = Object.assign({ secret }, loginData); // oh, that's cool其中這邊有個 prototype pollution Object.assign 將 secret 加入 loginData,可能導致對象原型的污染。 原先的loginData是
{ "secret": "THJCC{fake}", "user": "admin", "password": "1"}可以加入__proto__
只要我
{ "user": "admin", "__proto__": { "password": { "password": 1 } }}加入 __proto__ 的,整個 Object.prototype.password.password 被設為 1
那
FLAG : THJCC{pRoTo7YP3_Poi50ninG???}
png chunk
顧名思義就是png 的區塊 用 https://www.nayuki.io/page/png-file-chunk-inspector↗ 去看會發現
IEND 和 ITAT 的位置有錯 只有把它調整過來就好

Login Panel 非預期解

如果您是通靈大師,那麼密碼藏在首頁
密碼就是never gonna give you up {“user”:“admin”,“password”:“https://www.youtube.com/watch?v=dQw4w9WgXcQ&ab_channel=RickAstley”}↗
🤏
Thanks for reading!