常见网络攻击方式总结

270 阅读4分钟

这是我参与8月更文挑战的第12天,活动详情查看:8月更文挑战 !

src=http___dingyue.ws.126.net_2020_0520_5b0db6afj00qaloi40023c000hs00g4c.jpg&refer=http___dingyue.ws.126.jpg

前言

最近看到一条新闻 1628760503(1).png

了解到湾湾黑客组织采用的网络攻击方式为CSRF攻击,正好复习一下常见的网络攻击方式。

CSRF攻击(跨站请求伪造 Cross-site request forgery)

是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。

攻击者通过跨站请求,以合法用户的身份进行非法操作,如转账交易、发表评论等。CSRF的主要手法是利用跨站请求,在用户不知情的情况下,以用户的身份伪造请求。其核心是利用了浏览器Cookie或服务器Session策略,盗取用户身份。

这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

应对策略:

1. 尽量使用POST,限制GET

GET接口太容易被拿来做CSRF攻击,看第一个示例就知道,只要构造一个img标签,而img标签又是不能过滤的数据。接口最好限制为POST使用,GET则无效,降低攻击风险。

当然POST并不是万无一失,攻击者只要构造一个form就可以,但需要在第三方页面做,这样就增加暴露的可能性。

2. 浏览器Cookie策略

IE6、7、8、Safari会默认拦截第三方本地Cookie(Third-party Cookie)的发送。但是Firefox2、3、Opera、Chrome、Android等不会拦截,所以通过浏览器Cookie策略来防御CSRF攻击不靠谱,只能说是降低了风险。

PS:Cookie分为两种,Session Cookie(在浏览器关闭后,就会失效,保存到内存里),Third-party Cookie(即只有到了Exprie时间后才会失效的Cookie,这种Cookie会保存到本地)。

3. 加验证码

验证码,强制用户必须与应用进行交互,才能完成最终请求。在通常情况下,验证码能很好遏制CSRF攻击。但是出于用户体验考虑,网站不能给所有的操作都加上验证码。因此验证码只能作为一种辅助手段,不能作为主要解决方案。

XSS攻击 ( 跨站点脚本攻击Cross Site Script )

通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。

这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容

应对策略:

1.输入(和URL参数)进行过滤,对输出进行编码。

2.使用内容安全策略(CSP)是对抗XSS的深度防御策略。

SQL注入

攻击者在HTTP请求中注入恶意SQL命令,服务器用请求参数构造数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行

应对策略:

1. 通过正则表达校验用户输入

2. 通过参数化存储过程进行数据查询存取

DoS攻击( 拒绝服务 Denial of Service )

DoS攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务系统停止响应甚至崩溃,而在此攻击中并不包括侵入目标服务器或目标网络设备

应对策略:

1.定期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理

2.在骨干节点配置防火墙

3.用足够的机器承受黑客攻击

4.充分利用网络设备保护网络资源

5.过滤不必要的服务和端口