CH18 攻击Web服务器

一、Web服务器配置缺陷
1. 默认密码
2. 默认内容
    (1)调试与测试功能,如phpinfo.php
    (2)样本功能,如Jetty 7.0.0中的Dump Servlet和Apache tomcat中的Sessions Example脚本 
    (3)禁止公众访问,但无意中允许了公众访问的强大功能,如war文件、JMX(JBOSS的控制台)、Oracle的PL/SQL网关等
    (4)包含有用的信息的Web服务器手册
3. 目录列表
4. WebDAV方法
    指用于Web分布式创作与版本控制的HTTP方法集合。WebDAV添加了大量的操纵服务器文件的方法(PUT/DELETE/COPY/MOVE/SEARCH/PROFIND-获取与指定资源有关的信息,如作者、大小与内容类型),可使用DAVtest工具进行测试。
渗透测试步骤:
    (1)使用OPTIONS查看支持的方法,不同目录中激活的方法可能各不相同
    (2)有时被告知有效的方法不一定能用,但是没有列出 的方法可能能用,应手动测试每一个方法
    (3)如果发现一些WebDAV方法被激活,应使用激活WebDAV的客户端进行深入调查。
            a. 尝试使用PUT上传一个文本文件
            b. 如果上传成功,上传一个后门脚本
            c. 如果扩展名被阻,尝试以.txt扩展名上传,然后通过MOVE方法重命名
            d. 如果以上方法无效,尝试上传一个JAR文件,或一个浏览器会将其内容显示为HTML的文件
            e. 使用davtest.pl之类的工具遍历所有目录 

5. Web服务器做为代理服务器
技巧一:让代理服务器发送一个包含目标完整URL的HTTP请求,包括主机名和端口号
技巧二:使用CONNECT方法指定到目标主机和端口号

a. 使用GET与CONNECT请求,尝试用Web服务器作为代理服务器,连接因特网上的其他服务器,并获取其中的内容
b. 尝试使用以上两种技巧连接主机基础架构中不同的IP与端口
c. 尝试使用以上两种技巧,在请求中指定127.0.0.1为目标主机,连接常用端口号

6. 虚拟主机配置缺陷
容易导致安全配置 仅适用 于一台虚拟主机,而忽略默认主机。
a. 使用以下方式向根目录 提交GET请求:
        正确的HOST消息头;随意HOST消息 头;HOST消息 头中的服务器IP地址;无HOST消息头
b. 对比响应,如果观察到不同的行为,使用生成不同结果的HOST消息头重复应用程序解析过程,一定要使用-vhost选项进行一次Nikto扫描。

7.保障Web服务器配置的安全
    (1)修改所有默认认证信息,删除不必要的帐户
    (2)在Web根目录的相关路径上应用ACL,或设置防火墙
    (3)删除默认内容与功能
    (4)如果需要保留默认功能,应对其进行强化,禁用不必要的选项与行为 
    (5)在一个控制整个服务器的配置中禁用目录列表,还可以确保每个目录包含服务器默认提供的index.html文件
    (6)除GET/POST外,禁用其他方法
    (7)确保没有把Web服务器做为代理服务器,如需要,则对其进行强化配置
    (8)如果支持虚拟主机,则确保在默认主机上实施了所有安全强化措施,所有虚拟主机均应用了安全措施 

二、易受攻击的服务器软件
1. 应用程序框架缺陷
    .NET的 PKCS#5加密填充攻击(padding oracle)
2. 内存管理漏洞 
        (1)Apache mod_isapi悬挂指针
            2010年的漏洞,在遇到错误时,系统将强制从内存中卸载mod_isapi,不过,对应的函数指针仍保留在内存中,并且可以在引用相应的ISAPI函数时被调用,从而访问内存的任意部分。
          漏洞详情:  www.senseofsecurity.com.au/advisories/SOS-10-002
        (2)Microsoft IIS ISAPI扩展
            2001年,Internet Printing Protocol和Index Server扩展存在缓冲区溢出漏洞,使攻击者能够在Local System权限下执行任意代码,完全控制计算机,并以此为基础传播Nimda 与Code Red蠕虫
            IPP服务中也发现了这个漏洞,但是windows 2003和2008的大多数IIS版本默认禁用扩展不会立即受到攻击
        (3)Apache 分块编码溢出
        整数符号错误导致的缓冲区整数溢出,见www.securityfocus.com/bid/5033/discuss       
        mod_proxy在处理HTTP响应中的分块编码时存在整数溢出 ,见www.securityfocus.com/bid/37966    
        (4)WebDAV溢出
            IIS,www.microsoft.com/technet/security/bulletin/MS03-007.mspx
            Apache的mod_dav存在缓冲区溢出,http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1452.
           OPTIONS请求中的超长路径 会导致JAVA SYSTEM WEB SERVER出现溢出,见
                    www.exploit-db.com/exploits/14287/.

3. 编码 与规范化漏洞 
       (1) Apple iDisk Server 路径遍历
                Apple iDisk Server是一项流行的云同步存储服务
                通过使用Unicode字符从公共文件夹遍历访问私有文件:
http://idisk.mac.com/Jeremy.richards-Public/%2E%2E%2FPRIVATE.txt?disposition=download+8300
还可以首先提出WebDAV PROFIND请求来列出iDisk的内容
POST /Jeremy.richards-Public/<strong>%2E%2E%2F/<strong>?webdav-method=PROPFIND

        (2)Ruby WEBrick Web 服务器
        http://[server]:[port]/..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/boot.ini
        参考:www.securityfocus.com/bid/28123

        (3)Java Web服务器遍历
        源于JVM并不解码UTF-8这一事实,使用UTF-8编码的../序列可以检索任意内容:
        http://www.target.com/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd
        参考: http://tomcat.apache.org/security-6.html

        (4)Allaire JRun目录列表漏洞
            https://wahh-app.com/dir/%3f.jsp
            参考:www.securityfocus.com/bid/3592
            Jetty中也有一个类似的,目录名以问号结尾时会出现遍历漏洞,参考:https://www.kb.cert.org/vuls/id/402580

        (5)IIS Unicode遍历漏洞
https://wahh-app.com/scripts/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\
https://wahh-app.com/scripts/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\
    参考: www.microsoft.com/technet/security/bulletin/MS00-078.mspx                 www.microsoft.com/technet/security/bulletin/MS01-026.mspx

        GET /prote%c0%afcted/protected.zip HTTP/1.1
        Translate: f
        Connection: close
        Host: wahh-app.net
        Translate: f用于确保该请求会由WebDAV扩展处理
        以下WebDAV请求可实施相同的攻击:
        PROPFIND /protec%c0%afted/ HTTP/1.1
    Host: wahh-app.net

User-Agent: neo/0.12.2

Connection: TE

TE: trailers

Depth: 1

Content-Length: 288

Content-Type: application/xml

<?xml version=”1.0” encoding=”utf-8”?>

<propfind xmlns=”DAV:”><prop>

<getcontentlength xmlns=”DAV:”/>

<getlastmodified xmlns=”DAV:”/>

<executable xmlns=”http://apache.org/dav/props/”/>

<resourcetype xmlns=”DAV:”/>

<checked-in xmlns=”DAV:”/>

<checked-out xmlns=”DAV:”/>

</prop></propfind>

    参考:www.securityfocus.com/bid/34993/

        (6)避开Oracle PL/SQL排除列表
        ORACLE创建了Exclusion List以阻止攻击者访问以某些表达式(如OWA与SYS)开头的包
        绕过:
            https://wahh-app.com/pls/dad/%0ASYS.package.procedure
            https://wahh-app.com/pls/dad/S%FFS.package.procedure (用ÿ代表Y)
            https://wahh-app.com/pls/dad/”SYS”.package.procedure    (增加双引号)
            https://wahh-app.com/pls/dad/<<FOO>>SYS.package.procedure (尖括号增加GOTO标签,这里FOO不知道是不是写错了,应该是GOTO)
            Portal Server(Oracle Application Server的一部分)中有一个漏洞:如果攻击者具有以%0A结尾的会话ID cookie值,就可以避开“基本验证”检查

4. 查找Web服务器漏洞
        自动 化扫描工具
        网站:
            www.exploit-db.com
             www.metasploit.com/
             www.grok.org.uk/full-disclosure/
             http://osvdb.org/search/advsearch

5. 保障Web服务器软件安全
(1)选择记录良好的软件
(2)应用供应商发布的补丁
(3)实施安全强化
(4)监控新的漏洞
(5)使用深层防御

三、应用 WAF
    推断是否有WAF:
        a. 使用明确的攻击有效载荷,如果阻止,可能有WAF
        b. 如果可以提交在服务器响应中返回的变量,则提供一系列模糊测试字符主这些字符串的编码形式可以确定防御行为
    尝试绕过WAF:
        a. 对于所有模糊测试字符串和请求,使用良性字符串作为payload,如应避免使用/etc/passwd和windows/system32/config/sam、<script>、alert()或xss作为payload
        b. 如果特定请求被阻止,可以在其他位置或上下文中提交相同的参数
        c. 应尝试在ASP.NET上将参数作为cookie提交,如果在查询字符串或消息主体中找不到参数foo,API Request.Params["foo"]会检索名为foo的cookie的值
        d. 选择任何不受保护的方法
        e. 以非标准格式提交用户输入,如串联字符串或分割字符串到多个参数中

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容