POST注入(本质是SQL注入)
POST注入就是使用POST进行传参的注入,本质上与GET注入没有任何区别,注入语句在各种框里
在真实站点上,POST注入比GET注入多,表单在有些时候是GET传参,并且最好抓包跑post注入
POST注入高入点:
- 登录框
- 查询框
- 等各种和数据库有交互的框
HEAD注入
Head这里的意思指的是我们的request和response中的头部部位,其中包含了众多字段值,所以不要理解head为单独的一个字段,而是一个很多字段的集合 (比如:User-Agent,x-forwarded-for,Referer这些字段都属于HEAD)
HEAD注入本质:
HEAD注入就是修改抓住了的包里的请求头中的数据,再把修改之后的包放入数据库中,修改的数据会被当作命令执行,再利用数据库中的报错来回显我们查找的信息(注意:抓取的发送包里HEAD部分任意一处都可以被注入)
head注入常见4种
ip,UA,refer,cookie
注意:
Head注入是在成功登录的情况下进行的
引用别人的总结:
一、什么是post注入?
在数据提交处,提交sql语句,使系统进行查询返回相应信息
二、POST注入如何注入?
POST注入和普通注入一样,只是通过post提交数据,在提交的数据中进行注入
三、post注入和head注入的区别
head注入其实跟get、post注入有很大的相似之处,唯一不同的地方就是他从我们平常利用的url和post框装转移到了协议部分,一般的我们可以控制的输入点就在输入框和url框而不会涉及到head部分,但是有的网站他会为了保存我们的信息作为比对会把head头中的信息保存到数据库中以便下一次使用,这里就可以使用这种方法进行注入
四、post注入和get注入的区别
post注入跟get注入唯一区别在post注入的注入点在表单而不是url,他们的返回方式可能也有不同,但是大体上一样,还有一点就是POST传参没有长度限制,你甚至可以传一些危险的东西
防范方法
- 更换表名,字段名
- 给信息加密
- 不展示报错信息
- 禁止站外递交
在此漏洞中比较常用的语法:
updatexml(目标xml内容,xml文档路径,更新的内容)
具体列子: updatexml(1,concat(0x7e,(SELECT database()),0x7e),1),1)
执行语句:‘ or updatexml(1,concat(0x7e,(select database())),1),1)-- qwe
实战:
1.因为Head注入是在成功登录的情况下进行的,所以我们要先抓包,爆破账号密码(如何同时跑两个地方:https://jingyan.baidu.com/article/ca41422f054c881eae99eda0.html)
现在就跑出了账户:admin,密码:123456
2.开始找注入点
先试一试User-Agent,确认没找错,执行成功,找到了库
3.接下来找表,列,flag
4.提交