记某hw中通过佛站技巧拿下标靶的全过程

2020-12-01 / 2 条

记一次某HW中的渗透测试

Author:远海@米斯特安全

前段时间,某“带佬” 急匆匆的发我两个站点,为某地区hw的靶标。

既然是“带佬”,那么肯定得给这位“带佬”面子。简单看了看两个站点,都是ASPX站点。对于.NET所开发的站点,在下可以说是经验老道(自吹一波,实则菜b)。

这里只描述其中一个站点的渗透过程。另一个站点已经被"带佬"发布至先知社区。

地址: https://xz.aliyun.com/t/8541

0x01:

目标站点大致如下:

image.png

主页只有一个登录框。没有其他功能(找回密码,注册用户)等。

对于这类系统,开局肯定是跑一波弱口令。image.png

熟悉的开局。。。但是这里根据请求包发现了某处敏感信息。XXCMS.config???

image.png

既然是CMS,那么可以根据github等相关网站查找其敏感信息。

根据相关信息,找到了某博主所发的一个文章,证明此系统内部功能是存在SQL注入漏洞的。这也使我更有把握拿下这个系统。

image.png

但是文章并没有写明POC。那么只好自己动手了

确定了该系统由XX公司开发且处于闭源状态。且上图说明是存在弱口令的。那么就可以根据以下流程尝试攻击。

大概思路如下:

image.png

既然目标系统无法登录,探测不了内部功能,那么可以从其他相同系统的站点入手,挖掘未授权漏洞等。

参考文章:https://xz.aliyun.com/t/8375 (本人所写)

https://xz.aliyun.com/t/7786

0x02:

根据ICO图标查询,找到了一个俄罗斯站点。

image.png

image.png

从文件结构来看,确实是使用的相同系统。那么开始测试。

由于主页只有登录,还是先尝试了爆破弱口令账户的方法。

最终,成功得到一个弱口令账户

user 123456

image.png

但是这里需要注意的是。根据返回包来看。目标系统并未采用Session的机制来效验账户信息。而是采用了获取Cookie中的某个值(可能是加密的)来确认当前账户。

如果挖掘出了需要登录的漏洞,那么迂回至目标系统时,可以尝试通过Cookie来伪造身份信息。

本以为得到了账户就可以直接开始测试了。

但是登录过后的功能点几乎没有。。。

image.png

除了修改密码和退出登录。就没有其他可以测试的功能呢。。。这就非常头疼。

但是在Burp的history 页面中,发现了一处敏感AJAX请求

image.png

该接口文件返回了部分路径地址。那么可以直接访问这些路径进一步测试。

最终在某处发现了一处文件上传功能。

image.png

初步测试,确定存在为任意文件上传。

image.png

但返回包里并没有附带文件的路径。但是当我再次尝试上传时,系统弹出了一个提示

image.png

"File name already exists, please re-upload" = "文件名已存在,请重新上传"

那么可以很明确的确定。上传的文件并没有进行重命名的操作。尝试进行../跨目录

image.png

跨了4个目录,成功跳到根目录。

那么这就是一个CMS的通用漏洞。现在就可以直接使用该POC迂回到目标系统了。

但是目标系统得到的返回结果确是204

image.png

这里不知道是不是未登录的问题。想起刚刚测试的时候可以根据Cookie来伪造用户信息。将俄罗斯站点用户的Cookie复制了一份过来。再次上传

image.png

GG。还是204.那么可以说明这里存在用户效验了

0x03:

既然没办法上传,又不想搞SQL(麻烦)。干脆直接在俄罗斯站点上打了一个shell。尝试将代码下载下来审计。

追踪到刚刚可以上传shell的位置。

image.png

这里就可以直接看出,后端是获取Cookie中的某键取值来进行判断的。

当UserID和RoleID都为空时,返回204(也就是目标靶标所返回的值)

第40,41行可以看出,UserID和RoleID时进行过加密的,这里进行了解密操作。

this.UserID = CommonFunction.DESDec(this.UserID);
this.RoleID = CommonFunction.DESDec(this.RoleID);

这里追踪过去,得到加解密的方法

image.png

由于后端会将UserID进行判断,是否存在该用户。那么只需要刚俄罗斯站点上的UserId的值解密出来,根据其结构在目标站点上Fuzz一下就可以了。

UserID=Uhe4q0dwPJk=

解密结果为2

image.png

之所以在目标标靶上显示204可能是没有2这个用户。应该是有id为1的账户的

那么只需要将 1 加密一下就可以了。

为:

34dc0AHJKqA=

image.png

替换加密值尝试在目标站点上传。

成功拿下靶标

image.png

文章至此结束

2 条回应:“记某hw中通过佛站技巧拿下标靶的全过程”

已有 2 条评论

  1. 小弟弟 小弟弟说道:

    tql

  2. --+qwe --+qwe说道:

    申请海神拿站路子为:方圆渗透。φ( ̄∇ ̄o)

发表评论

电子邮件地址不会被公开。 必填项已用*标注