WEB攻击与防御技术 pikachu——sql注入

 

 如图所示,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

 

posted @ 2019-12-13 16:00  佐博  阅读(336)  评论(0)    收藏  举报