安全检测80端口Web服务攻击痕迹(上)
- web站点默认80为服务端口,关于它的各种安全问题不断的发布出来,这些漏洞中一些甚至允许攻击者获得系统管理员的权限进入站点内部,以下是Zenomorph对一些80端口攻击方式的痕迹的研究,和告诉你怎样从日志记录中发现问题。
[详细描述]
下面部分通过一些列子,展示对web服务器和其上的应用程序普遍的攻击,和其留下的痕迹,这些列子仅仅是代表了主要的攻击方式,并没有列出所有的攻击形式,这部分将详细描述每种攻击的作用,和其怎样利用这些漏洞进行攻击。
(1)"." ".." 和 "..." 请求
这些攻击痕迹是非常普遍的用于web应用程序和web服务器,它用于允许攻击者或者蠕虫病毒程序改变web服务器的路径,获得访问非公开的区域。大多数的CGI程序漏洞含有这些".."请求。
Example:
http://host/cgi-bin/lame.cgi?file=../../../../etc/motd
这个列子展示了攻击者请求mosd这个文件,如果攻击者有能力突破web服务器根目录,那么可以获得更多的信息,并进一步的获得特权。
(2)"%20" 请求
%20是表示空格的16进制数值,虽然这个并不代表你能够利用什么,但是在你浏览日志的时候会发现它,一些web服务器上运行的应用程序中这个字符可能会被有效的执行,所以,你应该仔细的查看日志。另一方面,这个请求有时可以帮助执行一些命令。
Example:
http://host/cgi-bin/lame.cgi?page=ls%20-al|
这个列子展示了攻击者执行了一个unix的命令,列出请求的整个目录的文件,导致攻击者访问你系统中重要的文件,帮助他进一步取得特权提供条件。
(3)"%00" 请求
%00表示16进制的空字节,他能够用于愚弄web应用程序,并请求不同类型的文件。
Examples:
http://host/cgi-bin/lame.cgi?page=index.html
这可能是个有效的请求在这个机子上,如果攻击者注意到这个请求动作成功,他会进一步寻找这个cgi程序的问题。
http://host/cgi-bin/lame.cgi?page=../../../../etc/motd
也许这个cgi程序不接受这个请求,原因在于它要检查这个请求文件的后缀名,如:html.shtml或者其他类型的文件。大多数的程序会告诉你所请求的文件类型无效,这个时候它会告诉攻击者请求的文件必须是一某个字符后缀的文件类型,这样,攻击者可以获得系统的路径,文件名,导致在你的系统获得更多的敏感信息
http://host/cgi-bin/lame.cgi?page=../../../../etc/motd%00html
注意这个请求,它将骗取cgi程序认为这个文件是个确定的可接受的文件类型,一些应用程序由于愚蠢的检查有效的请求文件,这是攻击者常用的方法。
(4)"|" 请求
这是个管道字符,在unix系统用于帮助在一个请求中同时执行多个系统命令。
Example:
# cat access_log| grep -i ".."
(这个命令将显示日志中的“..“请求,常用于发现攻击者和蠕虫攻击)
常可以看到有很多web应用程序用这个字符,这也导致IDS日志中错误的报警。
在你的程序仔细的检查中,这样是有好处的,可以降低错误的警报在入侵检测系统中。
下面给出一些列子:
http://host/cgi-bin/lame.cgi?page=../../../../bin/ls|
这个请求命令执行,下面是一些变化的列子
http://host/cgi-bin/lame.cgi?page=../../../../bin/ls%20-al%20/etc|
这个请求在unix系统中列出/etc目录的所有文件
http://host/cgi-bin/lame.cgi?page=cat%20access_log|grep%20-i%20"lame"
这个请求cat命令的执行并且grep命令也将执行,查询出”lame"
(5)";" 请求
在unix系统,这个字符允许多个命令在一行执行
Example:
# id;uname -a
(执行id命令后,紧跟着执行uname命令)
一些web程序用这个字符,可能导致在你的IDS日志中失败的警告,你应该仔细的检查你的web程序,让你的IDS警报失败的几率降低。
(6)"<" 和 ">" 请求
应该检查你的日志记录中这两个字符,众多的原因中,首要的一个是这个字符表明了添加数据在文件中
Example 1:
# echo "your hax0red h0 h0" >> /etc/motd (请求写信息在motd这个文件中)
一个攻击者可以容易的用象上面的这个请求篡改你的web页面。比如著名的RDS exploit常被攻击者用于更改web主页面。
Example 2:
http://host/something.php=<b>Hi%20mom%20Im%20Bold!</b>
你会注意到这里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命令
安全检测80端口Web服务攻击痕迹(上)相关推荐
- 80端口web服务攻击痕迹
作者信息:潇湘夜雨() 文章信息:初级 初发日期:2001 08 关键字:web服务攻击 来源链接:http://www.chinaunix.net/forum/viewtopic.php?t=160 ...
- 电信单方面关闭ADSL用户入口80端口,导致用户有关80端口对外服务无法实现,严重违反提供公网IP的合同
电信单方面关闭ADSL用户入口80端口,导致用户有关80端口对外服务无法实现,严重违反提供公网IP的合同 ADSL拨号用户80,22端口被电信屏蔽情况 1.我申请有两个ADSL电信宽带账户,一个是小区 ...
- 通过python建立一个web服务查看服务器上的文本、图片、视频等文件
通过python建立一个web服务查看服务器上的文本.图片.视频等文件 文章目录: 1 在服务器端开启一个服务 2 在本地浏览器中输入服务器的ip地址 1 在服务器端开启一个服务 python -m ...
- frps 多个_使用frp工具实现内网的穿透以及配置多个ssh和web服务
frp简介 frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透. 环境准备 ssh连接 ...
- 借助nat123软件快速发布网站做网站服务,解决80端口被屏蔽被封,nat123软件原理分析
概述 nat123软件主要是为没有公网IP或80端口被屏蔽被封的做网站用户而开放自由的平台软件. 使用nat123,可以在内网一步发布网站,做网站服务: 使用nat123,可以解决80端口被屏蔽被封的 ...
- 如何在linux下判断web服务是否开启?
对于web服务的开启的判断有以下几种常用方法: 1.端口查看: 本地:ss,netstat,lsof 示例一: ss:查看80端口是否处于监听状态 [root@gw oldboy]# ss -an|g ...
- shell习题第6题:监听80端口
[题目要求] 写一个脚本,判断本机的80端口(加入服务为httpd)是否开启,如果开启就什么都不做,如果发现端口不存在,那么重启一下httpd服务,并发邮件通知相关人员 [核心要点] 检测80端口使用 ...
- docker网络问题解决办法“大全”:宿主机访问不了docker容器中web服务,容器内访问不了外网的问题的解决办法...
ubuntu kylin 15 安装docker后 ,启动包含web应用的容器,在宿主机上死活访问不了web服务.后来发现进入容器后,安装不了软件,访问不了外网.因此网上查原因,有大神说让重建dock ...
- linux删除80端口,linux下解决80端口被占用
安装一个nginx服务,在启动的时候报80端口被占用了,我们来检查一下有哪些服务占用了80端口 首先我们查一下占用80端口的有哪些服务,netstat -lnp|grep 80 查看80端口被那些服务 ...
最新文章
- Global.asax中Application_Error无法执行
- C语言函数集(十一)
- Zabbix监控Linux主机设置
- LeetCode(90):子集 II
- python文件输出log_Python同时向控制台和文件输出日志logging的方法
- linux根目录cat退出,Linux展示cat帮助信息并退出
- cefsharp异步抓取html5,winform插件cefsharp65最新版完美demo,完美flash、html5、和调用摄像头支持,部署就能用...
- idea生成有参构造的快捷键,idea生成有参构造的快捷键_Idea_学习_09_Idea 方法自动生成参数默认名...
- VS2010远程调试
- 网站遭遇DDoS***的解决方案
- Teamviewer远程连接提示疑似商业用途处理替代软件
- VS2010 VB.net安装包生成过程
- 小技巧:电脑怎么卸载软件?
- PCB Layout 中的直角走线、差分走线和蛇形线
- oracle双活svc,SVC存储虚拟化双活方案
- linux下装go环境
- 辉芒微IO单片机FT60F023-RB
- 手机日常使用技巧、和手机停机如何免费上网 。好多大家不知道的功能:不看后悔哦
- 数据中台 第8章 数据资产管理
- Video Caption