皮皮网
皮皮网

【成都源码游戏公司】【rqalpha 源码解析】【broadleaf 源码解读】dvwa源码审计

来源:textbox 源码 发表时间:2024-11-26 06:42:03

1.[靶场WP]DVWA 1.10 之文件上传
2.DVWA教程之Brute Force(high、源码impossible)
3.如何进行dvwa的审计环境搭建?
4.代码审计之文件上传(含CTF) 持续更新中

dvwa源码审计

[靶场WP]DVWA 1.10 之文件上传

       DVWA 1.的文件上传安全等级逐级提升,从低到高依次分析:

       0x Low 级别

       代码审计显示,源码文件上传过程中未做任何过滤,审计直接上传php文件即可成功。源码

       通过修改HTTP请求报文的审计成都源码游戏公司`Content-Type`字段,将php文件伪装成其他类型,源码如image/png,审计可实现上传。源码

       0x Medium 级别

       代码对上传文件类型进行了白名单过滤,审计依赖`Content-Type`字段。源码

       尝试通过修改请求数据包,审计将php文件上传为,源码然后直接访问文件。审计

       0x High 级别

       不仅检查文件后缀名,源码还对文件内容进行白名单检测,防范木马。rqalpha 源码解析

       尝试上传木马,如`1_info.jpg`,但PHP文件无法直接执行,需与其他漏洞配合。

       文件中可能含有恶意代码,但需要特定条件才能利用。

       0x Impossible 级别

       安全措施更严格,包括文件重命名、后缀名、类型和内容的多层检测,以及图像重建以过滤恶意代码。

       这使得利用此漏洞变得几乎不可能,需极端条件和多步操作配合。

DVWA教程之Brute Force(high、impossible)

       DVWA简介

       DVWA是一个提供合法环境以测试安全专业人员技能和工具的PHP/MySQL Web应用,旨在帮助web开发者理解web应用安全防范过程。broadleaf 源码解读它共有十个模块,包括暴力(破解)、命令行注入、跨站请求伪造、文件包含、文件上传、不安全的验证码、SQL注入、SQL盲注、反射型跨站脚本、存储型跨站脚本。

       在DVWA 1.9的代码中,分为四种安全级别:Low,Medium,High,Impossible。kodi 源码直通通过比较不同级别的代码,初学者可以接触到一些PHP代码审计的内容。

       教程环境

       DVWA靶机运行在centos8.1,口令破解环境为windows专业版。使用工具包括BurpSuite_pro2.0.和FireFox浏览器。

       暴力破解过程

       1. 下载启动DVWA靶机,使用指令docker search dvwa查询可下载靶机,并下载star最多的dvwa靶机。使用指令docker images查看所有已下载的靶机,并使用指令docker start CONTAINER ID启动DVWA靶机。启动后使用docker ps确认靶机已启动。

       2. 实验设置

       将DVWA靶机的安全级别调整至high,关闭burpsuite的拦截功能。使用FoxyProxy插件在FireFox浏览器中设置代理。

       3.high级别的口令破解

       在high级别中,DVWA使用随机token机制防止CSRF攻击,配音源码增加了暴力破解的难度。虽然没有限制频次或锁定账号,但在登录页面中首次访问没有user_token,这是暴力破解的突破口。通过burpsuite抓包,观察到每次请求都包含用户提交的user_token,并记录在referrer字段中。因此,可以直接在登录界面和首次登录页面进行暴力破解。

       使用burpsuite的入侵模块,设置草叉模式遍历payload集合。在Payloads选项卡中选择simple list进行密码爆破。在Payloads选项卡中加载密码爆破的payload,并在Redirections选项卡中设置Always。点击start attack进行攻击,直至成功登录。

       4.impossible级别的口令破解

       在impossible级别,DVWA仅通过GET请求获取一次性的user_token。由于GET请求无法提交爆破参数,需要通过POST请求进行爆破。使用burpsuite宏功能,建立宏并定义参数规则,对密码进行爆破。

       在burpsuite中加载登录请求包至入侵模块,并设置宏进行密码爆破。使用宏后,爆破速度远快于普通草叉模式。

       总结

       暴力破解是一种简单但效率较低的密码获取方式。为了提高密码安全性,建议使用复杂密码(至少包含八个字符,包含字母、数字和特殊字符)。在实际环境中,应用更高级的安全策略和技术来防范暴力攻击。

如何进行dvwa的环境搭建?

       搭建DVWA

       DVWA是提供给渗透测试者进行漏洞练习的开源平台,内含多种常见漏洞如XSS、SQL注入、文件上传等,可在Docker Hub上找到多个用户上传的DVWA镜像。选择sagikazarmark/dvwa,使用命令docker pull sagikazarmark/dvwa和docker run -it -p : sagikazarmark/dvwa进行安装。安装完毕后,通过访问本机IP地址.0.0.1:或...6:即可访问DVWA界面,用户名和密码分别为admin和password,数据库用户名和密码分别为root和p@ssw0rd。创建数据库后,重新登录即可开始测试平台内的漏洞。

       搭建SQLi-LABS

       SQLi-LABS是一个专门学习SQL注入技术的开源平台,包含种不同类型的注入实验,通过在GitHub上搜索Audi-1/sqli-labs找到相应Docker镜像,使用命令docker pull acgpiano/sqli-labs和docker run -it -p : acgpiano/sqli-labs进行安装。安装后,通过访问.0.0.1:或...6:即可访问SQLi-LABS界面,点击“Setup/reset Database for labs”创建数据库,即可开始进行SQL注入实验。

       Ms安全实验室

       专注网络安全知识普及和专业培训,提供包括Web安全、红队实战、Java代码安全审计、恶意代码分析、网络安全应急响应等系统课程。已出版《Web安全攻防:渗透测试实战指南》、《内网安全攻防:渗透测试实战指南》等安全书籍。可扫描客服微信获取更多学习资料。

代码审计之文件上传(含CTF) 持续更新中

       案例一

       代码存在以下安全漏洞:

       为增强安全性,建议采取以下措施:

       文件上传功能常涉及安全问题,需谨慎处理和测试以确保安全。

       案例二 (dvwa文件上传impossible代码安全分析)

       代码漏洞点包括:

       反CSRF令牌安全问题:未定义校验函数,可能允许跨站请求伪造攻击。

       文件上传安全问题:未限制文件类型和大小,可能导致恶意文件上传。

       目录遍历安全问题:相对路径设置可能导致目录遍历攻击。

       代码注入安全问题:getimagesize()函数可能允许代码注入。

       总之,代码安全问题多,需改进。

       MIME绕过

       尝试修改上传文件的HTTP头。

       检测上传文件类型时直接检查后缀名,不通过Content-Type,易被绕过。

       .htaccess攻击

       .htaccess配置文件可影响目录权限、重定向和文件扩展名。

       设置Sethandlerapplication/x-httpd-php可使非PHP文件执行,可能导致控制网站。

       %截断

       通过截断文件名中的%,绕过文件类型检测。

       注意路径情况和后缀名判断。

       条件竞争

       利用并发操作的时间窗口,攻击者可在服务器上执行任意代码。

       存在条件竞争漏洞的代码示例:

         $uploaded_name = $_FILES['file']['name'];

         $uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1);

         $target_name = md5(uniqid()) . '.' . $uploaded_ext;

         if (strtolower($uploaded_ext) == 'jpg' || strtolower($uploaded_ext) == 'jpeg' || strtolower($uploaded_ext) == 'png') {

           move_uploaded_file($_FILES["file"]["tmp_name"], $dir . $target_name);

           $result = $dir . $target_name;

           echo "Stored in: $result";

         } else { echo "Invalid file"; }

       条件竞争攻击示例:并发上传同名文件,仅一个成功保存,攻击者利用此漏洞上传恶意文件。

       上传.user.ini进行getshell

       通过上传特定文件实现getshell,需谨慎处理服务器权限和代码审查。

相关栏目:知识