安全矩阵

 找回密码
 立即注册
搜索
查看: 884|回复: 0

记一次通杀的0day审计之路

[复制链接]

215

主题

215

帖子

701

积分

高级会员

Rank: 4

积分
701
发表于 2023-12-1 19:40:19 | 显示全部楼层 |阅读模式
事件起因

事情发生在某省护网期间,客户的某个系统被上传了webshell,当时没在意

我可爱的领导经过昨天一下午的努力,找到了相关系统源码,随后开始进行审计


文件上传的接口


flashupload.action

上传文件后,不会返回对应文件路径,所以只能通过白盒进行挖掘

首先定位到文件上传代码



跟进saveFile方法



发现文件名路径是时间戳+jsp,但此时间戳非彼时间戳

上传的目录是在system.properties,由管理员自定义目录



跳转到时间戳代码



第⼀段代码是获取具体时间,具体到毫秒



第⼆段代码是把具体时间转换为自定义格式的时间戳,而不是unix时间戳

所以webshell url则为如下格式:
  1. http://127.0.0.1/uploads/自定义时间戳.jsp
复制代码
因为具体到毫秒,所以要对后三位数字进行爆破

burp 遍历后三位
  1. <p>20231120214217001</p><p>. . . . . .</p><p>20231120214217999</p>
复制代码

那么代码层面分析完成后,开始实操


全都是404,这就很离谱(印象中,老版本的bp是可以修改时区的,新版本没找到在哪里修改)

于是又使用yakit发包,发现时区也是GMT


其实,这里存在一个坑,

burp中,响应包的时间并不是服务器的时间,而是GMT时区



代码中的时间,是北京时区
  1. java.util.Date d = new java.util.Date(); //获取当前系统的时间
复制代码
所以解决办法就是,使用python写一个同步请求,这边发送数据,那边获取当前系统时间






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-27 22:39 , Processed in 0.021573 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表