网络通信 频道

[安全]80端口web服务攻击痕迹

Example 1:
# echo "your hax0red h0 h0" >;>; /etc/motd (请求写信息在motd这个文件中)
一个攻击者可以容易的用象上面的这个请求篡改你的web页面。比如著名的RDS exploit常被攻击者用于更改web主页面。
Example 2:
http://host/something.php=;Hi%20mom%20Im%20Bold!;
你会注意到这里html语言的标志,他同样用了“〈”,“〉”字符,这种攻击不能导致攻击者对系统进行访问,它迷惑人们认为这是个合法的信息在web站点中(导致人们在访问这个联结的时候访问到攻击者设定的地址,这种请求可能会被转变成16进制的编码字符形式,使攻击的痕迹不那么明显)

(7)"!"请求

这种字符请求常用语对SS(Server Side Include) I进行攻击,如果攻击者迷惑用户点击被攻击者设定的联结,和上面的一样。
Example:
http://host1/something.php=<!%20--#include%20virtual="http://host2/fake-article.html"-->;
这个列子是攻击者可能会做的,它让一个host2站点上的文件看起来是来自于 host1上面的(当然,需要访问者访问这个被攻击者设定的联结。这种请求可能被转化成16进制的编码伪装,不易发现)

同时,这种方式也可以以web站点的权限执行命令
Example:
http://host/something.php=<!%20#<!--#exec%20cmd="id"-->;
这个列子在远程的系统上执行“id"的命令,它将显示这个web站点用户的id,通常是”nobody"或者“www"

这种形式也允许包含隐藏文件。
Example:
http://host/something.php=<!%20--#include%20virtual=".htpasswd"-->;
这个隐藏文件.htpasswd不会被显示出来,Apache建立的规则会拒绝这种以.ht 形式的请求,而SSI标志会绕过这种限制,并导致安全问题

(8)"<?" 请求

这种攻击用于试图在远程的web应用程序中插入PHP程序,它可能允许执行命令,这取决于服务器的设置,和其他起作用的一些因素(比如php设置为安全模式)
Example: http://host/something.php=<? passthru("id";?>;
在某些简单的php应用程序中,它可能会在远程系统上以web站点用户的权限执行本地命令

(9)"`" 请求

这种字符后面常用在perl中执行命令,这个字符在web应用程序中不是经常的使用,所以,如果看到它在你的日志中,应该非常小心
Example:
http://host/something.cgi=`id`
一个perl写的有问题的cgi程序,会导致执行id命令

[更进一步]

下面部分将讨论更多的攻击者可能执行的命令,连同被请求的文件,以及如果你有远程执行命令的缺陷,应该怎样检查发现它。这部分只是给你个好的思路,并告诉你的系统发生了什么,攻击者尝试攻击你的系统的痕迹,但并不能列举所有的攻击者使用的命令和请求的方式。

"/bin/ls"
这个命令请求整个路径,在很多的web应用程序中都有这个漏洞,如果你在日志中很多地方都看到这种请求,很大的可能性是存在远程执行命令漏洞,但并不一定是个问题,也可能是个错误的警报。再一次提醒,写好的web应用程序(cgi,asp,php...etc)是安全的基础

Example:
http://host/cgi-bin/bad.cgi?doh=../../../../bin/ls%20-al|
http://host/cgi-bin/bad.cgi?doh=ls%20-al;

"cmd.exe"
这是一个windows的shell,一个攻击者如果访问并运行这个脚本,在服务器设置允许的条件下可以在windows机器上做任何事情,很多的蠕虫病毒就是通过80端口,传播到远程的机器上
http://host/scripts/something.asp=../../WINNT/sys tem32/cmd.exe?dir+e:

"/bin/id"
这是个2进制的文件,它的问题和/bin/ls一样,如果你在日志中很多地方都看到这种请求,很大的可能性是存在远程执行命令漏洞,但并不一定是个问题,也可能是个错误的警报。

0
相关文章