记一次通杀的0day审计之路
2023-11-21 13:35:37 Author: 轩公子谈技术(查看原文) 阅读量:10 收藏

点击上方蓝字关注我们

事件起因

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

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

文件上传的接口

flashupload.action

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

首先定位到文件上传代码

跟进saveFile方法

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

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

跳转到时间戳代码

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

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

所以webshell url则为如下格式:

http://127.0.0.1/uploads/自定义时间戳.jsp

因为具体到毫秒,所以要对后三位数字进行爆破

burp 遍历后三位

20231120214217001

. . . . . .

20231120214217999

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

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

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

其实,这里存在一个坑,

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

代码中的时间,是北京时区

java.util.Date d = new java.util.Date(); //获取当前系统的时间

所以解决办法就是,使用python写一个同步请求,这边发送数据,那边获取当前系统时间


文章来源: http://mp.weixin.qq.com/s?__biz=MzU3MDg2NDI4OA==&mid=2247489615&idx=1&sn=d8a97178c3334a47504bdb0d5a4f3bb8&chksm=fce9bf80cb9e369662b8144429bd23e3d4dbaf12eeb674af4f4c10adcabeb08c52fe85cf0c5c&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh