渗透实战|两个0day漏洞挖掘案例
2022-11-4 00:4:15 Author: Z2O安全攻防(查看原文) 阅读量:58 收藏

一.前言

基本情况

这是之前挖到的两个0day,都拿了CNVD的证书,厂商已修复,大概说下整体思路和挖掘过程

挖掘过程

绕过登陆(无效)-发现接口-JS审计-爆破接口-未授权访问-SQL注入

二.打点收集

1.失败的绕过登陆

在进行信息收集的时候,发现该系统登陆失败与成功返回的状态码,登陆成功为1000、登陆失败为1100

在登陆的时候进行抓包,修改返回包的状态码为1000,此时提示登陆成功,页面跳转到后台管理首页,但是页面是空白

后边才发现直接吧login.html改成index.html也可以进入空白后台。。所以是失败的绕过登陆

刷新网页,F12看请求,查看有无接口存在:

尝试访问该接口,得到返回成功的一条信息

该接口返回的是后台系统的名称等信息,无其它敏感信息,但是接口的url展示出来的路径与进入后台的路径并不一样

未授权的后台路径:http://xxxxx.com/a-b-c/xxxx/xxx/index.html
未授权的接口路径:http://xxxxx.com/c-d-e/xxxxx/xxxxxx/xxxxxx

先将路径记下来,待会可能会用到,信息收集就是要面面俱到

2.JS审计

后台查看网站源代码,直接进行JS审计

  • 第一个接口暴漏:就是刚刚进入后台刷新界面得到的接口路径,注意上边提到了与未授权的后台初始路径不一样,这就是说源代码中暴漏的所有接口都可以尝试使用接口暴漏的路径进行拼接访问。
  • 第二个接口暴漏:接口使用get传递,后边拼接某个参数id值

使用刚刚的路径进行拼接访问:拼接的某个参数id值我赋值为0测试

但是提示404,说明这个id获取不到任何数据,一种情况是0不存在,对0设置变量进行爆破,第二种情况是0参数后边可能还需要跟参数(后边也验证了这个想法,确实需要跟参数才能正确获取接口数据)

  • 第三个接口暴漏:提示接口url后边加当前用户名,继续拼接url测试访问

假设当前用户名是admin,那么在暴漏的接口后边加/admin访问,提示请求成功,但是并未返回任何有用的信息,这个时候猜测可能admin不存在,没有返回任何信息而已,直接对当前用户进行爆破

成功爆破出test用户并返回部分信息,但是并无特别敏感信息,继续找接口

  • 第四个接口暴漏:看接口的名称像是获取系统管理设置的接口

直接访问该接口获取到了四五个路径以及一个类似管理员的账号twadmin

三.未授权访问x1

3.柳暗花明

刚刚爆破出一个test用户,直接把twadmin替换test获取管理员信息-返回管理员登陆系统的时间

这个时候可以针对管理员密码进行爆破,既然有那么多接口,不如继续挖未授权访问,其实是因为CNVD不收web通用型弱口令(吼吼吼吼吼吼吼吼)。。。。。

刚刚还有几个html页面没有访问,直接访问看看能不能发现别的接口,访问页面报错,很正常,空壳子,又没登陆,直接查看源代码找接口吧

  • 第五个接口暴漏

第五个接口的url和第二个接口的url一模一样,只是后边加了一个ssxtbm参数,验证了刚刚后边加参数才能正确获取接口信息的猜想

dlyhid后边不加ssxtbm参数提示404

Dlyhid后边加ssxtbm参数提示请求成功,只是没有返回任何数据

说明dlyhid参数是存在的,而ssxtbm参数是不存在的,所以没有返回任何信息,对ssxtbm参数进行爆破!!!

发现该接口是获取后台管理系统菜单信息的接口,获取到的都是菜单信息,也不算特别敏感内容

此时获取菜单接口的url是:http://xxxxx/asas/saasas/asas/0/50000

把0改成1试一下,同时改变后边的参数

http://xxxxx/asas/saasas/asas/1/50000

http://xxxxx/asas/saasas/asas/1/30000

成功返回资源地址

尝试对资源地址进行访问,直接未授权访问,可以进行删除、查询、添加等操作

尝试访问别的资源

接口这么多……扎布夺得了

4.批量验证

直接POST请求以及GET请求未授权接口获取信息即可

吼吼吼

5.end

到这里你以为结束了???

怎么可能!!!

未授权到手了,证书有了,但是一个不行啊,太少了,都未授权了,为什么不试试别的???

不多搞一下对不起熬那么晚的夜啊

四.SQL注入x1

6.出货*2

刚刚测试未授权接口的时候,有个查询功能??query?

直接get访问提示get请求不允许,那就post:

content-type又不对

众多接口得知,需要改content-type为json格式

配合接口请求的数据

直接用bp发送:

请求成功!!!

修改null为1’,继续发送,测试是否存在SQL注入

意思是让我们字符型加引号就好了

SQL注入一枚,证书*2

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

技术交流

知识星球

致力于红蓝对抗,实战攻防,星球不定时更新内外网攻防渗透技巧,以及最新学习研究成果等。常态化更新最新安全动态。专题更新奇技淫巧小Tips及实战案例。

涉及方向包括Web渗透、免杀绕过、内网攻防、代码审计、应急响应、云安全。星球中已发布 200+ 安全资源,针对网络安全成员的普遍水平,并为星友提供了教程、工具、POC&EXP以及各种学习笔记等等。

交流群

关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。

关注我们

关注福利:

回复“app" 获取  app渗透和app抓包教程

回复“渗透字典" 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。

回复“书籍" 获取 网络安全相关经典书籍电子版pdf

往期文章

我是如何摸鱼到红队的

网络安全行业应该考哪些证?(各安全证书介绍)

MSSQL提权全总结

Powershell 免杀过 defender 火绒,附自动化工具

一篇文章带你学会容器逃逸

域渗透 | kerberos认证及过程中产生的攻击

通过DCERPC和ntlmssp获取Windows远程主机信息


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2ODYxMzY3OQ==&mid=2247489795&idx=1&sn=2954f81f8aeca65ad86b75d60e94fe67&chksm=cea8f243f9df7b5500c5bece10c0760e6eb48bdf56270853fbdf805adfb80a1dfde9ba0f0a4e#rd
如有侵权请联系:admin#unsafe.sh