实战渗透-看我如何拿下自己学校的大屏幕(Bypass)
从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
tql ddw
看了一下,应该是属于后台文件上传漏洞,把host改成自己学校那一步里,文件上传功能不验证登录状态吗?
@dadadada 不需要,只验证Ticket
tql
我服了,真的牛批,太强了
66666