CTFHub 技能樹 命令執行

2022-04-03 00:23:30 字數 2236 閱讀 7145

目錄給了原始碼:

// 關鍵**

<?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...