从1月份入坑到现在,已经5个月了。这五个月来一直在刷edusrc,并且在本月初成功达到了总榜第五名。很多人问我如何快速批量刷站?那么,他来了。本次分享一次对自己学校的一次安全检测实战文章。帮助萌新理清思路,同时,欢迎各位大佬指点不足。

0x01

先看学校的域名ip地址
注意:这里我建议不要看主域名的,看二级域名的ip地址。因为一些地区的职业院校都是集中统一在一台服务器上的,只有一些二级域名才会搭建在学校的机房里面
如我们学校的二级域名:
creat.**.com 上面搭建的系统是智慧校园系统。IP归属地与学校地理位置符合。
那么开始找C段。
fofa关键词: 12.230..1/24
在12.230..194:8000下面找到一个系统。功能不详。
因为只有一个登录

类似系统有很多,比如OA等。这些系统开始都是一些登录,且是一个闭源程序,一没办法本地测试,二是不能代码审计。

我个人比较常用的方法:

查看HTML源代码-》提取特有文件名/路径等-》FOFA寻找相同网站-》猜测弱口令-》挖掘0day-》Getshell

因为程序本身就是闭源,开始的一个登录就让大部分人束手无策。无法探测到里面的内容
所以,遇到此类程序的第一种快捷方法: 找相同程序的弱口令

在首页HTML源代码中,发现一处AJAX请求地址,

/Service/C***.asmx/Get*

那么我们就可以直接搜索这个文件名,就能获取到一些相同程序的站点


同样,搜索到的站点也是只有一个登录页面。那么我们可以挨个测一下弱口令

最终。发现一个类似于开发厂商的测试站点。 admin /admin 成功登录进去

看到相应功能,就知道,这是啥了。。我们学校的大屏幕就是这玩意管理的

那么,废话不多说,开始测试功能

简单粗暴的来到个人中心(因为这里一般都会有更换头像的地方)

先试着穿一个jpg文件。

成功上传并返回一个地址:

然后更改文件名为:test.aspx

出现error,根据个人经验,出现这类问题,我一般喜欢在传一个ss.jpg。与成功上传的test.jpg同类型不同名

来判断是否为白名单。

发现ss.jpg也会出现error

那么,这里可以得出结论,之前的手法与白名单无关。

看了对应的参数:fileToUpload (上传的文件) directory(文件存储路径) ticket不详

当我将返回包更改为初始成功上传的状态的时候,更改了Ticket的内容。发现出现error

那么可以肯定,能否成功跟这个Ticket有关系。

将所有窗口关闭,一步一步对比。发现Ticket生成的请求包

多次测试。发现。生成Ticket的文件名必须要跟上传文件名相同才能成功上传。

那么生成一个test.ashx(个人喜欢) 得到的Ticket替换之前的

成功拿到shell。

那么这就是一个0day。有了这个系统的0day。我就可以拿去打自己学校的系统了

0x02

将HOST地址改成自己学校的地址,发送数据包,发现直接rest了。。。。不用想,肯定是有狗。

asp,aspx,ashx,asmx,cshtml(不解析) 多个测试。发现都是直接rest

进行信息收集,知道了是奇安信WAF

。。。类型检测+内容检测。。。

玩nm!!!!!!!!!!!!!!

于是求助RG大哥的帮助,知道了NET平台下还有一个扩展名是SVC

github地址:https://github.com/ysrc/webshell-sample/blob/master/others/svcSmallSpy.svc

成功上传。。

但是访问地址出现了 500错误,也就是。。并没有被执行。。。

想到了之前自己发过的文章。。

用垃圾字符来绕。。。

Blog: www.websecuritys.cn/?p=274

经过测试发现。当内容字符逐渐变大,得到返回相应的时间也就越长。那么可以确定。后端在进行匹配。

Bypass原理。够多的垃圾字符可以消耗WAF的内存,导致Bypass

由于之前测试的结果。Ticket的文件名要跟上传的文件名相同

那么,先生成一个Ticket

这里用垃圾字符

我用了20w

内容{*.ashx}

得到文件的Ticket

那么,在上传的fileToUpload 的文件名,也要与Ticket的文件名相同,复制过来

同时,因为WAF自带内容检测。那么。将shell代码放在垃圾字符的末尾。

这里必须要注意:

由于垃圾字符太大。必须要用注释符号注释掉

<%--
dsadas垃圾字符
--%>
shell代码

成功Bypass。

拿到webshell

点击收藏 | 7 关注 | 6
登录 后跟帖