Java中间件通用回显方法的问题及处理(7.7更新)

之前写的《基于请求/响应对象搜索的Java中间件通用回显方法(针对HTTP)》实际使用情况中会有问题,再水一篇文章单独解决一下。

后续有其他问题的话会在这里更新哈~

没有回显/高并发时才有回显

残笑师傅给我反馈说:只有高并发的环境下才能看到回显结果,结果中包含了:没HTTP只有命令输出的情况、没回显的情况、有回显的情况、有回显多次的情况。

这里解释个事情:
这条主要解决的是站点存在其他正常请求的时候,回显可能会串位的问题
比如:除了命令执行请求以外,还有其它的10个请求同时在访问站点,就可能出现串位。

这个问题是因为搜索到了NIO的队列中,由于Request加了存在cmd头的限定,所以搜索到的Request一定是你的Request,但是Response就不好说了,也就是说如果你在发这个的攻击包的时候,如果还有其它人在访问,那么很有可能,你的命令输出结果就输出到其它访问的结果中了。

之前测试的时候,只测了单一线程发送的情况,所以没发现这个问题,emm,还是得测试充分的。

模拟测试:

模拟正常访问: Burp Intruder使用Null Payloads发送1000次,并发10,固定发送间隔500ms。

访问的其实就是个404页面

在这里插入图片描述

模拟攻击访问: Burp Repeater发送攻击报文

然后就可以发现,某几次攻击请求中,响应为空,但是一个普通的请求中出现了我们想要的结果:

某几次的攻击请求结果哪里都找不到,应该是找到的Response对象,还没等写入,就被销毁了。。

在这里插入图片描述

在这里插入图片描述

解决方法

目前翻阅了Tomcat、Weblogic、Jetty、JBOSS的代码,发现Request对象下面都带有对应的Response对象,所以既然可以准确定位到Request对象,那么Response也就有了。

(Jetty的resposne不是直接包含在request对象中,这三者都有无参的getResponse方法,直接反射调用就好了~)

PS: 前几天还在p师傅的小密圈跟Kingkk师傅说觉得Weblogic的Request对象下面带Response好奇怪,结果中间件都这么干,emm,我Out了。。。

目前还是测了Tomcat/Weblogic/Jetty没有问题,JBo

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值