这个漏洞总体就是逻辑缺陷+任意文件上传导致的getshell
最近打算挖src积累一下经验,顺便在此平台记录更新一些自己的src实战记录,喜欢的同学可以关注。
转载到任何其他平台请私信告诉我
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
听朋友说某证书改版了,刚好想换一个
最后一次交漏洞,这已经是2021年了,金币还不够。
今天刚好没课,准重新试试edusrc的强度顺带积累一下经验。
涉及敏感内容已经高度马赛克
一、先打经典站
举例:
这个语法简单粗暴,是我平时用过最多的了
首先说一下这种语法的优与劣(个人经验,是否正确因人而异):
好处
- 可以发现目标的ip站点,就是比如标题是xxxx管理,ip:22.22.22.22类似这种,因为平常域名防护的话是比较好的(不绝对喔),ip就不如,而且ip直接绕过了云waf,包括c段,扫端口(留意是不是云服务器),也比域名的方便,况且拿到域名有时候还要找到真实ip不是吗?,例如↓
如果你用host domain之类的语法 就是针对于域名的搜索了,不是很容易发现ip的资产
坏处
- 最重要的就是会 偏离攻击目标 也就是打偏,刚开始的朋友比较容易犯这个错误,大佬装看不到
比如这种,只是一些引流的广告,把同济当标题的一个噱头,或者说一些报考院校咨询站的标题 之类的,如下↓就是目标外的站点
大家在实战中一定要信息观察,避免白忙活。
还有呢就是body的语法,这个筛选难度太复杂,就不说了。
简而言之,打点或者说是搜集资产,尽量使用多个语法配合逻辑符拼接整合,去搜索和筛选,这样以确保收集的站点更全更多。
二、锁定目标
看到这种目标,首先分析一下指纹
vue前端框架,看到这种框架,就看一下源码,一般前端信息特别特别多的。
然后就去测试未授权,接口之类的漏洞,至少我遇到的vue百分之七八十或多或少都有不同程度的逻辑漏洞和未授权。
因为已经验证有漏洞, 多余的就不赘述。
- 登录抓包
留意一下token是空
返回包1改成0。
进去一瞬间,然后直接弹出来,拦截不放包的话也是不能点那些功能的,不拦截就闪退。
当时对js看了很久,但是没有截图就不细说了。 - 然后重新登录抓包
这次发现 token默认有了一个值 undefined 也就是未赋值的声明。
然后重复改包1变成0,居然发现不闪退了。
猜测是token起码是要有一个值的,undefined也是一个值,这里应该是设计有逻辑缺陷,按理说未赋值undefined不应该作为一个值,这里token不能是空的,黑盒测试嘛,就是大胆猜一猜,我的推测是这样的,空就主页面闪退,有值的话主页不闪退,功能点触发再去鉴定这个token是否正确。
- f12给它一个值
至于为什么随便赋一个值,而不去使用undefined呢,我就是担心万一后端有"!="这种 对undefined的检测
然后改包进入,居然可以随便点点点了,不再去闪退到登录。
- 点击这个查看活动
抓包,看到我添加的token=yydz了
看一下返回包,触发闪退,这里和前面的猜测差不多,触发功能点时再去验证token的正确与否
显然错误的token会提示未登录,返回值是1就直接闪退到登录界面,所以改0 留下来
- 上传一个html
成功了
访问返回的路径就可以了
- 接着上传一个phpinfo()试试,为什么是php,因为前面的指纹信息已经告诉了 ,以及返回包的apache信息
看一眼禁用函数
头晕这种,这个时候哥斯拉就用上了
连接
直接getshell,有着很多的信息,貌似规模非常的大,这里就不继续横向了,点到为止。
然后换证书的时候…这下白忙活了,怪我当时没细心看兑换限制
总结一下
- 首先就是运气成分
- 还有就是多试一试,不要去感觉这没有那没有,试了就有成功的可能
- 然后利用Vue这种框架的一些特性,前端决定的信息太多,结合js多多分析。
- 最后就是多多实战,积累经验
有问题恳请指出。