代码编织梦想

[RoarCTF 2019]Easy Java

  • java源码泄露

0x01初步尝试

看到登录第一反应是sql,试了一下,没什么进展。ctrl+u看到有个超链接,是help按键对应的链接。得到

java.io.FileNotFoundException:{help.docx}

发现help.docx的部分更改之后也可以回显,以为是注入捏(结果不是,别学我)

0x02/WEB-INF/web.xml

首先是直接在url里加上/help.docx,下载得到文档,内容如下:

 

鉴于是java,于是去找Java的源码泄露。参照这位师傅的总结博客(ctf/web源码泄露及利用办法【总结中】_Sp4rkW的博客-CSDN博客_web源码泄露)icon-default.png?t=M276https://blog.csdn.net/wy_97/article/details/78165051

本题用到的是WEB-INF/web.xml和/WEB-INF/classes/泄露
WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。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:数据库配置文件

参照之前,想尝试访问/WEB-INF/web.xml得到文件但是失败了,查看源码发现有个地方是要求POST方式传入

 (不知道是不是因为这里,如果理解有误还请其他师傅指正)

所以在Download页面试了试,传参如下,成功下载了

 0x03构造payload

看看web.xml,这几行里有flag相关

<servlet>
<servlet-name>FlagController</servlet-name>
<servlet-class>com.wm.ctf.FlagController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FlagController</servlet-name>
<url-pattern>/Flag</url-pattern>
</servlet-mapping>

首先试了试直接访问根目录下的/Flag,然而并没有什么用。

但是!!这里的<servlet-class>是不是很眼熟!

 /WEB-INF/classes/:含了站点所有用到的 class 文件,包括 servlet class 和非servlet class

 所以我们只需要继续在Download页面用POST传入“filename=”+这一串路径(com.wm.ctf.FlagController),把路径中的“."换成”/"(个人觉得是因为java和php访问路径的格式不一样),并且在前面加上/WEB-INF/classes/,在末尾加上文件后缀(.class)就可以得到payload啦

完整payload:

filename=/WEB-INF/classes/com.wm.ctf.FlagController.class

需要注意的是,直接在页面中传参会报错,得不到回显,所以抓包查看 

 高亮的这一段是不是很可疑!所以丢去base64解码一下,flag就出来了~~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_62984336/article/details/124068095

roarctf2019web题-easy-爱代码爱编程

RoarCTF2019web题-easy_java 作为团队最强的web选手(就我一个),这次的比赛也没时间打,把简单的题放一下,前面要说下,做web宁可把题目想简单,也不要想复杂,因为现在的web题出题人越来越厉害(gou

[roarctf 2019]easy calc-爱代码爱编程

1.知识点 1.1PHP的字符串解析特性 这是别人对PHP字符串解析漏洞的理解, 我们知道PHP将查询字符串(在URL或正文中)转换为内部$_GET或的关联数组$_POST。例如:/?foo=bar变成Array([fo

[roarctf 2019]easy calc(http走私 && 利用php的字符串解析特性bypass)-爱代码爱编程

0x01 题目描述 打开题目如上图所示,有点像国赛的love_math F12查看源码 提示有waf和一个calc.php网页,我们先打开这个网页看看是什么 打开后直接给出了源码,我们可以看见过滤了一些特殊字符,然后e

BUUCTF WEB [RoarCTF 2019]Easy Calc-爱代码爱编程

BUUCTF WEB [RoarCTF 2019]Easy Calc 打开网页是一个计算的!!随便输入可以计算,然后就没啥了,右键源代码: 存在waf,,还有个新的页面!进行访问,看到源代码: <?php error_reporting(0); if(!isset($_GET['num'])){ show_source(__FILE

[RoarCTF 2019]Easy Java-爱代码爱编程

WEB-INF主要通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码 首先看到一个页面,点击下help看看啥情况。 发现输出一串 java.io.FileNotFoundException:{help.docx} 可能是报错信息,打开Brup截取请求信息 GET /Dow

web源码泄露([RoarCTF 2019]Easy Java)-爱代码爱编程

源码泄露 ctf/web源码泄露总结 [RoarCTF 2019]Easy Java web.xml泄露 先看下web.xml详解 题解: https://www.cnblogs.com/wangtanzhi/p/12173215.html WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过we

BUUCTF_RoarCTF2019_EasyJava-爱代码爱编程

BUUCTF_RoarCTF2019_EasyJava 进去之后是一个登陆框,试一下admin和admin888进去了,但是没有任何信息,只是说flag is not here 点击help的页面出现异常,这里发送的是GET请求,想到servlet里面有doGet和doPost两个方法,于是改成POST请求再发一次 下载到了help.docx,但是没有

[RoarCTF 2019]Easy Calc 1-爱代码爱编程

查看源码 于是访问calc.php试试 给num参数传字母不行 WAF的问题:WAF不允许num传入字母,那我们可以在num前加个空格来绕过WAF 这里利用PHP的字符串解析特性来绕过WAF,如 calc.php? num=phpinfo(); 知识点 扫根目录下的所有文件,也就是scandir("/") ? num=print_r(scan

BUUCTF [RoarCTF 2019]Easy Calc1-爱代码爱编程

一.打开题目后: 二.Ctrl+U查看源代码: 发现存在WAF和一个文件calc.php,这里我们就需要简单的了解下什么是WAF了: WAF的全称是(Web Application Firewall)即Web应用防火墙,简称WAF。 那么WAF能做什么?     WAF可以过滤HTTP/HTTPS协议流量,防护Web攻击。     WA

[BUUCTF][RoarCTF 2019]Easy Java-爱代码爱编程

[RoarCTF 2019]Easy Java 考点 WEB-INF/web.xml泄露 解题 打开是一个登陆界面,根据题目这是一道java题,我们先寻找本页面的信息,除了login之外还有一个help,点击跳转 /Download?filename=help.docx 内容为 java.io.FileNotFoundException:{

buuctf-[RoarCTF 2019]Easy Java-爱代码爱编程

[RoarCTF 2019]Easy Java 考点复现参考 考点 java web开发 复现 点击help发现现在不了,改成post成功 然后下载,WEB-INF/web.xml 得到 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xml

[RoarCTF 2019]Easy Calc_WP-爱代码爱编程

分析 文章目录 分析绕过得flagphp字符串解析性方法2 打开就是一个可以实现计算功能的页面,没有利用信息查看源码发现了一个新的链接calc.php,以及设置waf的提示进入calc.php得到一串PHP代码,过滤了一大堆,明显是要绕过的绕过得flag 经过尝试,只有url栏输入字母时不会正常回显这块便需要用php字符串的解析性来绕过?

web buuctf [RoarCTF 2019]Easy Java1-爱代码爱编程

考点: java web.xml配置文件漏洞 漏洞:【漏洞公告】Java web.xml 信息泄漏漏洞 - 阿里云安全产品和技术 - 阿里云 漏洞产生原因:通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映

第48天-WAF 绕过-权限控制之代码混淆及行为造轮子-爱代码爱编程

思维导图 Safedog 代码层手写及脚本绕过 变量覆盖,加密混淆,异或生成 BT Aliyun 代码层手写及脚本绕过 编码解码(变量覆盖,加密混淆,异或生成) ASP,PHP,ASPX,JSP,PY 等后门免杀同理 一句话后门的原理: <?php@eval($_POST['password']) ?> @再php中含义为后

php中使用$_ENV获取环境变量-爱代码爱编程

第一步 找到php.ini文件(一般路径是/usr/local/php/etc) 第二步找到variables_order参数 默认是GPCS 更改成EGPCS 第三步 打开php-fpm.conf文件,设置要设置的环境变量值 env[PHALPI_REDIS_AUTH]=redis密码 env[PHALPI_REDIS_HOST]=redis

[suctf 2019]checkin-爱代码爱编程

这道题是文件上传的题,先上传了一个PHP文件提示不合法的后缀 然后上传了一个.htaccess文件,提示exif_imagetype:not image! exif_imagetype() 读取一个图像的第一个字节并检查其签名,返回内容有16个,根据返回的值,来判断我们图片类型是什么 所以我们可以用GIF89a来绕过这个函数的检查