%5c暴库漏洞

news/2024/4/15 13:49:24
今天在黑基又看到了关于%5c暴库的文章。呵呵,这招真的很管用,大概10个网站里会有一个会暴库吧。。

关于这个漏洞。绿盟有相关的资料。


Microsoft IIS CGI文件名错误解码漏洞

发布日期:2001-05-15

CVE CAN ID:CVE-2001-0333

受影响的软件及系统:
====================
- Microsoft IIS 4.0
- Microsoft IIS 5.0

未受影响的软件及系统:
======================
- Windows IIS 4.0 (sp6/sp6a 没有安装其他新的hotfix)

综述:
======
NSFOCUS安全小组发现微软IIS 4.0/5.0在处理CGI程序文件名时存在一个安全漏洞,由于错误地对文件名进行了两次解码,攻击者可能利用这个漏洞执行任意系统命令。

分析:
======
IIS在加载可执行CGI程序时,会进行两次解码。第一次解码是对CGI文件名进行http解码,然后判断此文件名是否为可执行文件,例如检查后缀名是否为".exe"或".com"等等。在文件名检查通过之后,IIS会再进行第二次解码。正常情况下,应该只对该CGI的参数进行解码,然而,IIS错误地将已经解码过的CGI文件名和CGI参数一起进行解码。这样,CGI文件名就被错误地解码了两次。

通过精心构造CGI文件名,攻击者可以绕过IIS对文件名所作的安全检查,例如对"../"或"./"的检查,在某些条件下,攻击者可以执行任意系统命令。

例如,对于'/'这个字符,正常编码后是%5c。这三个字符对应的编码为:
'%' = %25
'5' = %35
'c' = %63

如果要对这三个字符再做一次编码,就可以有多种形式,例如:
%255c
%%35c
%%35%63
%25%35%63
...

因此,"../"就可以表示成"..%255c"或"..%%35c"等等形式。

在经过第一次解码之后,变成"..%5c"。IIS会认为这是一个正常的字符串,不会违反安全规则检查。而在第二次被解码之后,就会变成"../"。因此攻击者就可以使用"../"来进行目录遍历,执行web目录之外的任意程序。

测试方法:
==========
例如,如果TARGET存在一个虚拟可执行目录(scripts),并且它与windows系统在同一驱动器上。那么提交类似下列请求:

http://target/scripts/..%5c..%5cwinnt/system32/cmd.exe?/c+dir+c:/

就会列出C:/的根目录。

当然,对于'/'或者'.'做变换同样可以达到上面的效果。
例如:"..%252f", ".%252e/"...

注意:攻击者只能以IUSER_machinename用户的权限执行命令。

解决方法:
==========
1、如果不需要可执行的CGI,可以删除可执行虚拟目录,例如 /scripts等等。
2、如果确实需要可执行的虚拟目录,建议将可执行虚拟目录单独放在一个分区
3、将所有可被攻击者利用的命令行工具移到另外一个目录中并禁止GUEST组访问。

厂商状态:
==========
2001.3.27 我们将这个问题通报给了微软公司。
2001.4.01 微软告知重现了这个问题
2001.4.16 微软提供了补丁程序供测试,测试发现此问题已被解决
2001.4.23 微软请求我们延迟2个星期发布公告以等待更完善的测试
2001.4.30 微软告知我们还须再推迟一个星期发布
2001.5.14 微软已就此发布了一个安全公告(MS01-026)以及相应补丁

您可以在下列地址看到微软安全公告的详细内容:

http://www.microsoft.com/technet/security/bulletin/ms01-026.asp

补丁程序可以在下列地址下载:

. Microsoft IIS 4.0:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29787

. Microsoft IIS 5.0:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29764

呵呵。虽然这个我们这个漏洞呵暴库关系不是很大, 但是明眼人还是看的出相关的地方,IIS 二次解码。大家知道在 url中 "/" 和 "/"
是一样的,也就是说http://www.example.com/abc/123.asp?id=5 和http://www.example.com/abc/123.asp?id=5 是一样的。

http://www.example.com/abc%5c123.asp?id=5 经过一次解码后变成http://www.example.com/abc/123.asp?id=5 这里是不会出错的。
而 经过 IIS 二次解码后就变成http://www.example.com/abc%5c123.asp?id=5, 如果数据库连接文件用的相对路径的话。HOO, 找不到数据
库文件,当然就出错了。还很老实呢,连物理路径都出来了。大家看。

Microsoft JET Database Engine 错误 '80004005'

'D:/wwwroot/hell/wwwroot/data/abc.asp'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

/blog/conn.asp,行29


这个是我暴 Oblog 暴出来的,这个月的黑防大家都有看吧。。(晕倒,早知道我也去投稿了。我发现的比他早多了,郁闷。)

很多人都在分析成功的条件,就象itbbs里的人讨论的一样。(itbbs最近我怎么上不去啊,知道告诉偶.)

sykkk 认为:

1,是数据库连接中没有加入容错代码 所以导致错误不能跳过而活生生的把数据文件连接暴出来

2, 对方的IIS没有关闭错误提示 只要关了错误提示就算你怎么暴也没有用

3,不一定要2级目录 但是肯定的是一级目录是绝对不成功的 要是你成功了欢迎拿出来给大家分享 他文章说的自己够造个noexists/..%C的2级目录 个人认为应该是错误的 至少我没有成功过 有成功的欢迎留下网站测试

4,还有就是 要成功一定要调用到数据库 不一定是5c1.asp?id=1 这种类别的 只要是提交或者检测数据的基本都可以 非常多的六合采网站都是采用/XXX/CHECK.ASP来认证 找到认证位置 直接/XXX%5CCHECK。ASP同样可以达到 暴库的目的

其实我们 XST的老大ToToDoDo说的必要条件他忘了,数据库要相对路径,绝对路径是暴不出来的。还有我补充一点 应该是 IIS 4.0 或者 IIS 5.0 ,IIS 6 应该是不行了。

关于二级目录,我同意sykkk的看法,有的人说一定是二级目录,呵呵,我可以告诉大家那是错误的。应该是最靠近的asp文件的那个 "/"改成
"%5c", 只有有调用数据库都有可能暴库。哈哈,还有当然对方要没有屏蔽错误信息,要不然你是肯定看不到di

总结:%5c暴库成功条件

1. 对方服务器用的是 IIS 4.0 或 IIS 5.0, 并且没有屏蔽错误信息。


2. 是数据库连接中没有加入容错代码 所以导致错误不能跳过而活生生的把数据文件连接暴出来 (On Error Resume Next)

3.应该是Microsoft JET Database Engine 方式

4. 数据库文件调用用的是相对路径!!


不一定要求是二级目录。三级也是可以的(我有成功过), 二级目录反倒没成功,呵呵。还有构造二级目录,我是没成功过,嘿嘿,应该是错误的。:)


随便也告诉大家,aspx %5c 也有文章的,运用也很巧妙,想知道就知道google吧。^_^

个人见解,欢迎大家批评指正。


http://www.ppmy.cn/news/343825.html

相关文章

21世纪语言教程5c,21世纪核心素养5C模型

(图片来源《“21世纪核心素养5C模型”研究设计》) 1.什么是核心素养5C模型 北京师范大学中国教育创新研究院与美国21世纪学习联盟开展合作,在P21提出的21世纪核心素养4C模型(审辨思维、创新、沟通、合作)的基础上,新增文化理解与传承素养(Cultural Compe…

信用5C分析法(转载)

1 信用5C分析法 2 进行信用分析的五个方面 3 企业了解“5C”的三种途径 4 实例分析 5 信用5C分析的应用意义 信用5C分析法 西方商业银行在长期的经营时间中,总结归纳出了“5C”原则,用以对借款人的信用风险进行分析,有些银行将分析的要素归纳…

编程语言C/C++(五)

1. 关于友元 - 有些情况下,允许特定的非成员函数访问一个类的私有成员,同时仍阻止一般的访问,这是很方便做到的。例如被 重载的操作符,如输入或输出操作符,经常需要访问类的私有数据成员。友元(frend)机制允许一个类将…

ModelSim10.5c仿真详细过程

ModelSim10.5c仿真详细过程记录 在学习使用QuartusPrime pro17.1时,发现仿真过程和低版本软件有所不同,查阅许多资料后了解到可以舍弃直接用Quartus调用ModelSim进行联合调试的方法,改为直接从ModelSim中打开testbench文件进行仿真调试&…

五,指的是今天我给大家随手推荐的五部电影。 五,也通“无”。 (1) 在没有看《唐山大地震》电影之前,我看豆瓣上的评论:“《唐山大地震》在唐山首映时,人们一看到蜻蜓飞就开始哭“。一开始我还很…

利用%5c绕过验证

利用%5c绕过验证 --------------------------------------- lake2(http://mrhupo.126.com) 2004-11-27--------------------------------------- 说到%5c,你是不是想起了当前流行的那个%5c暴库漏洞,呵呵,…

赢涛智慧工单 v2.4.3 公众号模块版

适用于:入驻加盟、运价查询、申请返礼、工单售后、商标注册、执照申请、汽车保养、年审代办、材料申请、流程审批、贷款申请、废品回收、投诉建议、业务登记、在线督导、购房申请、设备维修、门店报修、信息申请、材料提交、合作咨询、党群服务、入党申请、补贴申领…

%5C暴库原理

暴库有两个方法,第一个就是利用%5c,另外一个conn.asp暴库。而且这里的暴库是针对access数据库的,而和access搭配的脚本一般是asp,因此出现暴库的一般为asp类型站点。 ASP是动态服务器页面(Active Server Pages&#x…

美国语言教学5c标准,美国外语教学(一)——5C目标

文/Yanjun 这是参加美国项目以来就一直在“打算”要写的系列文章,结合我的教学经历,结合中文AP (advanced placement,大学预科) 考试,谈谈在这个项目中学到的相关理论和概念。Can do statement 看完这篇文字之后,我能够了解: 1、5C目标分别是哪五个C? 2、沟通的三个模式…

信用评估5C

5C评估法就是通过“5C”系统来分析顾客或客户的信用标准。 内容: 1.品质(Character):指顾客或客户履约或违约的可能性,是评估顾客信用品质的首要指标,品质是应收账款的回收速度和回收数额的决定因素。因为每一笔信用交…

RC5

1. 背景与历史 RC5是Ron Rivest开发的对称密钥块加密算法。RC5的主要特性是很快,只是用基本的计算机运算(加、异或、移位等),轮数可变,密钥位数可变,从而大大增加灵活性。需要不同安全性的应用程序可以相应…

linux实验5C

以下是从Webmin官网下载并安装tar/gzip格式的Webmin的详细过程: 打开https://www.webmin.com/,点击页面上的“Download”链接。 在“Download Webmin”页面中,找到“Tar file”或“Gzip file”下载链接,并选择适合您操作系统的版…

#5C OJ练习五#

1.空心正方形图案 1题目链接 链接 2思路 找规律 线上的地方打印*加空格 其他地方打印空格 3实现 #include<stdio.h> int main() {int n 0;while (scanf("%d", &n) ! EOF){int i 0;for (i 0; i < n; i){int j 0;for (j 0; j < n; j){if (i 0 …

软件测试的5C标准

软件测试5C标准 Correct(准确)&#xff1a;每个组成部分的描述准确&#xff0c;不会引起误解 Clear(清晰)&#xff1a;每个组成部分的描述清晰&#xff0c;易于理解 Concise(简洁)&#xff1a;只包含必不可少的信息&#xff0c;不包括任何多余的内容&#xff1b; Complete(…

%5C爆库

当我们暴库失败的时候不妨试试利用%5c绕过asp的验证 废话少说&#xff0c;看下面的代码&#xff1a; <!--#INCLUDE file"conn.asp" --> <% guest_usertrim(request("guest_user")) guest_passwordtrim(request("guest_password&qu…

C.5

//1、随机产生20个[10 , 50]的正整数存到数组中&#xff0c;并求数组中的所有元素最大值、最小值、平均值以及各元素之和,及第二大值。 /* int a[20] {0}; for (int i 0; i < 20; i ) { a[i] arc4random() % 41 10; printf("%d ", a[i]); } int max 0, min …

5.c

1.完成猜数字游戏。 代码如下&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h> int main() {srand((unsigned int)time(NULL));int a ;int guess 0;guess rand() % 100 1;//printf("%d\n&…

商业竞争算法

前言&#xff1a;为什么会想起来写这块呢&#xff1f;可能与我目前所处的地域城市有关系吧&#xff0c;也可能与我见过的公司差异有关。 商业竞争算法 什么是商业竞争算法呢&#xff1f;简言之&#xff1a;商战&#xff0c;能够在竞争中产生优势的&#xff0c;且不易被替代的算…

【java 基础三 】- 正则表达式、枚举、equals等

一 枚举 1.1 定义 Java枚举是一种特殊的数据类型&#xff0c;用于表示有限个预设的值。它在Java语言中是一种类&#xff08;class&#xff09;类型&#xff0c;但又比普通的类类型多了些特殊的约束&#xff0c;这些约束使得枚举类型更加简洁、安全和便捷。枚举类型的名称必须…

华为网络设备查看风扇状态命令

描述&#xff1a;华为网络设备查看风扇状态命令 命令&#xff1a; display device fan
最新文章