Web安全之——服务器应用安全,所有类型介绍
服务器应用安全所有类型介绍
一.注入攻击
1.SQL注入
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。
盲注(Blind Injection):
很多时候,Web服务器关闭了错误回显,就没有办法进入SQL注入了吗?后来研究出了盲注,所谓盲注就是在服务器没有错误回显时完成的注入攻击。服务器没有了错误回显,对攻击者来说少了非常重要的"调试信息"。最常见的盲注方法是,构造简单的语句,根据返回的页面是否发生变化,来判断SQL语句是否得到执行。
本博SQL注入,详解实例。https://www.cnblogs.com/baihuitestsoftware/articles/9856597.html
盲注的例子:https://blog.csdn.net/qq_36706878/article/details/79530211
2.XML注入
XML是一种数据组织存储的数据结构方式,安全的XML在用户输入生成新的数据时候应该只能允许用户接受的数据,需要过滤掉一些可以改变XML标签也就是说改变XML结构插入新功能(例如新的账户信息,等于添加了账户)的特殊输入,如果没有过滤,则可以导致XML注入攻击。
XML与HTML一样,也存在注入攻击,甚至在注入的方法上也非常相似。
XML注入时的两大注意点:
(1)标签闭合(关键所在)
(2)获取XML的表结构
3.代码注入
代码注入与命令注入都是由一些不安全的函数或者方法引起的。
4.CRLF注入
CRLF(Carriage Return Line Feed)是“回车+换行”(\r \n)的简称,其十六进制编码分别为0x0d和0x0a。在HTTP协议中,HTTP header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP内容并显示出来。所以,一旦我们能够控制HTTP消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码。CRLF漏洞常出现在Location与Set-cookie消息头中。
二.文件上传漏洞
文件上传漏洞概念
文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的,部分文件上传漏洞的利用技术门槛非常的低,对于攻击者来说很容易实施。即便很容易被攻击者利用漏洞,但是在今天的现代互联网的Web应用程序,它是一种常见的要求,因为它有助于提高业务效率。企业支持门户,给用户各企业员工有效地共享文件。允许用户上传图片,视频,头像和许多其他类型的文件。向用户提供的功能越多,Web应用受到攻击的风险和机会就越大,这种功能会被恶意用户利用,获得到一个特定网站的权限,或危及服务器的可能性是非常高的。
文件上传后导致的常见的安全问题有:
- 上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。
- 上传文件是Flash的策略文件Crossdomain.xml,黑客用以控制Flash在该域下的行为。
- 上传文件是病毒、木马文件,黑客用以诱骗用户或管理员下载执行。
- 上传文件是钓鱼图片或包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。
三.认证与会话管理
认证Authentication /ɔ,θɛntɪ'keʃən/ , 授权 Authorization /ɔːθəraɪ'zeɪʃ(ə)n/
认证的目的是为了认出用户是谁,而授权的目的是为了决定用户能够做什么。
假设系统是一间屋子,持有钥匙的人可以开门,屋子就是通过“锁”和“钥匙”的匹配来进入认证的。开锁的过程就是认证过程,在钥匙认证过程中被称为“凭证”(credential),对应系统的登录。开门之后,什么事情可以做,什么事情不可以做就是“授权”的管辖范围。
密码是最常见的认证手段。一般来说,密码必须以不可逆的加密算法或是单向散列函数算法,加密存在数据库中。尽最大可能地保证密码的私密性。
Session Fixation攻击:
什么是会话固定攻击?
会话固定攻击(session fixation attack)是利用应用系统在服务器的会话ID固定不变机制,借助他人用相同的会话ID获取认证和授权,然后利用该会话ID劫持他人的会话以成功冒充他人,造成会话固定攻击。
看下面Session Fixation攻击的一个简单例子:
整个攻击流程是:
1、攻击者Attacker能正常访问该应用网站;
2、应用网站服务器返回一个会话ID给他;
3、攻击者Attacker用该会话ID构造一个该网站链接发给受害者Victim;
4-5、受害者Victim点击该链接,携带攻击者的会话ID和用户名密码正常登录了该网站,会话成功建立;
6、攻击者Attacker用该会话ID成功冒充并劫持了受害者Victim的会话。
Session保持攻击:
一般来说,Session是有生命周期的,当用户常时间不进行操作或退出之后,服务器将销毁Session。如果攻击者窃了用户的SessionID,能够登录用户账户。想一直使用此帐户,攻击者会让服务一直认为该用户还活着(如间隔性的刷新页面)一直使该Seesion有效。
如果该网站访问量大,维护Session可能会给网站带来巨大的负担,因此有一种做法,就是服务器不维护Session,而把Session放在Cookie中加密保存。当浏览器访问该站时,会自动带上Cookie,服务器只需要解密Cookie。过期都是利用Cookie的Expire标签来控制,这就给了攻击者可乘之机,篡改这个时间,并使之永久有效。
单点登录(Single Sign On):
用户只要登录一次,就可以访问所有的系统。从安全角度看,SSO把风险集中在单点上。
SSO的优点在于风险集中化,就只需要保护好这一个点。
缺点就是风险集中了,单点一量被攻破,后果会非常严重。降低这种风险的办法是在一些敏感的系统里,再单独实现一些额外的认证机制。如支持平台,付款前要求再一次输入密码。(OpenID)
四.访问控制
五.加密算法与随机数
六.应用层拒绝服务攻击
DDOS攻击:(Distributed Denial of Service)
分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在网络上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。
常见的DDOS攻击有SYN flood、UDP flood、ICMP flood等,其中SYN flood是一种最为经典的DDOS攻击,发现于1996年,至今保持着非常强大的生命力。它利用了TCP协议实现上的一个缺陷,通过向网络服务所在端口发送大量的伪造源地址的攻击报文,就可能造成目标服务器中的半开连接队列被占满,从而阻止其它合法用户进行访问。很多操作系统,甚至防火墙、路由器都无法有效地防御这种攻击,而且由于它可以方便地伪造源地址,追查起来非常困难。它的数据包特征通常是,源发送了大量的SYN包,并且缺少三次握手的最后一步握手ACK回复。
下面就是一些防御方法:
1. 确保服务器的系统文件是最新的版本,并及时更新系统补丁。
2. 关闭不必要的服务。
3. 限制同时打开的SYN半连接数目。
4. 缩短SYN半连接的time out 时间。
5. 正确设置防火墙
- 禁止对主机的非开放服务的访问
- 限制特定IP地址的访问
- 启用防火墙的防DDoS的属性
- 严格限制对外开放的服务器的向外访问
- 运行端口映射程序祸端口扫描程序,要认真检查特权端口和非特权端口。
6. 认真检查网络设备和主机/服务器系统的日志。只要日志出现漏洞或是时间变更,那这台机器就可 能遭到了攻击。
7. 限制在防火墙外与网络文件共享。这样会给黑客截取系统文件的机会,主机的信息暴露给黑客, 无疑是给了对方入侵的机会。
8. 路由器
以Cisco路由器为例
- Cisco Express Forwarding(CEF)
- 使用 unicast reverse-path
- 访问控制列表(ACL)过滤
- 设置SYN数据包流量速率
- 升级版本过低的ISO
- 为路由器建立log server
能够了解DDoS攻击的原理,对我们防御的措施在加以改进,我们就可以挡住一部分的DDoS攻击。
七Web Server配置安全
八.Web框架安全
XSS

浙公网安备 33010602011771号