当前位置: 首页 > news >正文

漏洞基础与文件包含漏洞原理级分析

漏洞基础

定义

由于web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种
安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的
文件(可以使web根目录以外的文件),甚至执行系统命令。

漏洞挖掘

(1)ur编码代替.或者/,如使用%2F代替/
?filename=..%2F..%2F..%2F..%2Fetc%2Fpasswd   .+/.../etc/passwd
(2)加入+
?filename=.+./.+./bin/redacted.dll
(3) %00
?filename=%00./file.php
/etc/passwd%00.jpg
2.常出现的功能点:文件读取或者展示图片等对文件读取交互的功能块
3.进行目录跳转时,关注重点:各种历史命令如:出现的密码、路径、配置文件路径、其
他关联IP、日志文件、war包、备份文件路径等等,可进一步读取或利用。
4.对于windows,很多人将重要信息放置在桌面,可以直接对桌面的一些文件名进行
fuzz,比如1.txt、2.txt、密码.txt等
5.利用全路径或者其他地方获取到的路径读取一些关键的程序源码。
读取WEB-INF/web.xml,进一步读取class文件,反编译得到源码。
读取war包,反编译获取源码。

6.读取网站的相关配置信息,数据库配置等
redis:/etc/redis.conf
ssh:/etc/ssh/sshd_config
tomcat:/usr/local/tomcat/conf/tomcat-users.xml

apache:
/etc/httpd/conf/httpd.conf
/etc/apache2/apache2.conf
/etc/apache2/httpd.conf

nginx:
/www/nginx/conf/nginx.conf
/etc/nginx/nginx.conf
/usr/local/nginx/conf/nginx.conf
/usr/local/etc/nginx/nginx.conf

7.读取应用日志文件。获取网站后台地址、ap接口、备份、等等敏感信息
apache:
/var/log/apache2/access.log
/var/log/apache2/error.log
/var/log/httpd/access_log
/etc/httpd/logs/access_log
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log

nginx:
/var/log/nginx/access.log
/var/log/nginx/error.log
/usr/local/var/log/nginx/access.log
/usr/local/nginx/logs

危害

任意文件读取可以让恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。

漏洞防范

1.对../以及相关编码进行过滤(但依旧有方法进行绕过,如%00,+.+.或URL编码等)
2.敏感词防护。对HTTP请求体、HTTP请求参数、HTTP响应体、HTTP请求URL位置双
向检测,并可触发继续、通过、阻断、封禁、重定向等及时响应动作,对敏感信息进行
多选择性、高灵活性的有效防护
3.程序报错内容不要有回显
4,对web服务器目录权限进行最小权限设置
5.对用户输入点进行严格验证
6.注意如PHPinfoO的web敏感信息泄露造成的任意文件读取

文件包含漏洞

关键在于URL地址

由url地址(也是我们抓包的地址)可知通过PHP文件?号链接参数title等于一个PHP文件来获取内容文件,因此title值不同反馈内容不同(不论是windows还是Linux都可以使用../进行目录回退),我们可以使用../让title值等于根目录然后拼接我们需要访问内容路径(如需要访问windows系统的hosts就可以使用多个../确保回退到根目录再拼接绝对路径进行访问)

造成改漏洞的原因是(如下图代码)它包含了header.php这个文件,之后它对title文件title进行传参和校验,同时赋值给了filename,然后就直接把传进来的内容require没有对输入参数进行处理和限制因此造成目录遍历问题

漏洞原理

程序在实现上没有充分过滤用户输入的../之类的目录跳转符,导致恶意用户可以通过提交
目录跳转来遍历服务器上的任意文件。(对用户输入没有进行限制)

常见读取敏感文件路径

1.windows

C:\Windows/System32/drivers/etc/hosts//主机名与IP地址映射文件
C:\boot.ini //查看系统版本
C:\Windows\System32Vinetsrv\MetaBase.xml/IIS配置文件(如MySQL,PHP服务器的详细配置信息)
C:\Program Files\mysqlmy.ini //Mysql配置0..(.ini大多数都是初始化配置文件,因此在进行目录遍历时也可以特意对ini文件进行遍历)
C:\Windows\php.ini //php配置信息
C:\Windows\my.ini//Mysql配置信息

2.Linux

/etc/passwd(可查看当前系统的账户信息)
/etc/shadow(加码后的用户密码的密文格式与账户信息对应,*表示系统用户不能登录,!表示当
前用户被禁用不能登录)
/etc/my.cnf(可查看MySQL的配置文件,端口号,数据库详细路径等)
Vetc/redhat-release(可查看系统版本,得知系统版本后可查找当前系统所存在的漏洞,若对方没
有修复则可进行利用)
/root/.bash_history(可查看对方主机有哪些历史操作)
/proc/mounts(对方系统挂载了哪些设备)
/proc/scheddebug(该文件中可看到当前系统中正在运行的进程,且可获得对应进程的PID,可
通过关掉进程的方式时期失效)
/proc/net/fibtrie(查看对方内网有哪些IP,若要考虑获取到对方的IP地址,则可对其进行横向渗
透)
/proc/self/environ(可查看对方服务器当前所配置的环境变量,可通过环境变量中所配置的路径/文
件去获取到对方服务器的很多信息)
/proc/self/loginuid(对对方服务器用户进行查看)
/etc/httpd/conf/httpd.conf(Apache配置文件)

以上便是进程文件包含,进程漏洞读取,相关的文件或文件内容

流量分析

如流量包中出现:    ../    .%00   ..   + 等,就很可能会涉及文件包含或漏洞等相关内容

漏洞利用

Lanproxy任意文件读取漏洞复现(CVE-2021-3019)

简介

lanproxy是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,支持tcp流量转
发,可支持任何tcp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面等

该漏洞主要是因为这个代理产生了漏洞:Lanproxy1.0通过../绕过读取任意文件。该漏洞允许目录遍历读取//conf/config.properties来获取到内部网连接的凭据。

影响版本

Lanproxy1.0

环境搭建

下载地址:https://www.seafile.com/en/download/

下载后解压到目录/usr/local
mv'home/kd/桌面/proxy-server-0.1.zip'/usr/local/移动文件或改名
cd /usr/local//进入指定目录
unzip-d/usr/local proxy-server-0.1//解压proxy-server到]/usr/local指定目录下
rm-rfproxy-server-0.1.zip//删除压缩包
I!查看就可以发现该文件了及pid了,不想用时可使用q命令将其关掉
进入proxy-server-0.1bin目录,给startup.sh加上执行权限
cd proxy-server-0.1/bin
chmod +x startup.sh
启动服务/startup.sh
通过浏览器访问,http://your-ip:8090(就会出现登录页面)

漏洞复现

在登录页面,使用Burp抓包,并发送到Repeater
在url构造以下链接读取配置文件/./conf/config.properties,通过构造payload抓包之后右侧有回显
就说明我们已经成功读取到了命令
修改payload读取敏感文件…./etc/passwd

修复建议

更新补丁包

http://www.xdnf.cn/news/1412371.html

相关文章:

  • 【重学MySQL】九十四、MySQL请求到响应过程中字符集的变化
  • 盛最多水的容器:双指针法的巧妙运用(leetcode 11)
  • 多智能体系统设计:5种编排模式解决复杂AI任务
  • FPGA设计杂谈之七:异步复位为何是Recovery/Removal分析?
  • FunASR人工智能语音转写服务本地部署测试
  • HTTPS -> HTTP 引起的 307 状态码与HSTS
  • C++动态规划——经典题目(下)
  • Chrome DevTools Performance 是优化前端性能的瑞士军刀
  • JSP 原理深度解析
  • MATLAB R2010b系统环境(四)MATLAB帮助系统
  • 【GPT入门】第62课 情感对话场景模型选型、训练与评测方法,整体架构设计
  • 深度学习篇---MobileNet网络结构
  • 五分钟聊一聊AQS源码
  • globals() 小技巧
  • 仅有一张Fig的8分文章 胞外囊泡lncRNA+ CT 多模态融合模型,AUC 最高达 94.8%
  • 【LeetCode修行之路】算法的时间和空间复杂度分析
  • 大数据毕业设计选题推荐-基于大数据的大气和海洋动力学数据分析与可视化系统-Spark-Hadoop-Bigdata
  • ESP32C3 系列实战(1) --点亮小灯
  • Wi-Fi技术——物理层技术
  • 使用Cadence工具完成数模混合设计流程简介
  • LangChain核心抽象:Runnable接口深度解析
  • leetcode_48 旋转图像
  • FFMPEG学习任务
  • 第 14 篇:K-Means与聚类思维——当AI在没有“标准答案”的世界里寻宝
  • 【C2000】C2000的硬件设计指导与几点意见
  • 开源知识抽取框架 推荐
  • 京东获取商品评论指南,实时关注用户反馈
  • 官方 API 与网络爬虫的技术特性对比及选型分析
  • Unity学习----【数据持久化】二进制存储(三)--文件夹操作
  • OpenStack 01:介绍