实战渗透-从敏感文件泄露到Getshell

Simon2021-08-20 15:09:00

目标站点如下:

是一个大型仪器预约平台,先简单通过信息收集得到以下信息

中间件:IIS 开发语言: .NET (MVC)


该系统提供两个功能,注册以及登录。由于这套系统比较常见,基本每个知名高校都有这么一个仪器平台。所以注册后的功能点就没必要再去花功夫探测了(有的话也被大佬交完了)。

这里我直切主题:

先FOFA搜索相同站点。

由于是NET平台,可以先搜集以下所有相同系统的站点。然后扫一扫备份之类的。常见的字典如: web.rar 备份.rar

等等。.具体看运维的习惯(部分运维喜欢用bak)。

使用某大佬的FOFA提取工具提取下结果

然后使用御剑(由于御剑好像不支持https,所以这里我指定了协议为http。如果大佬们有支持https或者可以批量扫描的工具可惜推荐下(造轮子太麻烦,性能渣))

在某站点下发现疑似备份文件bak.rar, 先下载下来。

解压后发现里面都是一些dll文件。由于是NET平台,源代码都会打包成dll文件。也就是说这些dll文件里面存放着网站的源代码。

那么直接逆向编码,开始代码审计~~~~

发现有点多。。。。由于是MVC模式,我们可以直接搜索Controller(控制器)

开始审计~这里先挨个探索(我个人比较喜欢直切主题:未授权的文件上传-日志写入(部分系统是由请求头决定文件名-反序列化-SQL注入))

未授权的文件上传,这个比较好找。。有没有进行文件效验一看就知道。部分程序员都是把操作写成了一个方法,统一调用。

如:

在UserController下面的IniUserPhotoUpload 方法就是一处文件上传的操作

这里表面看着并没有什么文件属性效验的操作。但是最终写入是由MakeThumbnail操作的。

在MakeThumbnail下面

第151行,可以看到将参数传递给了MakeThumbnailByImg 方法。追踪此方法

在186行可以明显的看出这里进行了文件效验,且规定了后辍为jpg,jpeg,bmp,gif,png,ico 才可以成功上传

那么这里无果,继续探索下一个。

最终在Lab下面发现一处疑似上传LOGO的操作。

UploadLabOrg

写入操作最终是由SaveLabOrganization进行写入操作。

追踪此方法。

主要操作在这里

if (base.Request.Files.Count > 0)
            {
                fileSizeStr = FileUtility.GetFileSizeStr((double)base.Request.Files[0].ContentLength);
                string fileNameWithExtensionByPath = FileUtility.GetFileNameWithExtensionByPath(base.Request.Files[0].FileName);
                fileExt = FileUtility.GetFileExtByPath(base.Request.Files[0].FileName);
                if (!this.ValidateLabOrganizationLogoUpload(System.Web.HttpContext.Current.Request, fileExt, fileSizeStr, out errorMessage))
                {
                    result = false;
                }
                else
                {
                    this.IniLabOrganizationLogoUpload(System.Web.HttpContext.Current.Request, fileId, fileExt, fileSizeStr, out saveImgPath, out errorMessage);
                    result = true;
                }
            }
            else
            {
                result = false;
            }
            return result;

当上传的文件大于0时,执行if里面的语句

if (!this.ValidateLabOrganizationLogoUpload(System.Web.HttpContext.Current.Request, fileExt, fileSizeStr, out errorMessage))
                {
                    result = false;
                }
                else
                {
                    this.IniLabOrganizationLogoUpload(System.Web.HttpContext.Current.Request, fileId, fileExt, fileSizeStr, out saveImgPath, out errorMessage);
                    result = true;
                }

其中ValidateLabOrganizationLogoUpload是判断文件内容大小是否超出以及扩展名是否正确的。

其中并没有进行白名单效验~只是进行了一些判空以及移除符号的操作

找到了一处无效验上传点,开始构造POC:

路由地址为:/控制器名/方法名

使用HTML构造提交表单内容:

<form action="地址" method="post" enctype="multipart/form-data" >
    <input type="file" name="Filedata"/>
    <input type="submit" value="提交"/>
form>

然后开始上传。

但是他返回了一个出错。。。有点无解,是不是要登陆??

注册了一个账户,发现仍然出错,再次回到代码层,可能是监听器的问题。找到filter

发现了要验证Referer,在原有POC上添加一个Referer

成功Getshell

文章来源:先知社区
文章作者:远海


本作品采用《CC 协议》,转载必须注明作者和本文链接
个人比较偏向于渗透NET开发平台的站点,因为其不区分大小写,在生成字典的时候不需要花费太多时间。
信息收集首先针对?子域名 IP段 端口?
所以渗透测试是安全评估的方法之一。随着信息技术的发展,网络已成为一个新的战场。美国智库兰德公司称网络战为信息时代的核武器,能够在网络上引发核爆的网络战,过去的网络威慑已经开始向实战迈进。中国也是遭受网络攻击最多的国家之一,特别是在一些关键时期,例如每年两会期间、G20期间、以及这次新冠病毒疫情期间,我国遭受的网络攻击都要比正常事情多的多。xxx.xxx.22.0/24确认这c段ip有可能就是目标单位的资产ip段。
红队之信息收集
2021-09-22 12:30:38
企业信息收集拿到一个目标,不考虑钓鱼的情况下。如果正常web入手,至少需要收集以下的信息。一般经过上面的收集以后,我们能够获取一系列的ip,域名信息。此时需要针对这些进行排除。碰到过一次有个队伍打供应链下载源码审计的这种属于非常态暂不讨论。用户级别主要是涉及拿到一些用户的用户名等。便于进行暴力破解。利用app查询公司的域名。是在于跑一下子域名。先不要急着跑子域名。
重新抓包改包登入系统,在burp里仔细看了下用户管理api返回的json发现所有用户的密码都是统一的,都是该公司旗下某产品的英文名。猜测可能是为了防止密码被泄露,后端对返回的密码进行了过滤了,统一修改了。
接口未授权在尝是了一波js接口后没有发现什么漏洞,但是查找了一些信息泄露。sql注入(两枚)在刚刚注册了用户,登录进去。第一处将url和参数进行拼接。第二处第二处同样是js文件内找到。在图片中间的地方插入xss语句但是如果没有找到可以注册的api,则这个漏洞无法利用,为了扩大漏洞危害,尝试删除cookie,是否可以未授权文件上传。
所谓打点,就是拿到一台机器的shell。对个体而言,这种条件下,个人技术成为了主导因素,也就是说,一个红队人员快速打点能力的强悍与否,成为了一个普通红队和优秀红队的差别所在。这其中最肝的一个部分,莫过于信息搜集了,纯体力活。三板斧其三 sql注入:这个更加老熟人了,注入之后,低权限,直接gg,高权限,试试吧,看能不能上shell。
对这段时间做的一次攻防演练做一个记录,这次给我们分了三个目标,一个目标是甲方单位自己的一个自建系统,其余两个是甲方的下级单位的系统。开始之前觉得不好做,因为攻防演练跟HW有些差别,HW可以不限制攻击手法,可以上游供应链,社工、钓鱼多种角度出发来挖掘漏洞。这次攻防演练给我们三个目标、两个web系统、一个app,可以利用的点非常少,不可以攻击其他的系统,只能搞这几个目标,要不是这次运气好真的就拉垮了
此类问题主要存在于后台登陆页面以及类似网页内引入的JS文件中。根据此类漏洞,说不定登陆页面下引入的js文件暴露的后台路径会成为突破口。因为此类问题利用方式和造成的危害与即将谈论的第三类问题不同,所以把这类问题单独拿出来讲一讲。部分厂商更是因此降低了对XSS的评级。
Simon
暂无描述