SQL注入姿势

一、双等号绕过

例题:http://ctf5.shiyanbar.com/web/wonderkun/web/index.html (登陆一下好吗)

payload:username=a'='&password=a'=' 

                username=a'='0&password=a'='0 

解析:

后端PHP代码应该为:select ** from ** where username='$username' and password='$password'.

加入payload之后完整代码:select ** from ** where username='a'='' and password='a'=''.

红色字体的username='a'password='a'在数据库中查询不到,于是返回0,0=''/0='0'为真,于是返回1,于是整个代码为真,于是输出数据库中的所有信息。

在本地数据库中经测试,发现这几种都可以。但是题目中后台代码用''闭合,所以不是全部都能登录拿flag。

另一种payload:利用MySQL的数据类型转换特性

本地测试:

甚至这样也可以

但是只有取0时可以,1、2....都不行。

经测试,发现利用所有原本应该接受数字类型为输入的字段,用0代替后都可以输出所有的字段。

回到题目,看到网上说;%00也是MySQL的注释符,但是我没有成功注入。。。不知道哪里出问题了

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值