java怎么知道上传文件是否成功_文件包含漏洞之——tomcat CVE-2020-1938漏洞复现
這個(gè)漏洞是今年2月份出現(xiàn)的,他的影響范圍也是非常廣的。
2月20日,國(guó)家信息安全漏洞共享平臺(tái)(CNVD)發(fā)布了Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938),這個(gè)漏洞是由于Tomcat AJP協(xié)議存在缺陷而導(dǎo)致,而攻擊者利用該漏洞通過(guò)構(gòu)造特定參數(shù),讀取服務(wù)器webapp下的任意文件,若目標(biāo)服務(wù)器存在文件上傳功能,攻擊者可以進(jìn)一步實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行。
漏洞復(fù)現(xiàn)步驟
1. docker啟動(dòng)環(huán)境
2. Python2 poc.py 172.18.0.2 -p 8009 -w manager -f /WEB-INF/web.xml
我們首先去啟動(dòng)vnlhub
然后啟動(dòng)docker
啟動(dòng)docker之后我們到vnlhub下面去
然后cd到tomcat
Ls查一下,vulhub已經(jīng)給我們結(jié)成好了CVE-2020-1938這一個(gè)漏洞的環(huán)境,我們cd進(jìn)去拖取一下這個(gè)環(huán)境就可以了。
這個(gè)時(shí)候我們?cè)谌ケ镜貫g覽器上去訪問(wèn)一下,訪問(wèn)我們的虛擬機(jī)地址8080端口,然后我們進(jìn)一步的去查看一下虛擬機(jī)的ip地址。
我們?cè)谌タ匆幌露丝谑遣皇?080 cat README
在這里我們沒(méi)有訪問(wèn)到,那么我們換一個(gè)瀏覽器
那么這個(gè)就是我們CVE-2020-1938所影響的一個(gè)環(huán)境,而這個(gè)漏洞我們也把它叫做幽靈貓漏洞。
接下來(lái)讓我們一起去復(fù)現(xiàn)它。
我們需要去利用到一個(gè)腳本,在這個(gè)腳本里是編寫了這個(gè)漏洞攻擊的代碼。然后我們跟上目標(biāo)的地址,加上ajp協(xié)議端口,加上-w manager -f 能夠通過(guò)這樣一個(gè)漏洞我們就能夠去讀取它下面的web xml文件
我們利用Python2的環(huán)境
跟上容器的ip地址,那這個(gè)容器的ip地址我們這里把它改為容器的ip地址
如果我們不知道去哪里去查看這個(gè)容器的ip地址,那么我們直接跟上虛擬機(jī)的地址,跟上-p 8009端口一樣也是可以的
那么我們就可以通過(guò)這樣的一個(gè)漏洞利用的腳本,跟上這樣的讀取參數(shù)來(lái)去讀取對(duì)方服務(wù)器下面的web.xml文件,我們可以看到我們能夠成功的讀取這個(gè)文件的結(jié)果出來(lái),這個(gè)也是通過(guò)文件包含的一個(gè)漏洞來(lái)去達(dá)到這樣的一個(gè)目的。
如果我們想進(jìn)一步的去getshell該怎么辦呢?
如果我們需要getshell的話是需要對(duì)方有這樣的一個(gè)上傳功能,在這里我們首先生成一個(gè)木馬通過(guò)kali。
我們?cè)谶@里生成一個(gè)java的反向連接的木馬。
這個(gè)時(shí)候我們需要將這個(gè)木馬上傳到服務(wù)器,由于我們這里沒(méi)有這個(gè)上傳功能,所以我們這里就直接把這個(gè)木馬復(fù)制過(guò)去。
在這里有一個(gè)txt文件,按道理來(lái)說(shuō)是不解析的,但我們可以通過(guò)文件包含漏洞來(lái)去解析txt中的木馬,然后我們主機(jī)遠(yuǎn)程上線。
這個(gè)時(shí)候我們?cè)谌ゴ蜷_(kāi)msf來(lái)去開(kāi)啟 監(jiān)聽(tīng),那么對(duì)方包含這個(gè)文件的時(shí)候,我們主機(jī)在kail這里就可以成功上線。
我們?cè)O(shè)定一個(gè)java代碼,并且是一個(gè)反向連接的代碼。
那么我們?cè)谠O(shè)定反彈過(guò)來(lái)的ip,也就是跟我們木馬中的一致。
這個(gè)時(shí)候我們r(jià)un一下開(kāi)始監(jiān)聽(tīng),這個(gè)時(shí)候就已經(jīng)開(kāi)始監(jiān)聽(tīng)了。
然后我們?cè)谶@里通過(guò)腳本去成功執(zhí)行,利用我們的幽靈貓漏洞
-f直接指定這樣一個(gè)本地文件包含,回車。
回車過(guò)后我們可以看到我們的kail里面,它就會(huì)獲取這樣的一個(gè)反向連接,反向連接從我們的容器連接到我們的kail里面來(lái),此刻我們?nèi)?zhí)行下命令id,可以發(fā)現(xiàn)我們現(xiàn)在是root身份,那么我們?cè)谶@里就可以獲得一個(gè)權(quán)限。
獲得目標(biāo)的一個(gè)執(zhí)行命令權(quán)限,成功的拿到了shell。
那么這就是這個(gè)文件包含配合上傳的一個(gè)getshell的利用方式。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java怎么知道上传文件是否成功_文件包含漏洞之——tomcat CVE-2020-1938漏洞复现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: l和l_L&T的完整形式是什么?
- 下一篇: java bitset_Java Bit