实战 | 从目录爆破引出命令执行的过程
2023-1-28 21:28:49 Author: 渗透安全团队(查看原文) 阅读量:18 收藏

起因

最近看到一个漏洞,心血来潮突然想复现试一试,于是开始了fofa搜索资产之旅。意外发现资产归属的厂商的另外一个资产,看起来很好欺负,于是开始测试一番。

1673442271_63beb3dfaec43789ecd97.png!small?1673442272997

目录爆破

测试第一步,首先是信息搜集,这里简单扫了一下开放端口和服务,并没有发现什么有用的,这里不赘述。通过Wappalyzer插件,知晓了资产基本信息,嗯,是php站。

1673442564_63beb504602f079cff1d8.png!small?1673442565096

接下来根据资产和厂商的信息构建了一份字典,开始了经典的暴力破解,当然,结果也很经典,无果。于是又开始了经典的扫目录环节,这里选用的 dirsearch,非常好用。扫描不久便有了惊喜,存在几处可访问的路径。

1673442837_63beb615c71443a2b2e3a.png!small?1673442838947

这里发现了可疑路径/downloader.php,拼接访问一下看看,发现还需要参数才能正常访问。

1673443119_63beb72fb387085e52da7.png!small?1673443120631

任意文件下载

遇到这种情况,当然是模糊测试啦。这个页面盲猜需要参数读取文件,当然,手熟的师傅一眼就看出来了。这里还是正常操作,fuzz参数一下。打开burpsuit,拦包,发送到测试器,打开参数测试字典,因为之前信息收集得知主机系统可能是ubuntu,所以拼接一个../../../../../../../../etc/passwd,跑起来。

1673443673_63beb95960c5582e67611.png!small?1673443674211

仅仅不到10秒钟,便有了结果,排除一个误报,一个任意文件下载漏洞便入手了。

1673443821_63beb9ed6bc8d45b422f2.png!small?1673443822298
1673443897_63beba3999cb8194bf0c4.png!small?1673443898205

代码审计

当然,到这里也并不满足,因为不知道内部的路径信息,只能先来个经典的我下我自己,于是便把downloader.php页面下载下来了。

1673444151_63bebb37af55d1be0b55f.png!small?1673444152310

既然有了这个页面的源代码,于是就审计一番,看看有什么其它可利用的信息,源代码内部可能存在其它物理路径,凭证信息等等,本质上就是再次信息收集。这里用vscode打开瞅一瞅,一眼便看到文件读取的触发点,写的真是简单又实在,追踪了一下参数,确实毫无过滤,怪不得如此顺利。

1673453874_63bee1328313a2a7013db.png!small?1673453875186
1673444849_63bebdf14e31d61386b26.png!small?1673444850228

命令注入

这时上下略看一眼,发现了页面中包含多个system函数进行数据处理,于是全局搜索了一下system(,定位一下位置,但是大多数system函数传入的参数都使用了escapeshellcmd函数进行了过滤,此时先审计未过滤的system函数。

1673454208_63bee280bf8dfed34497b.png!small?1673454209378

对第一处system函数传入的参数进行追踪,发现传入的参数,都来自内部配置文件且参数经过escapeshellcmd函数过滤,外部无法操控,遂放弃。

1673454958_63bee56e6a86f2c0af00a.png!small?1673454959244
1673454700_63bee46ca8fe90934e6c0.png!small?1673454701420

第二处system函数看了一眼直接放弃。

1673454882_63bee5221c78e5e1acd50.png!small?1673454883187

第三处system函数在对file的后缀进行选择判断的分支处,可以看出如果file的后缀为.zip,则在此处执行,site参数如果能控制即可完成命令注入,传入的参数也只需要用;分隔堆叠绕过即可。

1673455329_63bee6e1dcd0c14d46298.png!small?1673455330534

这时直接在url中如此拼接参数?file=.zip&site=;cat /etc/passwd;,尝试访问,成功!

1673455979_63bee96ba1ca2abee567b.png!small?1673455980397

哥斯拉上线

此时就比较简单了,直接命令执行echo test.php写入webshell,哥斯拉链接测试,成功。

1673456318_63beeabe7ec05a45c371e.png!small?1673456319164

结语

其实上文看起来一切都很顺利,但在整个过程中也进行了很多无用操作,这些都是无法避免的,渗透过程往往都是磕磕绊绊的。渗透的过程就是通过信息收集去发现漏洞,通过漏洞再获取更多信息从而进入更深度的渗透过程从而达到目的。这样一次从目录爆破到命令的注入的过程整体上来说是简单清晰的,希望能给予各位师傅一点思路和经验。

https://www.freebuf.com/articles/web/355029.html


付费圈子

欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

进成员内部群

星球的最近主题和星球内部工具一些展示

关 注 有 礼

关注下方公众号回复“666”可以领取一套精品渗透测试工具集和百度云视频链接。

 还在等什么?赶紧点击下方名片关注学习吧!


群聊 | 技术交流群-群除我佬

干货|史上最全一句话木马

干货 | CS绕过vultr特征检测修改算法

实战 | 用中国人写的红队服务器搞一次内网穿透练习

实战 | 渗透某培训平台经历

实战 | 一次曲折的钓鱼溯源反制

免责声明
由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
好文分享收藏赞一下最美点在看哦

文章来源: http://mp.weixin.qq.com/s?__biz=MzkxNDAyNTY2NA==&mid=2247497036&idx=1&sn=333663fcb2293c8e9038d503c82715a7&chksm=c17608e3f60181f574a4918ba0e33ce0b8b62d58b68ad140bf59d4e885f0df7da1c3581a8774#rd
如有侵权请联系:admin#unsafe.sh