记一次一波三折的众测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段扫描和组合口令攻击,成功进入管理后台,暴露了系统的防御问题。

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/973339.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java每日精进 2.13 MySql迁移人大金仓

1.迁移数据库 1. 数据库创建语句 MySQL: CREATE DATABASE dbname; 人大金仓(Kingbase): 在人大金仓中,CREATE DATABASE 的语法通常相同,但可能需要特别注意字符集的指定(如果涉及到多语言支持…

【单臂路由配置】

【单臂路由配置】 设备接口IP子网网关vlanR1G0/0/1.1192.168.1.254255.255.255.0NAvlan10R1G0/0/1.2192.168.2.254255.255.255.0NAvlan20R1G0/0/1.3192.168.3.254255.255.255.0NAvlan30PC1e0/0/1192.168.1.1255.255.255.0192.168.1.254vlan10PC2e0/0/1192.168.2.1255.255.255.0…

NutUI内网离线部署

文章目录 官网拉取源代码到本地仓库修改源代码打包构建nginx反向代理部署访问内网离线地址 在网上找了一圈没有写NutUI内网离线部署的文档,花了1天时间研究下,终于解决了。 对于有在内网离线使用的小伙伴就可以参考使用了 如果还是不会联系UP主:QQ:10927…

【Linux AnolisOS】关于Docker的一系列问题。尤其是拉取东西时的网络问题,镜像源问题。

AnolisOS 8中使用Docker部署(全)_anolis安装docker-CSDN博客 从在虚拟机安装龙蜥到安装docker上面这篇文章写的很清晰了,我重点讲述我解决文章里面问题一些的方法。 问题1: docker: Get https://registry-1.docker.io/v2/: net/h…

免费体验,在阿里云平台零门槛调用满血版DeepSeek-R1模型

一、引言 随着人工智能技术的飞速发展,各类AI模型层出不穷。其中,DeepSeek作为一款新兴的推理模型,凭借其强大的技术实力和广泛的应用场景,逐渐在市场中崭露头角。本文将基于阿里云提供的零门槛解决方案,对DeepSeek模…

ARM Linux平台下 OpenCV Camera 实验

一、硬件原理 1. OV2640 1.1 基本功能 OV2640 是一款低功耗、高性能的图像传感器,支持以下功能: 最高分辨率:200 万像素(1600x1200)。 输出格式:JPEG、YUV、RGB。 内置图像处理功能:自动曝…

论文笔记-WSDM2025-ColdLLM

论文笔记-WSDM2025-Large Language Model Simulator for Cold-Start Recommendation ColdLLM:用于冷启动推荐的大语言模型模拟器摘要1.引言2.前言3.方法3.1整体框架3.1.1行为模拟3.1.2嵌入优化 3.2耦合漏斗ColdLLM3.2.1过滤模拟3.2.2精炼模拟 3.3模拟器训练3.3.1LLM…

后端开发:开启技术世界的新大门

在互联网的广阔天地中,后端开发宛如一座大厦的基石,虽不直接与用户 “面对面” 交流,却默默地支撑着整个互联网产品的稳定运行。它是服务器端编程的核心领域,负责处理数据、执行业务逻辑以及与数据库和其他后端服务进行交互。在当…

如何查看java的字节码文件?javap?能用IDEA吗?

编译指令: javac YourProject.java 查看字节码文件的指令: javap -c -l YourProject.class 不添加-c指令就不会显示字节码文件: 不添加 -l 就不会显示源代码和字节码文件的对应关系: 添加-l之后多出来这些: IDEA不太…

Linux-GlusterFS配置

文章目录 GlusterFS配置 🏡作者主页:点击! 🤖Linux专栏:点击! ⏰️创作时间:2025年02月18日19点21分 GlusterFS配置 1、分区操作 fdisk -l #查看本地磁盘 fdisk /dev/vdb #对/dev/vdb进…

[C语言]指针进阶压轴题

下面代码打印结果是什么&#xff1f; #include<stdio.h> int main() {char* c[] { "ENTER","NEW","POINT","FIRST" };char** cp[] { c 3,c 2,c 1,c };char*** cpp cp;printf("%s\n", **cpp);printf("%s\n…

DeepSeek 助力 Vue 开发:打造丝滑的点击动画(Click Animations)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

SpringBoot论坛网站 – 功能详解与部署教程

项目概述 《SpringBoot的论坛网站》是一个基于SpringBoot框架开发的现代化论坛平台&#xff0c;旨在为用户提供一个便捷的交流空间。该项目不仅功能丰富&#xff0c;还具备良好的扩展性和易用性&#xff0c;适合用于学习、分享和讨论各类话题。以下是项目的核心功能模块和部署…

SpringSecurity初始化的本质

一、对SpringSecurity初始化的几个疑问 通过前面第一次请求访问的分析我们明白了一个请求就来后的具体处理流程 对于一个请求到来后会通过FilterChainProxy来匹配一个对应的过滤器链来处理该请求。那么这里我们就有几个疑惑。 FilterChainProxy什么时候创建的?过滤器链和对应的…

【大模型系列篇】DeepSeek-R1如何通过强化学习有效提升大型语言模型的推理能力?

如何通过强化学习&#xff08;RL&#xff09;有效提升大型语言模型&#xff08;LLM&#xff09;的推理能力&#xff1f; 《DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning》由DeepSeek-AI团队撰写&#xff0c;主要介绍了他们开发的第一代…

无缝对接[系列2]:在VSCode中继续接入本地DeepSeek的完整指南---实现代码协助编写~

无缝对接&#xff1a;在VSCode中继续接入本地DeepSeek的完整指南 在上一篇文章中&#xff0c;我们已经详细介绍了如何成功部署本地 DeepSeek&#xff0c;使得开发者能够在本地环境中高效地进行深度学习和数据分析工作。 部署完成后&#xff0c;如何在 Visual Studio Code (VS…

linux5-多任务--进程fork()

一.多任务&#xff1a;让系统具备同时处理多个任务的能力 1.如何实现多任务 1.1进程&#xff1a;操作系统上正在运行的程序&#xff0c;需要消耗内存和CPU 1.1.1 进程的生存周期&#xff1a;创建、调度、消亡 1.1.1.1进程的创建&#xff1a;每个进程被创建时&#xff0c;操作…

原生稀疏注意力机制(NSA):硬件对齐且可原生训练的稀疏注意力机制-论文阅读

摘要 长上下文建模对于下一代语言模型至关重要&#xff0c;但标准注意力机制的高计算成本带来了巨大的计算挑战。稀疏注意力提供了一种在保持模型能力的同时提高效率的有前途的方向。本文提出了一种名为 NSA&#xff08;原生可训练稀疏注意力机制&#xff09; 的方法&#xff…

C++ Primer 库-IO类

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

FlutterAssetsGenerator插件的使用

在Plugins中找到FlutterAssetsGenerator插件&#xff0c;点击安装。 更改生成的资源索引类可以修改名字。 在根目录下创建assets/images文件夹&#xff0c;用于存储图片。 点击images文件夹&#xff0c;鼠标右键点击Flutter&#xff1a;Configuring Paths&#xff0c;pub…