一、xff 注入攻击
X-Forwarded-For 简称 XFF 头,它代表了客户端的真实 IP,通过修改他的值就可以伪造客户端 IP。XFF 并不受 gpc 影响,而且开发人员很容易忽略这个 XFF 头,不会对 XFF 头进行过滤。X-Forwarded-for 可以随意设置字符串,如果程序中获取这个值,再带入数据库查询会造成 SQL 注入。除了 X-Forwarded-For ,还有 HTTP_CLIENT_IP 都可以由客户端控制值,所以服务端接受这两个参数的时候,没有过滤会造成 SQL注入或者更高的危害。
二、代码分析
getenv('HTTP_X_FORWARDED_FOR')获取远程客户端的HTTP_X_FORWARDED_FOR值,没有进行过滤拼接SQL语句带入查询造成注入。
三、黑盒环境下的xff 注入攻击
1、测试注入点
在用户登录注册模块在 HTTP 头信息添加 X-Forwarded-for: 9.9.9.9' ,用户在注册的时候,如果存在安全隐患,会出现错误页面或者报错。从而导致注册或者登录用户失败。burpsuite 抓包,提交输入检测语句:X-Forwarded-for: 127.0.0.1'and 1=1#X-Forwarded-for: 127.0.0.1'and 1=2#两次提交返回不一样,存在 SQL 注入漏洞
2、获取敏感信息
X-Forwarded-for:-127.0.0.11'union select 1,2,3,user()#输入提交包后看到页面返回:root@loclhost
如果觉得《SQL 注入漏洞(十四)xff 注入攻击》对你有帮助,请点赞、收藏,并留下你的观点哦!