欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 记一次一波三折的众测SRC经历

记一次一波三折的众测SRC经历

2025/2/24 19:14:04 来源:https://blog.csdn.net/zgz67611/article/details/145700713  浏览:    关键词:记一次一波三折的众测SRC经历

视频教程和更多福利在我主页简介或专栏里

(不懂都可以来问我 专栏找我哦)

目录:

  前言

  波折一:RCE漏洞利用失败

  波折二:SQL时间盲注

  波折三:寻找管理后台

  总结

前言

先谈个人SRC心得体会吧,我虽然很早前就体验过挖掘SRC来锻炼自己,但真正坚持下来大概是从去年3月初开始。一开始主要是逛公益SRC平台和教育SRC,动作有点慢,经常遇到报告提交前人吃肉后人喝汤的局面,而且赚不到米,慢慢进入补天SRC开始挖掘小企业和众测。因为之前算是做过几个渗透测试的项目,所以自始至终我都把关注重点放在”交互”上,而且,关键也在于”信息收集”上,只要足够细心和耐心慢慢就有了产出。

本文下面记录一次不断碰到难题不断解决难题的的众测SRC实战,为期三四天,文章不算长,请耐心看完。开局发现是一个搞外贸的企业的信息发布网站。

波折一:RCE漏洞利用失败

通过信息搜集发现网站框架为thinkphp。作为曾经的程序员,我知道ThinkPHP是一个广泛使用的PHP开发框架,但历史上存在多个安全漏洞,尤其是远程代码执行(RCE)漏洞非常好利用。

于是第一反应就是祭出神器Liqun工具箱-1.5进行漏洞扫描与利用,奇怪的是,虽然利用exp工具能够扫描出来确实存在rce漏洞,但是无法成功利用执行命令whoami,多次尝试反弹shell到我的vps也是没有成功。

分析问题出现原因:

  • 可能是工具误报,目标系统并未真正存在该漏洞。

  • 可能是目标系统部署了WAF(Web应用防火墙),拦截了攻击请求。

时间宝贵啊于是只能放弃这里的进攻点,去寻找新的突破口。

波折二:SQL时间盲注

这里必须要安利一个好用的burpsuite插件,xia_sql,能够被动检测SQL注入漏洞。通过前端不断点击与后台交互的功能点,找到一处存在注入点,但坑的是没有数据回显,只能使用时间盲注。

更坑的是后台居然过滤了OR 和 AND 关键字,还有空格字符,or可以用||替代,而and可以用&&替代,对于空格字符常见的绕过思路是:

  1. space2plus

    • 将空格替换为+

    • 示例:UNION SELECT -> UNION+SELECT

  2. space2hash

    • 将空格替换为%23(即#,URL编码)。

    • 示例:UNION SELECT -> UNION%23SELECT

  3. space2blank

    • 将空格替换为其他空白字符(如%09%0A等)。

    • 示例:UNION SELECT -> UNION%09SELECT

  4. space2randomblank

    • 将空格替换为随机的空白字符(如%09%0A%0C等)。

    • 示例:UNION SELECT -> UNION%0ASELECT

如下图,因为网站有关键字符过滤,所以sqlmap跑不出任何信息

补充一个知识点:Tamper脚本是SQLMap中用于修改请求数据的脚本,能够对注入语句进行编码、混淆或其他处理,以绕过WAF或其他过滤机制。

最终编写了一个sqlmap的tamper脚本space2randomblank_and_keywords,成功绕过,获取到数据库信息,尤其是管理员账号密码

 
  1. #!/usr/bin/env python

  2. """

  3. Copyright (c) 2006-2023 sqlmap developers (https://sqlmap.org/)

  4. See the file 'LICENSE' for copying permission

  5. """

  6. import random

  7. from lib.core.enums import PRIORITY

  8. __priority__ = PRIORITY.NORMAL

  9. def dependencies():

  10. pass

  11. def tamper(payload, **kwargs):

  12. """

  13. 将空格替换为随机的空白字符(如 %09, %0A, %0C 等)

  14. 例如:UNION SELECT -> UNION%0ASELECT 或 UNION%09SELECT

  15. """

  16. if payload:

  17. # 定义可用的空白字符

  18. blank_chars = ["%09", "%0A", "%0C", "%0D"]

  19. # 替换空格为随机的空白字符

  20. payload = payload.replace(" ", random.choice(blank_chars))

  21. # 替换 OR 和 AND 关键字

  22. payload = payload.replace("OR", "||") # 替换 OR 为 ||

  23. payload = payload.replace("AND", "&&") # 替换 AND 为 &&

  24. return payload

利用tamper脚本跑出banner

利用tamper脚本跑出数据库中所有表名,重要的是admin表和user表

最终成功利用sqlmap跑出管理员账户密码为XXXX/XXXX888(因为数据敏感所以这里不放图了)

波折三:寻找管理后台

经常打SRC的大佬都知道接下来要扩大战果就是进管理后台了,但是我死活找不到该thinkphp网站的管理后台:

先是通过常规路径尝试,因为一般thinkphp框架的后台路径默认是/admin/但是这里报错显示无法加载模块admin

接着通过路径扫描工具,如dirsearch/御剑等路径扫描工具fuzz后台路径,还是无果

用了五六款工具和一个小时了,还是搞不进去,有点“难受香菇”啊。

只要努力奇迹还是可能出现的哈哈,最终通过C段扫描找到该公司下属的其他业务系统(即OA办公系统)管理后台。

利用之前获取的管理员账号密码是企业名称简写/企业名称简写+888,进一步生成若干组合弱口令攻击和撞库,成功进入OA办公系统后台。在获取管理后台权限后,可以进一步探索系统内部,寻找更多敏感信息或漏洞。

打完~~~~收工,最后提一句厂家给了中危300大洋,谢谢厂家审核大大哈哈!

总结

目标系统存在SQL注入漏洞,而且是比较难利用的时间盲注,过滤了or/and/空格等关键字符。在实际渗透测试中,Tamper脚本是非常有用的工具,能够显著提高SQL注入攻击的成功率。后台路径隐藏较深,增加了攻击难度。通过C段扫描和组合口令攻击,成功进入管理后台,暴露了系统的防御问题。

我觉得,渗透测试中要心平静气,仔细观察每一个服务器/客户端交互的数据包,一条道走不通灵活地换一条道,山穷水复疑无路,柳暗花明又一村。为了提高渗透效率,还要不断地提高工具编写能力,平时多学习网站前后台交互的底层原理。

视频教程和更多福利在我主页简介或专栏里

(不懂都可以来问我 专栏找我哦)

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关

热搜词