用途:hunt-deserialization 是侦察类技能,面向不安全反序列化漏洞的探测与验证,目标是发现可直接导致远程代码执行(RCE)的反序列化入口。资料称此类漏洞几乎总是严重级别。
主要能力:覆盖 Java ysoserial 利用链(CommonsCollections、Spring、JNDI、Groovy)、PHP 对象注入(__wakeup/__destruct)、Python pickle(reduce 调用 os.system)、.NET BinaryFormatter、Ruby Marshal.load(Gem::Requirement/Installer)以及 Log4Shell 风格的 JNDI 注入。提供检测信号,例如 Java 序列化对象以 AC ED 00 05 十六进制或 rO0A base64 开头,PHP 的 O:8:"stdClass":0:{},Python pickle 以 \x80 开头,以及 rememberMe cookie、_VIEWSTATE、相关端点路径等。
使用方式:分阶段进行。Java 阶段用 wget 下载 ysoserial-all.jar,再执行 java -jar ysoserial-all.jar CommonsCollections6 生成载荷并以 base64 发送;PHP 阶段用 grep 查找 unserialize( 调用,并用 phpggc(如 phpggc Laravel/RCE5 system id)构造利用链;Python 阶段用 pickle.dumps 配合 reduce 生成载荷;.NET 阶段检查 ViewState 是否未签名并用 YSoSerial.exe;JNDI 阶段用 ${jndi:dns://...} 探测各用户可控字段;Ruby 阶段查找 Marshal.load。配合 interactsh-client 与 JNDI-Exploit-Kit 做带外验证,通过 DNS/HTTP 回调或命令回显确认。
适用场景:授权渗透测试、漏洞赏金与安全评估中对反序列化入口的排查与复现。
限制:资料注明生成载荷不等于成功利用,需确认目标类路径包含对应 gadget;不同语言工具不可混用;需区分 base64 与原始二进制及正确 Content-Type;WAF 可能拦截已知签名,需自定义链。部分工具是否已安装需先自行检查。详细收费与平台信息暂未提供。