freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

XFF漏洞攻击原理及防御方案
2019-11-18 17:56:12

01常见HTTP头注入参数

在介绍XFF注入之前,我们先来了解下常见的存在HTTP头注入的参数,如下图:

5bc18dfa88b84ef1b46618765169b908

User-Agent:使得服务器能够识别客户使用的操作系统,浏览器版本等.(很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中)

Cookie:网站为了辨别用户身份进行session跟踪,并储存在用户本地终端上的数据(通常经过加密)

X-Forwarded-For:简称XFF头,代表了HTTP的请求端真实的IP。它被认为是客户端通过HTTP代理或者负载均衡器连接到web服务端获取源ip地址的一个标准(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库或某文件[通过修改XXF头可以实现伪造IP])。

Rerferer:浏览器向 WEB 服务器表明自己的页面来源。

Host:客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号。

02XFF注入的概念

XFF,是X-Forwarded-for的缩写,属于SQL注入的一种,该注入原理是通过修改X-Forwarded-for头对带入系统的dns进行sql注入,达到欺骗服务器执行恶意的SQL命令的效果,从而可以得到网站的数据库内容。

03XFF的危害

①数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。

②网页篡改:通过操作数据库对特定网页进行篡改。

③网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。

④数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。

⑤服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。

04XFF漏洞复现

1. 确定漏洞的存在

使用burpsuite工具进行抓包,并用Repeater模块对请求进行修改,分别修改X-Forwarded-For的值如下所示:

X-Forwarded-for: 127.0.0.1

0dbde11555784d14816df3c4c5452d3c

X-Forwarded-for: 127.0.0.1’’

79050576298f402d819a8bf7d91a44f5

X-Forwarded-for: 127.0.0.1' and 1=1#

b5a309a6dca84e7d9a7872f34ea9d3c3

X-Forwarded-for: 127.0.0.1' and 1=2#

2d58c9c047914064824a429841fd7704

若访问的结果如上图所示,则说明存在SQL注入漏洞。

2. 判断查询字段数量

判断出字段数量是4。

92e7c85b4e494cbd9a8e87d7e81a2e05

3. 查询SQL语句插入位置

3a85acea7c7a422c9624f05778cb4e5a

4. 查询当前数据库库名

查询出的当前数据库库名为aaa。

d79ce7956c6b4e7e984a0c89883b233f

05

XFF注入PHP代码

fef23fe6fab74601a450f2a114acbae1

06

防御方式

①过滤http头中的X-Forwarded-for header中的内容,不允许其插入敏感字符,过滤字符参考sql注入修复方案。

②过滤以下敏感字符

“net user”

“xp_cmdshell”

“add”

“exec master.dbo.xp_cmdshell”

“net localgroup administrators”

“select”

“count”

“Asc”

“char”

“mid”

“ ‘ ”

“ :”

“ " ”

“insert”

“delete from”

“drop table”

“update”

“truncate”

“from”

“ % ”

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者