🍬 博主介绍
👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
flag{753b1a2d-673d-4d04-8a57-a58d189cead8}
访问链接,发现是个登录页面,一般我们看到登录页面,我们首先尝试弱口令登录,但是这里我们尝试了,发现失败了,还有就是看到登录框,我们尝试利用sql的特殊字符进行测试是否存在sql注入,但是这里都没有突破。
右击查看源代码,没有发现什么信息,但是发现了一个好像GET传参利用filename读文件
一看,发现是开始界面的help按钮出现的url传参,那么我们就可以利用这个传参看下能读到什么信息,但是发现GET传参一直没有任何的反应。
后来我们干脆利用POST传参,发现下载得到一个word文件,但是这里提示我们说,这个不是flag
然后我尝试下载存有web信息的XML文件,payload:
filename=/WEB-INF/web.xml
后来下载得到下面的关键信息,是跟我们的flag是有联系的
<servlet>
<servlet-name>FlagController</servlet-name>
<servlet-class>com.wm.ctf.FlagController</servlet-class>
</servlet>
<servlet>
:这个元素定义了一个 Servlet,用于处理特定的请求和逻辑。在这个例子中,Servlet 的名称是 “FlagController”。<servlet-name>
:这个子元素指定了 Servlet 的名称,即 “FlagController”。这个名称在整个部署描述符中必须是唯一的,用来标识该 Servlet。<servlet-class>
:这个子元素指定了 Servlet 类的完全限定类名,即 “com.wm.ctf.FlagController”。这个类将包含 Servlet 的逻辑代码,用于处理特定的请求。
WEB-INF主要包含一下文件或目录:
/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties:数据库配置文件
其实说明了这个就是JAVA源代码进行编译后所产生的后缀带有.class的东西。于是我们可以下载这个.class文件再利用反编译手段来获得flag。
生成payload:
filename=/WEB-INF/classes/com/wm/ctf/FlagController.class
得到一串base64编码的flag值
解码,得到flag值