java反序列化漏洞及其检测( 三 )


web漏洞扫描器检测原理和白盒工具不一样 。
首先漏洞扫描器要解决的是识别出反序列化的请求 , 在这里需要注意的是web漏洞扫描是无法通过爬虫方式直接发现反序列化接口的 , 因此往往需要配合其他web漏洞扫描器的组件(例如代理组件)来识别反序列化接口 , 如下图所示
java反序列化漏洞及其检测
文章图片
如今web漏洞扫描器都提供了代理组件来发现应用的http请求 , 爬虫组件可通过前台页面触发请求进入代理组件;但在API场景下 , 还是需要测试人员进行API调用该操作才能够产生http请求数据 。
在截获到http请求数据后 , 代理组件可以通过两种方式判断一个请求是否是序列化请求:通过http请求的Content-Type , 具体来说ContentType:application/x-java-serialized-object是序列化请求的请求头检查请求数据的开头是否是0xaced , 有时候序列化请求不存在正确的content-type , 此时需要根据数据来判断是否是序列化请求
在确定一个接口是序列化接口的时候会漏洞扫描器会发送探测payload判断接口是否有反序列化漏洞 , 这里的攻击payload类似于1.2节中使用的ysoserial工具 , 由于绝大多数情况下不可能看到回显(http返回数据没有攻击执行结果) , 因此只能进行盲注 , 即发送sleep10这样的命令 , 根据响应时间判断是否有漏洞 。 返回搜狐 , 查看更多
java反序列化漏洞及其检测】责任编辑: