前言
记录在挖掘SRC中中一个比较有意思的系统。
弱口令
登录页面没有验证码,选择直接爆破用户名密码。
登录系统发现文件上传功能。
任意文件上传
在附件上传处发现可以上传任意文件,但返回的path貌似是加密的。
如何解密该路径呢?思路:1、通过任意文件下载找到dll源文件 2、通过备份下载源代码
任意文件下载
利用备份字典并不存在www.zip、www.rar类似的应用备份。回到网站挖掘任意文件下载漏洞。搜索历史数据包filename、filepath等关键字符串,发现一处任意文件下载。
找到上传FileUpload.aspx的源文件。
c#源代码一般在bin文件夹,根据返回的信息猜测dll为Sciyon.SyncPlant.Web.Frame.dll
或者 Sciyon.SyncPlant.Web.dll
成功下载到Sciyon.SyncPlant.Web.dll
利用 dnSpy 分析。
灰盒审计
直接查看FileUpload类。在SaveFiles方法里可以看到path经过了des加密之后才返回给了服务端。
那我们需要寻找一下des加密之前的路径。即text4服务端存储文件的路径。
关键代码如下:
string
text = Path.GetFileName(httpPostedFile.FileName);
string
text4 =
string
.Concat(
new
string
[]
{
"../UPLOADTEMP/"
,
DateTime.Now.ToString(
"yyyyMM"
),
"/"
,
base
.Request.QueryString[
"GUID"
],
"_"
,
this
.ViewState[
"TYPE"
].ToString(),
"/"
});
text4 = text4 + now.ToString(
"yyMMddHHmmssfff"
) +
"_"
+ text;
即
text4
=
"../UPLOADTEMP/"
+
"当前年月"
+
"GUID值"
+
"TYPE值"
+
"当前日期和时间的格式化字符串"
+
"_"
+
"获取的文件名"
经过chatgpt的解释和数据包的结构可以猜测存储的路径。
类似于
/UPLOADTEMP/202309/8C5602C94DC1FBBC710260E464A5D1BB_file/230908181333111_1.txt
整个文件路径只有文件名是不固定的,是由年+月+日+时+分 + 秒 + 随机三位数 那么只需要爆破随机的三位数即可。
成功找到txt文件。随即上传aspx webshell。
经过尝试发现是一个黑名单的过滤。
绕过黑名单
代码层在证明了我们的判断,在看到拦截常用的文件后缀时,想到使用cer的webshell。证明可行。但访问确实403状态码。
大概率是该目录有限制。尝试../../ 跳出该目录。根据文件存储的结构,可以通过控制GUID实现目录的跳出。
上传的文件名即为_file/230909113931111_1.cer,枚举三位随机数即可发现成功执行。
总结
最后
需要加入知识星球的可以后台回复“星球”,里面可以学习更多漏洞相关的知识,包含但不限于SRC漏洞挖掘,攻防演练,内网渗透,及各种工具等等,详情回复"星球"后有介绍,即将满40人开始涨价,早加入早享受。
免责声明
获取方法
回复“钓鱼001" 获取 攻防演练-钓鱼文案
回复“app" 获取 app渗透和app抓包教程
回复“渗透字典" 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。
回复“书籍" 获取 网络安全相关经典书籍电子版pdf
压缩包解压密码:HackTwo
最后必看
本工具或文章仅面向合法授权的企业安全建设行为,如您需要测试内容的可用性,请自行搭建靶机环境,如果你学习了该文章内容需要测试请自行搭建靶机环境,勿用于非法行为。
原文始发于微信公众号(渗透安全HackTwo):记一次灰盒测试-任意文件读取/任意文件上传/弱口令
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论