实战 | 渗透之一个破站日一天

admin 2022年11月22日21:42:31安全文章评论20 views1759字阅读5分51秒阅读模式


0x01 使用关键词得到目标源码

某日上午接到临时安排对某公司进行渗透测试,此次渗透给的是一个主域名,并且也没有子域,打开了目标网站先对其进行一波信息收集

实战 | 渗透之一个破站日一天

中间件: IIS 8.5

实战 | 渗透之一个破站日一天

输入admin发现自动添加了/说明其目录存在,那么盲猜一波文件,login.aspx、default.aspx、main.aspx 等等
实战 | 渗透之一个破站日一天

最终在login.aspx下面发现后台登录页面,这不猜他一波弱口令??一顿操作过后账号被锁

实战 | 渗透之一个破站日一天

熟悉的开局,既然如此只能尝试其他方法了。


在主页的html代码中发现了某处信息

实战 | 渗透之一个破站日一天

设计制作?根据后面的域名访问过去,是一个建站公司那么,入手点来了。


IIS8.5+ASP.NET+建站系统先扫一波备份文件

实战 | 渗透之一个破站日一天

400多条ip,这开发商还行。使用FOFA查询工具,批量导出

实战 | 渗透之一个破站日一天

然后我们来扫一下备份文件,这里推荐我B哥的扫描器,可以进行批量存活扫描和目录扫描。
https://github.com/broken5/WebAliveScan

实战 | 渗透之一个破站日一天

在好几个站下面发现web.zip备份文件,下载下来过后,对其目标站点文件进行了对比,基本一致

实战 | 渗透之一个破站日一天


0x02 拿到代码开始审计多次碰壁

那么开始审计。

实战 | 渗透之一个破站日一天

在某接口处发现敏感操作WebClient.DownloadFile (远程文件下载),由于该方法需要提供绝对路径。。


比较头疼,但我跟踪相关参数发现,在另一个方法中调用了该方法。

实战 | 渗透之一个破站日一天

并传入Server.MapPath,这根本不需要找绝对路径了,系统都给你安排好了,那么构造POC:
ashx/api.ashx?m=downloadfile&FilePath=asmx.jpg&WebUrl=http://***.cn/

实战 | 渗透之一个破站日一天

访问地址:

实战 | 渗透之一个破站日一天

文件存在,那么证明可行,回到目标地址:

实战 | 渗透之一个破站日一天

被修复了文件不存在,继续回到代码中,审计其他漏洞在其他接口中,也均存在多个漏洞,如ueditor远程抓取漏洞

实战 | 渗透之一个破站日一天


文件重命名可Getshell

实战 | 渗透之一个破站日一天

但是这些接口都需要登录

实战 | 渗透之一个破站日一天

这就很头疼了,打算在一些无需登录的接口中尝试寻找SQL注入,最终在某处发现SQL拼接。

实战 | 渗透之一个破站日一天

但是这里调用了IsSafeSqlString检测

实战 | 渗透之一个破站日一天

常见符号基本被卡的死死的

0x03 拿下开发商寻找通用账号逆向加解密算法

由于都是使用了相同的建站程序,怀疑有程序内置账户,于是准备通过刚才审计出来的漏洞从同程序的站点入手,最终在某个站点成功拿到Webshell,看了下相关信息

实战 | 渗透之一个破站日一天

居然是厂商的演示站群,存了该开发商所有站点源码。应该是在开发过程中的演示环境吧站点有很多,估计每个客户都有。

在服务器里翻到了目标站点的演示网站

实战 | 渗透之一个破站日一天

根目录下有zip网站备份和sql数据库备份,如果说目标站点是直接搬迁过去的,那么后台账户密码应该是一样的。


将其SQL文件下载下来,再其中搜索相关信息

实战 | 渗透之一个破站日一天

发现了插入账户的SQL语句,其密码是加密过的

实战 | 渗透之一个破站日一天

cmd5解不开,看了下密文是33位加密。


但是登录过程中,密码是RSA加密过后传输的,而后端居然是33位的md5加密

实战 | 渗透之一个破站日一天

因为有源代码,追踪了一下登录了相关方法。

实战 | 渗透之一个破站日一天

密码传入后,调用了CommFun.EnPwd进行了一次加密。追踪EnPwd方法

实战 | 渗透之一个破站日一天

可以看到,传入进来的密码是RSA类型,先进行了一次RSA解密,然后进行了一次DES加密。


追踪DESEncrypt.Encrypt方法。

实战 | 渗透之一个破站日一天
这里是将Encrypt方法封装了一下,并传入加密key,其核心加密方法为下:

实战 | 渗透之一个破站日一天

并且,在该类里还定义了解密方法

实战 | 渗透之一个破站日一天

得到了加密方法和解密方法以及key,那么只需要将其单独拉出来调用就可以了。

实战 | 渗透之一个破站日一天

将得到加密字符进行解密,得到结果

实战 | 渗透之一个破站日一天

尝试登录

实战 | 渗透之一个破站日一天

忙活半天,白干了。

0x04 柳暗花明拿下目标shell

已经下午4点了,还是一无进展,准备尝试绕过SQL过滤。就在这时候,我发现了一处SQL注入点。

实战 | 渗透之一个破站日一天

某方法接收了两个参数,却只对一个参数进行了过滤。

在目标网站上测验
实战 | 渗透之一个破站日一天
存在注入,发现存在waf使用垃圾参数填充成功绕过waf

实战 | 渗透之一个破站日一天

直接上sqlmap安心的跑,得到系统账户以及密文

实战 | 渗透之一个破站日一天

将得到的密文进行解密,得到结果
实战 | 渗透之一个破站日一天
尝试登录,这下总对了吧!

实战 | 渗透之一个破站日一天

终于进来了!!!!


经过之前的审计,发现了很多接口都存在漏洞,现在成功登录了。岂不是随便getshell?直接ueditor带走。

实战 | 渗透之一个破站日一天

成功shell

文章来源:先知社区(Bughunter)

原文地址:https://xz.aliyun.com/t/8375


实战 | 渗透之一个破站日一天

原文始发于微信公众号(渗透安全团队):实战 | 渗透之一个破站日一天

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月22日21:42:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  实战 | 渗透之一个破站日一天 http://cn-sec.com/archives/1424589.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: