注入技巧---(登陆一下好吗)

登陆一下好吗??【3思路】
时间:2018-06-14 00:58:18
来源:taozijun
浏览:(742)
(6)
登录一下好吗?

通过这道题提示下寄几:不是所有有关sql语句的注入都要报库名表名字段名!!!

首先打开这道题,是俩输入框,输入1和1有回显,输入union等字符会不显示,想着应该是回显注入

此时应自动脑补sql语句:select * from user where username = ’ ’ and password = ’ '(后经验证是这一个)

                          或者 select * from user where username = " " and password = " "

这时候想不开的我就开始想着如何单引号or各种爆库名表段字段…发现几乎想用的都被过滤了只剩下and,’,",=这些。。臣妾做不到用这些个构造sql语句。。后来翻看了WP后豁然开脑洞,以下介绍三种方法

1.通过构造0 = 0把where后面的语句构造出1 and 1的形式

具体做法:在两个提交框提交 aaa’=‘0 或 aaa’=’ (aaa可为任何username里没有的字符甚至为空)

这样做之后sql查询语句就变成 select * from user where username = ‘aaa’=‘0’ and password = ‘aaa’='0

                                        或者 select * from user where username = 'aaa'='' and password ='aaa'=''

根据等号从前往后看的原则 username='aaa’显然是不存在的,因此返回0(也可以说是空),看下一个等号就是 0=0(空=空)

,0=0(空=空)为1。password同理,所以语句变为select * from user where 1 and 1,爆出全部数据。

2.通过构造username=0爆出全部数据

这里我们要知道,除了开头是非零数的字符串,其他字符串化成整型都为0,字符串=0 为真。

当所有username里没有开头是非零数的字符串,username=0相当于查全部数据.

所以我们构造 username=aaa’+0;%00

构成的sql语句为 select * from user where username = ‘aaa’+0;%00 ’ and password = ’ ’

因为–+,#,/**/等注释符都被过滤了,我们用%00,是一个截断符,相当于把后面的语句注释掉

username=‘aaa’+0 相当于 username=0,得到答案

(当构造username=a’+0+‘a&password=a’+0+'a时,只查询出一条语句,说明password里有开头是非零数的字符串)

3.通过构造异或语句(这个开脑洞)

先给出payload:username=&password=^'aaa

构成的语句是 select * from user where username = ’ ’ and password = '^‘aaa’

其中反斜杠把后面的单引号转义掉了(相当于一个普通的字符),所以’ ’ and password = '就是一串字符串,'aaa’也是一串字符串,字符串都为0,0⊕0=0,又构造出username=0了!!!!

评论

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值