文章总结: 本文通过靶场实战演示了利用文件包含漏洞结合Nginx日志获取Webshell的过程。核心思路是利用文件包含函数解析执行日志的特性,通过抓包修改User-Agent或Referer字段写入恶意PHP代码,再次包含日志文件即可执行命令并获取Flag,适合Web安全初学者学习日志投毒技巧。
综合评分: 75
文章分类: WEB安全,渗透测试,实战经验,漏洞分析,软文广告
【靶场505】文件包含+Nginx日志Getshell
好靶场
2026年1月2日 12:27
四川
以下文章来源于网安碎碎记
,作者网安碎碎记
网安碎碎记
.
网安半萌新的学习自留地~ 记录打靶踩坑、基础知识点、渗透小技巧,没有高深理论,只有接地气的日常碎记。跟着我从零摸索、慢慢进阶,一起解锁网安入门小知识,避开新手雷区~
好靶场
我们已经突破500个靶场。好靶场是一个专业网络安全实战学习平台,核心定位为 “学安全不只是看书,上手练习首选”,无学习门槛,适配从 0 基础到进阶阶段的各类学习者。
有宝子就问了,主播主播,这么好的靶场怎么使用:
首先关注好靶场
然后发送bug,可以点击链接直接登录
《你所有的请求都被我Nginx记录下来了》
靶场路径
靶场地址:http://www.loveli.com.cn/see_bug_one?id=396
邀请码:05e56fcab4a04b65
填写即领 14 天高级会员,解锁更多漏洞实战环境,一起来实战学习吧!
漏洞原理
程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,
直接调用此文件,而无须再次编写,这种调用文件的过程一般被称为文件包含。
在包含文件的过程中,如果文件能进行控制,则存在文件包含漏洞
原因:
1、使用文件包含函数
2、包含的文件可控
分类
文件包含通常分为 2 类:
- • 本地包含-Local File Include LFI
- • 远程包含-Remote File Include RFI
本次的靶场环境属于 LFI
靶场考点
- 1. 在文件包含函数中,被包含的文件中的代码会被解析执行。
- 2. nginx 中间件的默认日志路径: /var/log/nginx/access.log
- 3. 过滤了伪协议、以及其他路径。但是 /var/log/nginx 路径可以进行包含
- 4. PHP 的命令执行:
<?system('tac /tmp/flag.txt')?>
做题思路
-
1. 看题目、看描述
由题目和描述可知,开启了日志记录,记录日志的文件名:access1.log -
2. 百度搜索 nginx 默认日志路径,把日志文件替换为 access1.log
a. 默认路径:/var/log/nginx/access.log
b. 替换后路径:/var/log/nginx/access1.log -
3. 尝试进行包含,在输入框输入上面 ”替换后的路径“ 进行访问,包含成功
-
4. 分析日志,记录了哪些内容。记录的这些内容里面,有哪些是可以进行控制的。
a. 根据页面回显内容,分析日志记录了我们请求数据包的 UA,Referer,以及我们进行包含请求的参数。
b. 而这 2 个地方的值,都是我们可以进行控制的,所以产生了漏洞。 -
5. 抓包,在数据包中修改 UA 或者 Referer 的值,在里面加入恶意代码。发包
-
6. 再次包含日志文件得到 flag
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:好靶场 《【靶场505】文件包含+Nginx日志Getshell》