实战·记一次edusrc证书站的getshell

这个漏洞总体就是逻辑缺陷+任意文件上传导致的getshell

最近打算挖src积累一下经验,顺便在此平台记录更新一些自己的src实战记录,喜欢的同学可以关注。

转载到任何其他平台请私信告诉我

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

听朋友说某证书改版了,刚好想换一个

实战·记一次edusrc证书站的getshell_第1张图片
最后一次交漏洞,这已经是2021年了,金币还不够。
今天刚好没课,准重新试试edusrc的强度顺带积累一下经验。
涉及敏感内容已经高度马赛克

一、先打经典站

举例:
在这里插入图片描述
这个语法简单粗暴,是我平时用过最多的了

首先说一下这种语法的优与劣(个人经验,是否正确因人而异):

好处

  • 可以发现目标的ip站点,就是比如标题是xxxx管理,ip:22.22.22.22类似这种,因为平常域名防护的话是比较好的(不绝对喔),ip就不如,而且ip直接绕过了云waf,包括c段,扫端口(留意是不是云服务器),也比域名的方便,况且拿到域名有时候还要找到真实ip不是吗?,例如↓

实战·记一次edusrc证书站的getshell_第2张图片
如果你用host domain之类的语法 就是针对于域名的搜索了,不是很容易发现ip的资产

坏处

  • 最重要的就是会 偏离攻击目标 也就是打偏,刚开始的朋友比较容易犯这个错误,大佬装看不到
    实战·记一次edusrc证书站的getshell_第3张图片
    比如这种,只是一些引流的广告,把同济当标题的一个噱头,或者说一些报考院校咨询站的标题 之类的,如下↓就是目标外的站点
    在这里插入图片描述
    大家在实战中一定要信息观察,避免白忙活。

还有呢就是body的语法,这个筛选难度太复杂,就不说了。
简而言之,打点或者说是搜集资产,尽量使用多个语法配合逻辑符拼接整合,去搜索和筛选,这样以确保收集的站点更全更多。

二、锁定目标

实战·记一次edusrc证书站的getshell_第4张图片

看到这种目标,首先分析一下指纹
实战·记一次edusrc证书站的getshell_第5张图片
vue前端框架,看到这种框架,就看一下源码,一般前端信息特别特别多的。
然后就去测试未授权,接口之类的漏洞,至少我遇到的vue百分之七八十或多或少都有不同程度的逻辑漏洞和未授权。
因为已经验证有漏洞, 多余的就不赘述。

  1. 登录抓包
    实战·记一次edusrc证书站的getshell_第6张图片
    留意一下token是空
    实战·记一次edusrc证书站的getshell_第7张图片
    返回包1改成0。
    实战·记一次edusrc证书站的getshell_第8张图片
    进去一瞬间,然后直接弹出来,拦截不放包的话也是不能点那些功能的,不拦截就闪退。
    当时对js看了很久,但是没有截图就不细说了。
  2. 然后重新登录抓包

实战·记一次edusrc证书站的getshell_第9张图片

这次发现 token默认有了一个值 undefined 也就是未赋值的声明。

然后重复改包1变成0,居然发现不闪退了。
实战·记一次edusrc证书站的getshell_第10张图片

猜测是token起码是要有一个值的,undefined也是一个值,这里应该是设计有逻辑缺陷,按理说未赋值undefined不应该作为一个值,这里token不能是空的,黑盒测试嘛,就是大胆猜一猜,我的推测是这样的,空就主页面闪退,有值的话主页不闪退,功能点触发再去鉴定这个token是否正确。

  1. f12给它一个值
    至于为什么随便赋一个值,而不去使用undefined呢,我就是担心万一后端有"!="这种 对undefined的检测

实战·记一次edusrc证书站的getshell_第11张图片
然后改包进入,居然可以随便点点点了,不再去闪退到登录。

  1. 点击这个查看活动

实战·记一次edusrc证书站的getshell_第12张图片
抓包,看到我添加的token=yydz了
实战·记一次edusrc证书站的getshell_第13张图片
看一下返回包,触发闪退,这里和前面的猜测差不多,触发功能点时再去验证token的正确与否
实战·记一次edusrc证书站的getshell_第14张图片
显然错误的token会提示未登录,返回值是1就直接闪退到登录界面,所以改0 留下来

实战·记一次edusrc证书站的getshell_第15张图片

  1. 上传一个html

实战·记一次edusrc证书站的getshell_第16张图片
成功了
访问返回的路径就可以了
实战·记一次edusrc证书站的getshell_第17张图片

  1. 接着上传一个phpinfo()试试,为什么是php,因为前面的指纹信息已经告诉了 ,以及返回包的apache信息

实战·记一次edusrc证书站的getshell_第18张图片
看一眼禁用函数
实战·记一次edusrc证书站的getshell_第19张图片
头晕这种,这个时候哥斯拉就用上了
实战·记一次edusrc证书站的getshell_第20张图片
实战·记一次edusrc证书站的getshell_第21张图片
连接
实战·记一次edusrc证书站的getshell_第22张图片
直接getshell,有着很多的信息,貌似规模非常的大,这里就不继续横向了,点到为止。

然后换证书的时候…这下白忙活了,怪我当时没细心看兑换限制
实战·记一次edusrc证书站的getshell_第23张图片

总结一下

  • 首先就是运气成分
  • 还有就是多试一试,不要去感觉这没有那没有,试了就有成功的可能
  • 然后利用Vue这种框架的一些特性,前端决定的信息太多,结合js多多分析。
  • 最后就是多多实战,积累经验

有问题恳请指出。
实战·记一次edusrc证书站的getshell_第24张图片

你可能感兴趣的:(网络安全,php,web安全,渗透测试,安全)