攻防世界WEB高手进阶之Zhuanxv
1.一开始就是一个时钟界面
2.扫描目录发现/list 目录
打开是后台登陆,看了一下源码,也没发现什么,焦灼。。。
3.百度上搜了一波wp,发现原来在css里面藏了东西
后台的背景图片居然是这样读取的,估计可能有文件读取漏洞,
另外,抓包发现页面是jsp写的
尝试读取配置文件web.xml
Payload:
http://111.198.29.45:32744/loadimage?fileName=../../WEB-INF/web.xml
本地用notepad++打开
配置文件里面写的是Struts2,搜了下Struts2目录结构,
参考链接:
https://blog.csdn.net/u010004082/article/details/79351459
https://www.cnblogs.com/pigtail/archive/2013/02/12/2910348.html
apps-存放了所有Struts2的示例项目
docs-存放了所有Struts2与XWork的文档
lib-存放了所有Struts2相关的JAR文件以及Struts2运行时所依赖的JAR文件
src-存放了所有Struts2的源码,以Maven所指定的项目结构目录存放
继续读取struts.xml文件
Payload:
http://111.198.29.45:32744/loadimage?fileName=../../WEB-INF/classes/struts.xml
记事本打开struts.xml
这里class里面可以看到很多class类名,尝试了一下,都可以逐个下载,点号换成正斜杠,然后再在后面加个.class就可以下载了,下载后用jd反编译class文件
http://111.198.29.45:32744/loadimage?fileName=../../WEB-INF/classes/applicationContext.xml
这里发现一个user.hbm.xml
逐个下载配置文件中的class,反编译一下
这里对用户名进行了过滤,过滤空格和等号
反编译之后可以直接看到查询语句(这里的sql语句与mysql不太一样,使用的是HSQL)
hsql参考这篇文章,与mysql语句差别不大,但是也是有区别的
https://www.cnblogs.com/fengyouheng/p/11013013.html
4.注入
可以尝试构造万能密码
蓝色这一块就是拼接的语句
这里对空格过滤了考虑用换行符稍微处理一下
Payload:
/zhuanxvlogin?user.name=admin%27%0Aor%0A%271%27%3E%270'%0Aor%0Aname%0Alike%0A'admin&user.password=1
登陆进去了,但是没啥用,flag是在数据库里面
后面的盲注语句直接参考的wp的
https://www.jianshu.com/p/b940d0aaa9fa
https://xz.aliyun.com/t/2405#toc-27
flag如下
嗯,最后说一句,提交的时候sctf需要大写。