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