来自应用层的攻击

本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝、转载,转载时请保持文档的完整性,

严禁用于任何商业用途。
msn: yfydz_no1@hotmail.com
来源:http://yfydz.cublog.cn

0. 概述
应用层的攻击表现形式很多,但基于的原理就那几种,有的是针对应用层协议的,有的是针对应用程序的,都统并在一起吧。

1. 应用层协议攻击
其实协议本身有漏洞的不是很多,即使有很快就能补上。漏洞主要是来自协议的具体实现,比如说同样的HTTP服务器,虽然都根据相同的RFC来实现,但Apache的漏洞和IIS的漏洞就是不同的。应用层协议

本身的漏洞包括:
1) 明文密码,如FTP、SMTP、POP3、TELNET等,容易被sniffer监听到,但可以通过使用SSH、SSL等来进行协议包装;

2) 多连接协议漏洞,由于子连接需要打开动态端口,就有可能被恶意利用,如FTP的PASV命令可能会使异常连接通过防火墙;

3) 缺乏客户端有效认证,如SMTP,HTTP等,导致服务器资源能力被恶意使用;而一些臭名昭著的远程服务,只看IP地址就提供访问权限,更属于被骇客们所搜寻的“肉鸡”;

4) 服务器信息泄漏,如HTTP、SMTP等都会在头部字段中说明服务器的类型和版本信息;

5) 协议中一些字段非法参数的使用,如果具体实现时没注意这些字段的合法性可能会造成问题;

2. 缓冲溢出
缓冲溢出是程序员永远的痛,具体原理过程很多地方都有相关文章,通过攻击具有ROOT权限的程序的缓冲溢出漏洞,就能获取ROOT权限,程序员们真该抱怨库函数中为什么要提供诸如sprintf, gets,scanf, strcpy, strcat等这样的函数。一般的shellcode都有一个比较长的同一字符的前导段,转换为机器码时就是“NOP”,可用之来进行检测。

3. 口令猜测/破解
口令猜测往往也是很有效的攻击模式,或者根据加密口令文件进行破解。世界上有多少人是用自己的名字+生日作为自己的密码呢?即使用了复杂密码,也因为密码的复杂性在很多场合都用这一个密码,包括一些几乎没有任何保护的BBS,Blog、免费邮箱等地方,而且用户名往往都是相同的,这样就给“有心之人”留出了巨大无比的漏洞。网上无数文章都在教导建立单一复杂口令的必要性。

4. 后门、木马和病毒
主要是使用来源不明或者非法软件带来的后果了。对于利用正版软件漏洞导致的病毒感染所造成的损失,不知道国内法律是否有索赔一说?

5. 常见攻击模式总结
1) 带宽攻击
带宽攻击就是用大量数据包填满目标机的数据带宽,使得任何机器都无法再访问该机。此类攻击通常是属于IP、TCP层次上的攻击,如各种Flood攻击;也有应用层面的,如网络病毒和蠕虫造成的网络阻塞。

2)缺陷攻击
缺陷攻击是根据目标机系统的缺陷,发送少量特殊包就使其崩溃,如tear drop,winnuke等攻击;也有的根据服务器的缺陷,发送特殊请求来达到破坏服务器数据的目的。这类攻击属于一招制敌式攻击,自己没有什么损失,但也没有收获,无法利用目的机的资源。

3)控制目标机
隐秘地全面控制目标机才是网络入侵的最高目标,也就是获取目标机的ROOT权限而不被目标机管理员发现。为实现此目标,一般经过以下一些步骤:端口扫描,了解目标机开了哪些端口,进一步了解使用是那种服务器的实现;检索有无相关版本服务器的漏洞;尝试登录获取普通用户权限;以普通用户权限查找系统中是否可能的suid的漏洞程序,并用相应shellcode获取ROOT权限;建立自己的后门方便以后再来。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对比启明星辰、绿盟、安恒等品牌WAF在应用攻击保护时的策略防护能力。 二. 测试步骤 2.1 环境漏洞验证 验证序号 1 验证方法 用and 1=1和and 1=2验证注入漏洞 测试步骤 1. 在浏览器打开http://192.168.1.155/ypnew_view.asp?id=791正常页面 2. 修改浏览器URL:http://192.168.1.155/ypnew_view.asp?id=791 and 1=1-- 3. 修改浏览器URL:http://192.168.1.155/ypnew_view.asp?id=791 and 1=2-- 漏洞验证 若执行步骤2与步骤1均能正常访问页面,执行步骤3得出不同的访问页面,说明存在注入漏洞 验证结果 用户签字 2.2 防护效果测试 测试序号 1 测试项目 防止黑客利用注入漏洞获取数据库版本和操作系统信息 描述 获取数据库版本和操作系统信息是黑客入侵的前提,本项主要是测试WEB防护设备能否有效的防止数据库版本和操作系统信息的泄漏 测试步骤 1、 正常浏览192.168.1.155/ypnew_view.asp?id=791 2、 在攻击机浏览器中输入以下URL: http://192.168.1.155/ypnew_view.asp?id=791 and 1=2 union all select 1,2,3,4,@@version,'6',null,null,null,null,null,null,null,null from sysobjects-- 预期结果 数据库版本信息未泄露 备注 如出现下图,说明数据库版本信息泄露,WEB应用防护设备未起作用 测试结果 用户签字 测试序号 2 测试项目 防止黑客利用注入漏洞获取数据库库名 描述 数据库库名是黑客进行SQL注入时常获取的信息,有效地防护数据库信息可以能大大降低注入攻击的风险,本项主要测试WEB应用防护设备是否能防护数据库信息泄露漏洞 测试步骤 在攻击机浏览器中输入以下URL: http://192.168.1.155/ypnew_view.asp?id=791 and 1=2 union all select 1,2,3,4,db_name(),'6',null,null,null,null,null,null,null,null from sysobjects-- 预期结果 数据库信息未泄露 备注 若在测试结果中出现下图,说明没有防护效果。 测试结果 客户签名 测试序号 3 测试项目 防止黑客通过注入漏洞获取数据库表名信息 描述 当黑客成功获得数据库的版本和数据库库名后,数据库中表的名称和内容就是SQL注入攻击的下一目标,本项主要测试WEB应用防护设备是否能防护获取数据库表名的攻击 测试步骤 1. 在攻击机浏览器中输入以下URL: 192.168.1.155/ypnew_view.asp?id=791 and 1=2 union all select 1,2,3,4,(select top 1 name from sysobjects where xtype='U' and name not in (select top 2 name from sysobjects where xtype='U')),null,null,null,null,null,null,null,null,null from sysobjects-- 2. 在攻击机浏览器中输入以下URL: 192.168.1.155/ypnew_view.asp?id=791 and 1=2 union all select 1,2,3,4,(select top 1 name from sysobjects where xtype='U' and name not in (select top 37 name from sysobjects where xtype='U')),null,null,null,null,null,null,null,null,null from sysobjects-- 预期结果 数据库table名未泄露 备注 如出现以下图示,说明WEB防护效果未起作用,数据库表泄漏 测试结果 用户签字 测试序号 4 测试项目 防止黑客利用update修改数据库的内容 描述 如果黑客成功获取了数据库和表的相关信息,将会尝试修改表内的数据,直接篡改网站内容,因此对于恶意修改数据库内容的入侵要求严格防护.本项将测试web防护设备是否能防护通过update方式修改数据库内容的恶意攻击 测试步骤 利用注入漏洞使用Update方式修改数据库内容 预期结果 数据库内容未被篡改 备注 攻击机中输入以下URL,如出现页面被篡改,说明防护失效 http://192.168.1.155/ypnew_view.asp?id=791 测试结果 用户签字 测试序号 5 测试项目 防止黑客利用注入漏洞获取后台账号信息 描述 后台管理员的账号密码信息如果泄露,黑客就可以对网站进行各种严重损坏客户利益的破坏,本项测试WEB应用防护设备能否有效防护网站管理员后台账号密码信息泄漏 测试步骤 利用注入漏洞获取后台账号信息 预期结果 不能获得后台用户名密码: 备注 当出现下图时,说明用户名密码被盗取,WEB应用防护设备无效果 打开http://192.168.1.155/admin/index.asp,输入用户名密码,可直接管理后台:http://192.168.1.155/admin 测试结果 客户签名
为了预防拒绝服务攻击中的应用层攻击,可以采取以下预防措施: 1. 增加服务器容量:确保服务器能够处理大量的请求,包括通过增加硬件资源(如CPU、内存、带宽等)或使用负载均衡技术来分散负载。 2. 引入访问限制和频率限制:实施访问控制机制,对来自单个IP地址或特定网络的请求进行限制,以减少攻击者能够发送的请求量。此外,还可以实施频率限制,限制同一用户在特定时间内发送的请求次数。 3. 使用验证码和人机验证:在关键操作和敏感功能上使用验证码或人机验证,以确保只有真正的用户能够访问和执行操作,而不是自动化脚本或恶意软件。 4. 输入验证和过滤:应用程序应该对所有输入数据进行严格的验证和过滤,以防止恶意输入。这包括检查输入数据的长度、格式、类型和内容等,以确保输入符合预期的范围和规则。 5. 强化安全编程实践:开发人员应采用安全编程实践,如避免使用不安全的函数、正确处理错误和异常情况、避免资源泄漏等,以减少应用程序中的漏洞和弱点。 6. 使用反射性攻击防护:一些应用层攻击利用了反射性攻击的原理,攻击者通过将恶意请求反射到受害者上,从而导致拒绝服务。使用反射性攻击防护技术,如过滤恶意请求或检测反射攻击的标志,可以有效减少此类攻击的影响。 7. 实施入侵检测和日志监控:使用入侵检测系统(IDS)和日志监控工具来监测异常行为和攻击迹象。及时发现并应对潜在的攻击行为,以减少拒绝服务攻击的影响。 8. 定期更新和修复漏洞:及时更新和修复应用程序和相关组件的漏洞,以确保安全性。这包括及时应用安全补丁、升级软件版本和使用最新的安全配置。 通过综合运用这些预防措施,可以有效降低应用层拒绝服务攻击的风险,并提高应用程序的安全性和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值