【CTF】Nginx日志注入

ops/2024/9/24 15:46:32/

Nginx日志注入:

日志包含漏洞的成因还是服务器没有进行严格的过滤 ,导致用户可以进行任意文件读取,但是前提是服务器需要开启了记录日志的功能才可以利用这个漏洞。

对于Apache,日志存放路径:/var/log/apache/access.log

对于Ngnix,日志存放路径:/var/log/nginx/access.log 和 /var/log/nginx/error.log

中间件的日志文件会保存网站的访问记录,比如HTTP请求行,User-Agent,Referer等客户端信息,如果在HTTP请求中插入恶意代码,那么恶意代码就会保存到日志文件中,访问日志文件的时候,日志文件中的恶意代码就会执行,从而造成任意代码执行甚至获取shell。

Nginx中的日志分两种,一种是error.log,一种是access.log。error.log可以配置成任意级别,默认级别是error,用来记录Nginx运行期间的处理流程相关的信息;access.log指的是访问日志,用来记录服务器的接入信息(包括记录用户的IP、请求处理时间、浏览器信息等)。

一、 基础知识

  • /etc/nginx/nginx.conf:该文件是Nginx的配置的文件,该文件保存着能够影响服务器运行的配置信息。有时会泄露敏感信息。该文件支持php解析。
  • /var/log/nginx/access.log:该文件是Nginx的访问日志文件,Nginx会把每个用户访问信息记录到指定的日志文件里。该文件支持php解析。

我们尝试读取它的日志文件:

?url=/var/log/nginx/access.log

img

?url=/var/log/nginx/error.log

img

尝试读取Linux系统下的用户信息:

?url=/etc/passwd

img

从上面的日志信息可以看出是User-Agent的内容,这里我们在User-Agent里插入一句话木马

由于访问URL时,服务器会对其进行编码,所以我们通过使用burpsuite抓包来进行来注入

img

写入一句话木马之后,使用蚁剑尝试连接

连接url即为日志的地址:http://ec78819f-174d-4e26-82be-7cce55c08b05.challenge.ctf.show/?url=/var/log/nginx/access.log

连接成功

进入后台,找到flag

ctfshow{8df69fe0-d37b-4231-a482-c3d93c89f43c}


http://www.ppmy.cn/ops/115342.html

相关文章

Python 二次开发金橙子打印软件:开启高效打印新旅程

目录 一、准备工作:搭建系统环境 二、二次开发流程详解 结合一个实例来讲解如何进行二次开发。 三、Python 二次开发关键要素 (一)源码示例与解读 (二)二次开发文档指引 四、问题汇总与解决方案 (一…

【Python报错已解决】AttributeError: ‘Tensor‘ object has no attribute ‘kernel_size‘

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

PyQT开发总结

用PyQT开发了一个界面小程序,记录一下。 pyuic和pyrcc pyuic (PYthon User Interface Compiler)是一个命令行工具,用于将 Qt Designer 生成的 .ui 文件转换成 Python 代码。pyrcc 用于处理 Qt 资源文件(如图片&#…

云手机可以挂在服务器使用吗?

随着移动互联网的迅速发展,手机已成为个人和企业必不可少的工具。为了满足更大规模的应用需求以及简化管理,云手机技术应运而生。云手机是一种虚拟化的手机设备,它依托云计算技术,将手机操作系统和应用托管在云端数据中心。用户可…

动态住宅IP的多元化应用

在现代网络环境中,动态住宅IP以其灵活、隐蔽性强和全球范围覆盖的特点,逐渐成为各行业不可或缺的工具。本文将从多个角度解析动态住宅IP的多元化应用。 1. 跨境电商中的账号管理 在跨境电商平台上运营,通常需要多个账号来管理不同市场和区域…

国际化开发常用知识点

目录 概述 语言和国家/地区代表 货币代码(ISO 4217) 工具类 消息中文本的格式 时间和时区 参考 概述 开发一个支持多国语言的Web应用系统,需要考虑国际化(Internationalization,简称i18n)问题。 语言和国家/地区代表 "国际化信息"也称为"本地化信…

webView2 隐藏滚动条

参考:wenview2隐藏滚动条 查看该链接内容,得知其主要是通过css修改body的overflow 属性为:hide. 这里贴出原链接的解决方案: private void WebView2_NavigationCompleted(object sender, CoreWebView2NavigationCompletedEventAr…

面经 | ES6

ES6 ES6set vs weakSetmap vs weakMapPromise创建三个状态 ES6 set vs weakSet 都是集合,只不过weakSet里面只能存引用类型的变量。weakSet相对set的好处就是,可以避免内存泄漏。因为weakSet中的成员,如果在外部消失了,会自动消…