常见的web攻击类型

web领域常见的攻击手段及防御方式

1

DDos分布式拒绝服务攻击

DDOS(Distributed Denial of Service),其原理就是黑客发送大量的合法请求到服务器,服务器无法分辨这些请求是正常请求还是攻击请求,所以会照单全收。海量的请求造成服务器进入停止工作或拒绝服务的状态。

举个简单的例子,老张家面馆生意红火,突然有一天一群小混混进了店,霸占了座位,只闲聊不点菜,结果坐在店里的人不吃面,想吃面的人进不来,导致老张无法向正常客户服务。

DDoS攻击可以针对网络通讯协议的各层,攻击手段大致有:TCP类的SYN Flood、ACK Flood,UDP类的Fraggle、Trinoo,DNS Query Flood,ICMP Flood等。

DDoS 防御的技术核心是检测技术和清洗技术。检测技术就是检测网站是否正在遭受 DDoS 攻击,而清洗技术就是清洗掉异常流量。而检测技术的核心在于对业务深刻的理解,才能快速精确判断出是否真的发生了 DDoS 攻击。

2

CSRF跨站点请求伪造

CSRF攻击,指攻击者通过已经设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息状态更新,属于被动攻击。更简单的理解就是攻击者盗用了你的名义,以你的名义发送了其他请求。

例如,小明在浏览银行A网站的时候并没有关掉银行网站,这时小明又访问了携带CSRF攻击的B网站,而这时候B网站通过对银行的服务器发送转账请求,并且携带小明的在银行网站的cookie信息,在参数上把小明账号上的钱转到B网站所有人的账户上,这时url得到响应,小明的钱就丢了。

解决方法通常有以下几种。

1、敏感请求使用验证码。

2、验证HTTP Referer字段。Referer字段记录了HTTP请求的来源地址。在某些浏览器上,还是可以通过篡改 Referer 从而进行CSRF攻击。

3、在请求地址中添加token 并验证。在用户登录之后,产生token 并放入session中,在每次请求时把token从session中拿出来,以参数的形式加入请求,在服务器端建立拦截器验证该token,token则通过,否则拒绝。

4、在HTTP头中自定义属性token 并验证。把token作为自定义属性放在HTTP的头中,通过封装XMLHttpRequest可以一次性给所有请求加上token 属性。这样子token就不会暴露在浏览器地址中。

3

SOL注入攻击

攻击者在提交表单的时候,在表单上面填写相关的sql语句,而系统把这些字段当成普通的变量发送给服务器端进行sql查询,则,由攻击者填写的sql会拼接在系统的sql语句上,从而进行数据库的某些操作。

举例:' OR '1'='1,这是最常见的 SQL注入攻击。当我们输入用户名 admin ,然后密码输入' OR '1'=1='1的时候,我们在查询用户名和密码是否正确的时候,本来要执行的是SELECT * FROM user WHERE username='' and password='',经过参数拼接后,会执行 SQL语句 SELECT * FROM user WHERE username='' and password='' OR '1'='1',这个时候1=1是成立,自然就跳过验证。

防御方法:1、表单过滤,验证表单提交的合法性,对一些特殊字符进行转义处理。

2、数据库权限最小化。

3、查询语句使用数据库提供的参数化查询接口,不要直接拼接SQL。

4、在应用发布之前建议使用专业的SQL注入检测工具(如sqlmap、SQLninja)进行检测。

4

XSS跨站脚本攻击

XSS跨站脚本攻击(Cross-Site scripting)是指在通过注册的网站用户的浏览器内运行非法的HTML标签或javascript,从而达到攻击的目的,如盗取用户的cookie,改变网页的DOM结构,重定向到其他网页等。

简单地说,攻击者在网页上发布包含攻击性代码的数据。当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行。通过XSS可以比较容易地修改用户数据、窃取用户信息,以及造成其它类型的攻击,例如CSRF攻击。

XSS 主要有三种类型:

1、存储型 XSS:注入的脚本永久的存在于目标服务器上,每当受害者向服务器请求此数据时就会重新唤醒攻击脚本;

2、反射型 XSS:当用受害者被引诱点击一个恶意链接,提交一个伪造的表单,恶意代码便会和正常返回数据一起作为响应发送到受害者的浏览器,从而骗过了浏览器,使之误以为恶意脚本来自于可信的服务器,以至于让恶意脚本得以执行。

3、DOM 型 XSS:有点类似于存储型 XSS,但存储型 XSS 是将恶意脚本作为数据存储在服务器中,每个调用数据的用户都会受到攻击。但 DOM 型 XSS 则是一个本地的行为,更多是本地更新 DOM 时导致了恶意脚本执行。

防御方法1、对于敏感的cookie信息,使用HttpOnly,使document对象中找不到cookie。

2、对于用户输入的信息要进行转义。

5

文件上传漏洞

web网站没有对文件类型进行严格的校验,导致可执行文件上传到了服务器,恶意程序就会执行。

防御方法:

客户端检测 :程序员一般使用 JavaScript 来拒绝非法文件上传。

服务器端检测:1、白名单与黑名单验证:定义不允许或允许上传的文件扩展名。

2、MIME验证:php 中通过 $_FILE['file']['type'] 来检验。

3、目录验证:在文件上传时,程序通常允许用户将文件放到指定的目录中,如果指定的目录存在,就将文件写入目录中。

6

DNS查询攻击

DNS查询攻击(DNS Query Flood)是向被攻击的服务器发送海量的随机生成的域名解析请求,大部分根本就不存在,并且通过伪造端口和客户端IP,防止查询请求被ACL过滤。

被攻击的DNS服务器在接收到域名解析请求后,首先会在服务器上查找是否有对应的缓存,当没有缓存并且该域名无法直接由该DNS服务器进行解析的时候,DNS服务器会向其上层DNS服务器递归查询域名信息,直到全球互联网的13台根DNS服务器。

防御方法:1、根据域名 IP 自学习结果主动回应,减轻服务器负载。

2、对突然发起大量频度较低的域名解析请求的源 IP 地址进行带宽限制。

3、在攻击发生时降低很少发起域名解析请求的源 IP 地址的优先级。

4、限制每个源 IP 地址每秒的域名解析请求次数。

7

暴力破解

弱密码(Weak Password)很容易被别人猜到或被破解工具暴力破解。

防御方法主要有两种,其一密码复杂度要足够大也要足够隐蔽,其二限制尝试次数。

8

信息泄露

由于 Web 服务器或应用程序没有正确处理一些特殊请求,泄露 Web 服务器的一些敏感信息,如用户名、密码、源代码、服务器信息、配置信息等。

防御方法:1、敏感信息加密传输;2、应用程序报错时,不对外产生调试信息;3、过滤用户提交的数据与特殊字符;4、保证源代码、服务器配置的安全。

9

后门程序

后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。但是如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成了安全风险,容易被黑客当成漏洞进行攻击。

防御方法:使用非对称后门接口进行软件更新,避免对称后门接口, 给后端程序加壳,更新去除后门的补丁程序。

10

重定向攻击

一种常用的攻击手段是“钓鱼”。钓鱼攻击者,通常会发送给受害者一个合法链接,当链接被点击时,用户被导向一个似是而非的非法网站,从而达到骗取用户信任、窃取用户资料的目的。为防止这种行为,我们必须对所有的重定向操作进行审核,以避免重定向到一个危险的地方。

常见解决方案是白名单,将合法的要重定向的url加到白名单中,非白名单上的域名重定向时拒之,第二种解决方案是重定向token,在合法的url上加上token,重定向时进行验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网络安全研究所

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值