系统特性与web安全-转贴

系统特性与web安全
本文作者:SuperHei
文章性质:原创
发布日期:2005-10-18

==============目录=================
一、WINDOWS系统
windows对..\的支持
windows对.的忽略

二、*nix系统
freebsd系统下/的利用
大小写的区分

三,iis与apache
解析文件类型的利用
iis6的特性
apache文件名解析缺陷漏洞

四、配置文件的位置
==================================

一、WINDOWS系统

1、windows对..\的支持

特性:win系统下可以用..\进行跨目录操作
利用:web入侵中进行跨目录操作时,在web程序过滤了/的情况下,我们可以通过..\突破。
实例:MolyX Board的attachment.php中attach变量过虑不严漏洞(http://4ngel.net/article/50.htm)在angel的文章里提供的解决方案里,只过滤了/,并没有对\过滤,导致在win主机上漏洞依旧,详见:http://www.4ngel.net/blog/hei/index.php?action=show&id=92

2、windows对.的忽略

特性:win系统下在文件后缀后的.将被忽略,如test.php. 与test.php是等同的
利用:导致上传文件时,被利用上传webshell
实例:缺

二、*nix系统

1、freebsd系统下/的利用 (ps:也有可能存在于其他系统)

特性:freebsd下因系统文件格式不同导致可以利用/进行目录列片攻击:如在freebsd下运行cat / 得到根目录下的所有文件夹及文件:

cat /

.
.. .snap(
dev\
usr
var stand犅p
etc? cdromg? distsg?
bin? boot唜<
lib \ libexec
mnt ? proc唜?( rescue?? root唜?? sbin唜??
tmp

sys ? .cshrc?? .profile
? COPYRIGHTe?
compat?
home]D? entropy \t service ( d greenarmy玩

利用:mysql注射时可以配合load_file()进行目录列片攻击。如load_file(0x2F) [0x2F为/的hex值] ,load_file(0x2Froot0x2F)

2、大小写的区分

特性:*nix系统是文件格式区分大小写,而windows系统不区分。
利用:最简单的利用也是最直接的 用来区分web服务器使用的系统
实例:分别提交
http://www.4ngel.net/blog/hei/index.php 正常返回
http://www.4ngel.net/blog/hei/inDex.php 提示文件不存在
这个说明www.4ngel.net主机为非windows系统。

三,iis与apache

1、解析文件类型的利用

iis在支持asp外,还支持asa,cer,cdx,htr
apache+php在支持php外,还支持php3,php4,phpx等
由于web程序的过虑不足,导致可以上传webshell

2、iis6的特性

IIS 6.0 目录名里包含有文件.asp会导致其目录下任意文件当做asp文件来运行。如我们把webshell保存到test.asp/webshell.gif,当iis6下访问http://xxx/test.asp/webshell.gif 时webshell.gif被当作asp文件来解析。可以利用到通过数据库备用得到的webshell,存放后门等方面。

3、apache文件名解析缺陷漏洞

apache 文件名解析时,是从后面开始检查后缀,按最后一个合法后缀执行。如:cmdshell.php.heige 因为heige不被apache解析,所以apache把这个文件当php文件解析了.
利用:
a、有的web程序安装后,会把install.php改名为install.php.lock,install.php.bak等等
实例:BMForum等
b、挖掘上传漏洞
实例:Discuz!等
c、.....

四、配置文件的位置

每个系统都自己特定的配置文件(包括第3方软件的配置文件)其位置也是相对固定的。文件内容包含了服务器的敏感信息。在我们利用web漏洞任意操作文件时(如 include包含漏洞,mysql注射load_file()的利用,等等)读取或下载这些配置文件,导致敏感信息的泄露。如:
windows系统:boot.ini mysql的%SYSTEMROOT%/my.ini servu的c:\program files\serv-u\servudeamon.ini 等等
*nix系统的 etc/目录下的文件 等等

小结

本文只是个人的一些经验的整理,由于个人的知识有限,如果有什么不对的或者你有好的发现和经验,等待您的分享!