栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

墨者学院-X-Forwarded-For注入漏洞实战

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

墨者学院-X-Forwarded-For注入漏洞实战

继续研究SQL注入相关题型!!!今天的SQL注入题目摆脱了既往的SQL语句,主要考查的是HTTP请求头中XFF的伪造和应用,是一道借用XFF来爆破数据库、表、列以及列值的题目!
附上题目链接:https://www.mozhe.cn/bug/detail/QWxmdFFhVURDay90L0wxdmJXSkl5Zz09bW96aGUmozhe
首先,打开题目,映入眼帘的是一个登录表单,先输入账户为admin,密码为admin进行登录尝试,出现了alert弹窗,仔细观察弹窗会发现类似IP地址格式的110.243.1.106数据存在,初步猜测这是服务端记录并显示了客户端的IP地址。


服务端获取客户端IP地址,常见的三种方法:
(1)remote_addr:指的是当前直接请求的客户端IP地址,存在于TCP请求中,是HTTP协议传输的时候自动添加,不受请求头header的控制。因此,当客户端与服务器之间不存在任何代理的时候,通过remote_addr获取客户端IP地址是最准确,也是最安全的,重点强调的是remote_addr是不可伪造的。
(2)X-Forwarded-For:即XFF,是代理服务器在请求转发时添加上去的。如果客户端和服务器之间存在代理服务器,那么通过remote_addr获取的IP就是代理服务器的地址,并不是客户端真实的IP地址。因此,需要代理服务器(通常是反向代理服务器)将真实客户端的IP地址转发给服务器,转发时客户端的真实IP地址通常就存在于XFF请求头中。
(3)client-ip同XFF,也是代理服务器添加的用于转发客户端请求的真实IP地址,同样保存在请求头中。
可以看出,在服务端获取客户端IP地址的这三种方法中,XFF和client-ip是可以伪造的。于是应用burpsuit的Proxy模块进行通信拦截,发送给Repeater模块,通过测试判断出服务端获取客户端IP地址的方法,并检测是否能够进行注入。


在未添加其他头选项状态下的Response内容中,清晰显示了刚才乱码的alert内容。与猜测大致相符,服务端的确存在记录并显示客户端IP地址的行为。
下一步,根据已知服务端获取客户端的方法知识以及题目(X-Forwarded-For注入漏洞实战)的提示,通过在请求头header中增添XFF选项及内容,检测服务端是否可以通过XFF获取客户端IP地址并判断XFF是否可以作为注入点。


可以看出,服务端可以通过客户端设置XFF获取IP地址,并将其回显到alert中,因此XFF存在注入点。
第三,应用sqlmap对服务端的数据库、表、列以及列值进行爆破。
在应用sqlmap进行爆破前,先将Request内容采用raw格式进行复制并保存为request.raw文件,修改XFF内容为*。

(1)sqlmap结合request.raw文件对数据库进行爆破,发现名为webcalendar的数据库。

(2)根据获取到的数据库信息,对webcalendar数据库名下的表进行爆破,发现名为user的表。

(3)根据获取到的数据表内容,对名为user数据表中的列进行爆破,发现了名为username和password列。

(4)根据获取到的列名,对password和username列的列值进行爆破,发现了一组由用户名和密码组成的数据。

最后,应用获取到的账户和密码进行表单登录,得到题目要求的key值。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781746.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号