AI 助教问 AI 助教
东方瑞通 · CISP-PTE

日志包含 getshell

日志包含是先把一句话木马写入日志(如 User-Agent),再利用文件包含漏洞包含日志文件执行木马 getshell。

考点精讲

  1. 攻击者将一句话木马写入 User-Agent 等字段,服务器访问日志会记录该内容;再利用文件包含漏洞包含日志文件路径(如 /var/log/apache2/access.log),其中 PHP 代码即被执行。前提是日志路径可预测、日志内容可被写入且可被包含。

记忆技巧

UA 写马 + 包含日志 = getshell
Apache/Nginx 日志路径要分清

常见误区

  • 以为日志包含无需前提——需知道日志路径且可被包含
  • 忽略 User-Agent 注入写马这一步
  • 混淆日志包含与普通文件包含

真题思路

  • 【示例】 日志包含 getshell 的正确流程是()
    直接包含 /etc/passwd 读取用户信息 将一句话木马写入 User-Agent → 访问触发日志记录 → 用文件包含漏洞包含日志文件执行 上传图片马到服务器即可 用 sqlmap 枚举数据库
    答案:B
    解析:日志包含 = 先把木马写入 User-Agent 等被日志记录的字段,再包含日志文件执行其中的 PHP 代码,B 正确。A 是普通文件包含读文件,C 是文件上传,D 是 SQL 注入,均非日志包含流程。

常见问题

Q:日志包含的原理是什么?

A:先把一句话木马写入服务器日志(如 User-Agent 字段),再利用文件包含漏洞包含日志文件,日志中的 PHP 代码即被执行,从而 getshell。

Q:如何把木马写进日志?

A:把一句话木马作为 User-Agent(或其它会被记录进日志的字段)随请求发送,服务器访问日志会把该内容原样记录下来。

Q:Apache 和 Nginx 的日志路径分别在哪?

A:常见路径如 Apache 的 /var/log/apache2/access.log,Nginx 的 /var/log/nginx/access.log(具体路径以实际环境配置为准)。

Q:日志包含需要哪些前提?

A:日志路径可预测、日志内容可被写入(如 User-Agent 可控制)、且日志文件可被包含。三个前提缺一不可。

相关知识

教材出处:第4章 Web 漏洞 日志包含 getshell

AI 助教

让 AI 助教带你深入学习,把你卡住的地方直接问它

随时为您答疑解惑

开始答疑