网络攻击与防御
Download
1 / 72

网络攻击与防御 - PowerPoint PPT Presentation


  • 151 Views
  • Uploaded on

网络攻击与防御. 1 网络安全基础知识. 网络安全 信息安全 关键技术 安全威胁及分类 威胁来源. 1.1 网络安全 & 信息安全. 网络安全 从其本质上来讲就是网络上的信息安全。它涉及的领域相当广泛,这是因为在目前的公用通信网络中存在着各种各样的安全漏洞和威胁。从广义来说,凡是涉及到网络上信息的 保密性、完整性、可用性、真实性和可控性 的相关技术和理论,都是网络安全所要研究的领域。 确保网络系统的信息安全是网络安全的目标, 信息安全 包括两个方面: 信息的存储安全 和 信息的传输安全 。 信息的存储安全 是指信息在静态存放状态下的安全,如信息是否会被非授权调用等。

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 网络攻击与防御' - hayley-mercado


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

1 网络安全基础知识

  • 网络安全

  • 信息安全

  • 关键技术

  • 安全威胁及分类

  • 威胁来源


1.1 网络安全&信息安全

网络安全从其本质上来讲就是网络上的信息安全。它涉及的领域相当广泛,这是因为在目前的公用通信网络中存在着各种各样的安全漏洞和威胁。从广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论,都是网络安全所要研究的领域。

确保网络系统的信息安全是网络安全的目标,信息安全包括两个方面:信息的存储安全和信息的传输安全。

信息的存储安全是指信息在静态存放状态下的安全,如信息是否会被非授权调用等。

信息的传输安全是指信息在动态传输过程中安全,如信息是否被篡改、重放等。


1.2 信息安全的概念

信息安全是指确保以电磁信号为主要形式的、在计算机网络化(开放互连)系统中进行自动通信、处理和利用的信息内容,在各个物理位置、逻辑区域、存储和传输介质中,处于动态和静态过程中的机密性、完整性、可用性、可审查性和抗抵赖性,与人、网络、环境有关的技术安全、结构安全和管理安全的总和。

人指信息系统的主题,包括各类用户、支持人员,以及技术管理和行政管理人员。

网络则指以计算机、网络互连设备、传输介质、信息内容及其操作系统、通信协议和应用程序所构成的物理的与逻辑的完整体系。

环境则是系统稳定和可靠运行所需要的保障体系,包括建筑物、机房、动力保障与备份,以及应急与恢复体系。


1.3 关键技术

加密技术

数字签名

信息窃取

信息篡改

完整性技术

信息抵赖

信息传递

认证技术

信息冒充


黑客攻击

后门、隐蔽通道

特洛伊木马

计算机病毒

信息丢失、篡改、销毁

拒绝服务攻击

逻辑炸弹

蠕虫

内部、外部泄密

1.4 安全威胁

Internet



1.5 安全威胁的主要来源

  • 内部人员(包括信息系统的管理者、使用者和决策者)

  • 准内部人员(包括信息系统的开发者、维护者等)

  • 特殊身份人员(具有特殊身份的人,比如,审计人员、稽查人员、记者等)

  • 外部黑客或小组

  • 竞争对手

  • 网络恐怖组织

  • 军事组织或国家组织等


2 远程攻击基础

A.攻击的位置

(1)远程攻击

(2)本地攻击

(3)伪远程攻击


B.攻击的层次

  • 简单拒绝服务;

  • 本地用户获得非授权读权限;

  • 本地用户获得非授权写权限;

  • 远程用户获得非授权帐号信息;

  • 远程用户获得特权文件的读权限;

  • 远程用户获得特权文件的写权限;

  • 远程用户拥有了系统管理员权限。


C.攻击分类

在最高层次,攻击被分为两类:

  • 主动攻击:包含攻击者访问他所需要信息的故意行为。主动攻击包括拒绝服务攻击、信息篡改、资源使用、欺骗等攻击方法。 

  • 被动攻击:主要是收集信息而不是进行访问,数据的合法用户对这种活动一点也不会觉察到。被动攻击包括嗅探、信息收集等攻击方法。


1、攻击分类


就目前常见的攻击,大致可以分为几大类(参见图就目前常见的攻击,大致可以分为几大类(参见图1):

  • 窃听:指攻击者通过非法手段对系统活动的监视从而获得一些安全关键信息。目前属于窃听技术的常用攻击方法有:

    • 键击记录:是植入操作系统内核的隐蔽软件,通常实现为一个键盘设备驱动程序,能够把每次键击都记录下来,存放到攻击者指定的隐藏的本地文件中。如Win32平台下适用的IKS等。

    • 网络监听:是攻击者一旦在目标网络上获得一个立足点之后刺探网络情报的最有效方法,通过设置网卡的混杂模式获得网络上所有的数据包,并从中抽取安全关键信息,如明文方式传输的口令。如Win32平台下的sniffer等免费工具,Unix平台下的libpcap网络监听工具库。

    • 非法访问数据:是攻击者或内部人员违反安全策略对其访问权限之外的数据进行非法访问。

    • 获取密码文件:攻击者进行口令破解获取特权用户或其他用户口令的必要前提。


  • 欺骗:指攻击者通过冒充正常用户以获取对攻击目标访问权或获取关键信息的攻击方法,属于此类攻击的方法有:欺骗:指攻击者通过冒充正常用户以获取对攻击目标访问权或获取关键信息的攻击方法,属于此类攻击的方法有:

    • 获取口令:通过缺省口令、口令猜测和口令破解三种途径。针对一些弱口令进行猜测。也可以使用专门的口令猜测工具进行口令破解,如遍历字典或高频密码列表从而找到正确的口令。如Win32平台的LOphtcrack等。

    • 恶意代码:包括特洛伊木马应用程序、邮件病毒、网页病毒等,通常冒充成有用的软件工具、重要的信息等,诱导用户下载运行或利用邮件客户端和浏览器的自动运行机制,在启动后悄悄安装恶意程序,通常为攻击者给出能够完全控制该主机的远程连接。

    • 网络欺骗:攻击者通过向攻击目标发送冒充其信任主机的网络数据包,达到获取访问权或执行命令的攻击方法。具体的有IP欺骗、会话劫持、ARP重定向和RIP路由欺骗等。



  • 数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

    • 缓冲区溢出:通过往程序的缓冲区写入超出其边界的内容,造成缓冲区的溢出,使得程序转而执行其他攻击者指定的代码,通常是为攻击者打开远程连接的ShellCode,以达到攻击目标。如Windows平台下的Code-Red、Blaster、Sasser等都是通过缓冲区溢出攻击获得系统管理员权限后进行传播。

    • 格式化字符串攻击:主要是利用由于格式化函数的微妙程序设计错误造成的安全漏洞,通过传递精心编制的含有格式化指令的文本字符串,以使目标程序执行任意命令。

    • 输入验证攻击:针对程序未能对输入进行有效的验证的安全漏洞,使得攻击者能够让程序执行指令的命令。最著名的是1996年的PHF攻击。

    • 同步漏洞攻击:利用程序在处理同步操作时的缺陷,如竞争状态、信号处理等问题,以获得更高权限的访问。

    • 信任漏洞攻击:利用程序滥设的信任关系获取访问权的一种方法,如Win32平台下互为映象的本地和域Administrator凭证、LSA密码等。


3 数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:信息收集

  • 信息收集分类

  • 工具介绍


3.1 数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:信息收集分类

分为三种:

  • 使用各种扫描工具对入侵目标进行大规模扫描,得到系统信息和运行的服务信息。

  • 利用第三方资源对目标进行信息收集,比如我们常见的收索引擎

  • 利用各种查询手段得到与被入侵目标相关的一些信息,如社会工程学。

    社会工程学(Social Engineering):通常是利用大众的疏于防范的诡计,让受害者掉入陷阱。该技巧通常以交谈、欺骗、假冒或口语用字等方式,从合法用户中套取敏感的信息。


3.2 数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:信息收集的工具软件

  • Ping 、fping、ping sweep

  • ARP探测

  • Finger

  • Whois

  • DNS/nslookup

  • 搜索引擎(google、百度)

  • telnet


ping数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 作用和特点

  • 用来判断目标是否活动;

  • 最常用;

  • 最简单的探测手段;

  • Ping 程序一般是直接实现在系统内核中的,而不是一个用户进程。


ping数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 原理

类型为8,表示“回响请求”

Type = 8

Type = 0

类型为0,表示“回响应答”


主机在线情况数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

1)主机不在线

2)防火墙阻断ICMP探测

主机不应答情况


ping数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

表示192.168.1.25机器不在线。


举例数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:1:

Reply from 192.168.3.10: bytes=32 time<1ms TTL=32

  • Reply from 192.168.3.10 表示回应ping的ip地址是192.168.3.10。

  • bytes=32 表示回应报文的大小,这里是32字节。

  • time<1ms表示回应所花费的时间,小于1毫秒。

  • TTL=32,TTL是生存时间,报文经过一个路由器就减一,如果减到0就会被抛弃。这里是32。

    举例2:

    Pingwar 2.0——群ping.


ARP数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:探测

能探测同一局域网内的主机,因为防火墙不能阻断ARP请求。


finger数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 作用和特点

  • 网络服务

  • 服务端口:tcp 79

  • 服务端程序fingerd,客户端程序finger

  • 不需要认证就提供用户信息


finger数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

姓名

电话

最后登录时间


whois数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 作用和特点

  • 网络服务

  • 服务端口:tcp 43

  • 服务端程序whoisd,客户端程序finger

  • 提供目标系统的地址信息

  • 参考网站1 http://whois.webhosting.info

  • 参考网站2 http://samspade.org/


常规信息收集数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

网络Ip地址分配

网络域名

使用单位

地址


DNS数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 作用和特点

  • 网络服务

  • 服务端口:udp 53

  • 服务端程序bind,客户端程序nslookup

  • 提供目标系统域名与地址的转换


DNS数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:


telnet数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 作用和特点

  • 网络服务

  • 服务端口:任意

  • 服务端程序任意,客户端程序telnet

  • 提供目标系统服务的版本信息

  • 瑞士军刀NC


4 数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:端口扫描

  • 扫描基础

  • 扫描分类

  • 扫描工具介绍


4.1 数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:扫描基础

  • TCP数据报首部标志域

  • TCP连接的建立过程

  • TCP连接的释放过程

  • TCP/IP实现遵循的原则


TCP数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:数据报首部标志域

  • URG:紧急数据标志,指明数据流中已经放置紧急数据,紧急指针有效;

  • ACK:确认标志,用于对报文的确认;

  • PSH:推标志,通知接收端尽可能的将数据传递给应用层,在telnet登陆时,会使用到这个标志;

  • RST:复位标志,用于复位TCP连接;

  • SYN:同步标志,用于三次握手的建立,提示接收TCP连接的服务端检查序号;

  • FIN:结束标志,表示发送端已经没有数据再传输了,希望释放连接,但接收端仍然可以继续发送数据。


TCP数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:连接的建立过程


TCP数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:连接的释放过程


Tcp ip
TCP/IP数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:实现遵循的原则

  • 原则1:

  • 当一个SYN或者FIN数据包到达一个关闭了的端口,服务器丢弃该数据包,并返回一个RST数据包;


Tcp ip1
TCP/IP数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:实现遵循的原则

  • 原则2:

  • 当一个RST数据包到达一个监听端口或者关闭的端口,RST数据包都会服务器被丢弃。


Tcp ip2
TCP/IP数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:实现遵循的原则

  • 原则3:

  • 当一个ACK数据包到达一个监听的端口,服务器会丢弃这个数据包,并回应一个RST数据包。


Tcp ip3
TCP/IP数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:实现遵循的原则

  • 原则4:

  • 当一个FIN数据包到达一个监听端口时,数据包将会被丢弃。


4.2 数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:端口扫描分类技术

  • 端口扫描分类

  • 扫描技术分析


扫描分类数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

开放扫描

半开放扫描

隐蔽扫描

扫射扫描

其它扫描

TCP全连接

SYN扫描

FIN扫描

ping扫射

FTP弹跳

TCP反向

ident扫描

IP头信息

dumb扫描

UDP/ICMP

不可达

ACK扫描

UDP扫射

UDPrecvfrom

/write扫描

空扫描

ACK扫射

XMAS扫描

SYN扫射

TCP分段

ICMP扫射

SYN/ACK扫描


扫描技术分析数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 完全连接扫描

ClientSYN

ServerSYN/ACK

ClientACK

ClientSYN

ServerRST/ACK

ClientRST

端口开放

端口关闭


扫描技术分析数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 半连接SYN扫描

*立即切断连接

ClientSYN

ServerSYN/ACK

ClientACK

ClientSYN

ServerRST/ACK

ClientRST

端口开放

端口关闭


扫描技术分析数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 隐蔽扫描:SYN/ACK

ClientSYN/ACK

ServerRST

ClientSYN

Server--

端口开放

端口关闭


扫描技术分析数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 隐蔽扫描:FIN

ClientFIN

ServerRST

ClientFIN

Server--

端口开放

端口关闭


扫描技术分析数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 隐蔽扫描:ACK

ClientFIN

Server(TTL<64)

Server(WIN>0)

ClientFIN

Server(TTL>64)

Server(WIN=0)

端口开放

端口关闭


扫描技术分析数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 其它扫描:ICMP

*《ICMP Usage in Scanning》


4.3 数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:端口扫描工具

  • Nmap

  • Xscan

  • SuperScan

  • Shadow Security Scanner

  • MS06040Scanner


Nmap——数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:探测工具王

  • 功能

    NMAP是探测网络主机和开放服务的佼佼者。是Linux下使用者的最爱,现在已经有Windows的版本。NMAP支持多种协议的扫描如UDP,TCP connect,TCP SYN, ftp proxy (bounce attack),Reverse-ident, ICMP (ping sweep), FIN, ACK sweep,Xmas Tree, SYN sweep, 和Null扫描。还提供一些实用功能,比如通过tcp/ip来甄别操作系统类型;秘密扫描、动态延迟和重发;欺骗扫描、端口过滤探测、分布扫描等。


  • -sT TCP Connect()数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:扫描

    这是对TCP的最基本形式的侦测。对目标主机端口进行试探,如果该端口开放,则连接成功,否则代表这个端口没有开放。

  • -sS TCP SYN扫描

    就是我们介绍的‘半开’式的扫描,速度会比connect扫描快。

  • -sF -sX –sN

    Stealth FIN,Xmas Tree 或者Null扫描模式。

  • -sP Ping扫描

    对指定的IP发送ICMP,如果对方屏蔽了echo request,nmap还能发送一个TCP ack包到80端口探测。

  • -sU UDP扫描

    确定某个UDP端口是否打开。


Xscan
xscan数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

选择‘无条件扫描’,才可以突破防火墙屏蔽ping,进行端口扫描。


Superscan
Superscan——数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:速度之王


Ms06040scanner
MS06040Scanner——数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:专用的漏洞扫描器

用于检测目标系统是否存在MS06040漏洞。


MS06040Scanner数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:的工作原理是首先是通过端口扫描和操作系统扫描获取操作系统类型和开放的端口,如果是windows2000系统,开放了TCP 139 或者TCP 445端口,并且返回的数据包跟漏洞库里的定义相匹配,则说明该主机可能可能存在MS06040漏洞,我们就可以使用MS06040漏洞利用程序对其进行远程溢出攻击。


5 数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:脚本攻击与防御

  • SQL注入攻击

  • SQL注入防御

  • Cookie注入攻击


5 1 sql
5.1 SQL数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:注入攻击

  • 什么是SQL注入攻击?

    SQL注入即是指攻击者通过在应用程序中预先定义好的查询语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的任意查询。

  • 分析一个经典的SQL注入漏洞


dim rs数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

admin1=request("admin")

password1=request("password")

set rs=server.CreateObject("ADODB.RecordSet")

rs.open "select * from admin where admin='" & admin1 & "' and password='"& password1 &"'",conn,1

if rs.eof and rs.bof then

response.write"<SCRIPT language=JavaScript>alert('用户名或密码不正确!');"

response.write"javascript:history.go(-1)</SCRIPT>"

response.end

else

session("admin")=rs("admin")

session("password")=rs("password")

session("aleave")=rs("aleave")

response.redirect "admin.asp"

end if

rs.close

set rs=nothing

一个经典的SQL注入漏洞


分析数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 在用户名和密码那里都填入 ‘OR‘ ’=’ ,

  • SQL语句被构造成

    select * from admin where admin=‘ 'OR‘ '=‘ 'andpassword=‘ 'OR‘ '=‘ ‘

  • 意思是当admin为空或者空等于空,password为空或者空等于空的时候整个查询语句就为真。


如何来修补漏洞?数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

  • 过滤掉其中的特殊字符。

  • 这里我们就过滤掉其中的“'”,即是把程序的头两行改为:

    admin1=replace(trim(request("admin")),"'","")

    password1=replace(trim(request("password")),"'","")


5 2 sql
5.2 数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:防止SQL注入

四种方法:

(1) 在服务端正式处理之前对提交数据的合法性进行检查;

(2) 封装客户端提交信息;

(3) 替换或删除敏感字符/字符串;

(4) 屏蔽出错信息。


第一种方法数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:

Dim Tc_Post,Tc_Get,Tc_In,Tc_Inf,Tc_Xh

'定义需要过滤的字串

Tc_In="'|;|and|(|)|exec|insert|select|delete|update|count|*|%|chr|mid|master||or|char|declare"

Tc_Inf = split(Tc_In,"|")

'处理post数据

If Request.Form<>"" Then

For Each Tc_Post In Request.Form

For Tc_Xh=0 To Ubound(Tc_Inf)

If Instr(LCase(Request.Form(Tc_Post)),Tc_Inf(Tc_Xh))<>0 Then

Response.Write "<Script Language=JavaScript>alert('请不要在参数中包含非法字符尝试注入!');</Script>"

'处理get数据

If Request.QueryString<>"" Then

For Each Tc_Get In Request.QueryString

For Tc_Xh=0 To Ubound(Tc_Inf)

If Instr(LCase(Request.QueryString(Tc_Get)),Tc_Inf(Tc_Xh))<>0 Then

Response.Write "<Script Language=JavaScript>alert('请不要在参数中包含非法字符尝试注入!');</Script>"


5 3 cookie
5.3 Cookie数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:注入

读源码:

<%owen=request("id")%> ‘获取参数ID,但是没限制来源(关键)

Set rsnews=Server.CreateObject("ADODB.RecordSet")

sql="update news set hits=hits+1 where id="&cstr(request("id"))

conn.execute sql

sql="select * from news where id="&owen ‘将参数直接带入查询

rsnews.Open sql,conn,1,1

title=rsnews("title")

if rsnews.eof and rsnews.bof then

response.Write("数据库出错")

else


  • request数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:获取变量的方式:request.form获取的是post数据,request.querystring获取的get数据,request.cookies获取的是cookie中的数据。

  • <%owen=request("id")%>呢?这个时候程序是按以下顺序来搜索集合:querystring,form,cookie,servervariable。


Cookie
构造数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:cookie实现注入

注意:

  • 在cookie里各个变量间的是用“;”来区分的,所以注射语句里面不要含有“;”,如果含有的话,可能会导致你的注射语句出错。

  • 在cookie里,会自动过滤掉空格,所以注射语句里面要注意转换。


Cookie1
举例说明数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:cookie注入

  • 首先提交正常的新闻页面http://localhost/leichi/onews.asp?id=39


  • 接着在浏览器输入数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:javascript:alert(document.cookie=“id=”+escape(“39 and 1=1”));提交。弹出框表明cookie修改成功。


  • 接着刷新,然后直接访问数据驱动攻击:通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,大致可分为:http://localhost/leichi/onews.asp


ad