目錄給了原始碼:
// 關鍵**
<?php
$res = false;
if (isset($_get['ip']) && $_get['ip']) ";// 執行命令,可以拼接
exec($cmd, $res);// 執行cmd,把結果輸出到res
}if ($res)
show_source(__file__);
?>
根據第五行**,這裡直接拼接就行
看到有乙個php檔案,8061098418328.php
,直接用cat,但是沒有顯示
考慮到有特殊字元,無法回顯,使用base64編碼,拿到flag。
過濾cat,類似cat的指令這裡有一堆
和上一題思路一樣,拼接語句
先用ls檢視檔名
再用乙個類似於cat的指令檢視內容並以base64格式輸出
下一題空格用$
代替即可,還可以使用ifs$9、%09、、<>、、%20
來代替空格
其餘思路和上一題一樣
emmmm,我想的是,過濾了目錄分隔符/
那我就不用了,
直接用;
拼接命令即可,其餘思路一樣
payload:127.0.0.1;cd flag_is_here;cat flag_159229063344.php | base64
前邊只有base64編碼的時候用到了運算子,而file | base64
也可以寫成base64 file
剩下的思路以之前一致
過濾了|,&,;, ,/,cat,flag,ctfhub
空格可以用$
cat可以用more
flag可以用正則f***
ctfhub應該用不到
查了一下,在linux下,命令分隔符除了;
還能用%0a
(換行符)
有了;就可以不用運算子了
然後按著之前的思路去做就可以了
最終的payload
!這裡要注意,因為%0a是url編碼,所以一定要輸在url中,否則%0a會被再次編碼
檢視目錄127.0.0.1%0als
檢視資料夾內容127.0.0.1%0acd$f***_is_here%0als
檢視flag127.0.0.1%0acd$f***_is_here%0abase64$f***_31393309531738.php
解題過程
構造payload,包含shell.txt
並執行傳入的引數
解題過程
既然題目是php://input
,那就用它吧
php://input === post包的body那麼
/?file=php://input
,最終效果為include(php://input);
我們只需要把post的body設定為我們要執行的php**即可
解題過程
使用php偽協議php://filter
進行檔案讀取,因為是flag,所以不需要編碼
構造payload:?file=php://filter/read/resource=/flag
ctfhub技能樹 彩蛋
彩蛋題建議大家首先自己動手去找一找 做 好 準 備 後 再 看 下 文 使用網域名稱查詢工具查詢子網域名稱 隨便開啟乙個題目,抓包 在url中間新增換行或空格,再放包,即可拿到flag 在writeup裡搜尋egg即可拿到flag 在工具裡搜尋egg,即可拿到flag flag就在鏈結裡 乙個套路 ...
CTFHub 技能樹 命令注入 無過濾
進入頁面後給出的原始碼,題目要求輸入ip位址執行ping命令 res false if isset get ip get ip exec cmd res doctype html ctfhub 命令注入 無過濾 title head h1 由於沒有採用過濾,所以我們直接進行拼接,輸入192.168....
CTFHUB 技能樹 Web RCE 上
這一篇關於php偽協議 eval執行 eval函式應該都知道,就是把字串按照 php 來計算 這裡源 沒有進行任何過濾 所以直接可以傳參 cmd system ls cmd system cat flag 25186 乙個好的web手一定不會忘掉 號 檔案包含 題目是這樣的 它裡面已經有乙個shel...