常见的Web应用的漏洞

一、 SQL注入

原理

SQL注入就是把SQL命令插入到Web表单然后提交到所在页面请求(查询字符串),从而达到欺骗服务器执行恶意的SQL命令。它是利用现在已有的应用程序,将SQL语句插入到数据库中执行,执行一些并非按照设计者意图的SQL语句。

原因

根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:

  • 不当的类型处理;
  • 不安全的数据库配置;
  • 不合理的查询集处理;
  • 不当的错误处理;
  • 转义字符处理不合适;
  • 多个提交处理不当。

危害

  • 数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。
  • 网页篡改:通过操作数据库对特定网页进行篡改。
  • 网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
  • 数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
  • 服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
  • 破坏硬盘数据,瘫痪全系统。

防御

  1. 严格的数据类型;
  2. 字符转义;
  3. 使用预编译语句;
  4. 存储过程;

二、 跨站脚本攻击(Cross Site Scripting)

原理

攻击者往Web页面里插入恶意html标签或者javascript代码。 分别是反射型XSS、持久型XSS和DOM XSS

危害

  • 网络钓鱼,盗取各类用户的账号;
  • 窃取用户Cookie,获取用户隐私,或者利用用户身份进一步执行操作;
  • 劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志等;
  • 强制弹出广告页面,刷流量等;
  • 进行恶意操作,例如任意篡改页面信息,删除文章等,传播跨站脚本蠕虫,网页挂等;
  • 进行基于大量的客户端攻击,如DDOS攻击;
  • 结合其它漏洞,如CSRF漏洞

防御

  1. 代码里对用户输入的地方和变量都需要仔细检查长度和对”<”,”>”,”;”,”’”等字符做过滤;其次任何内容写到页面之前都必须加以encode,避免不小心把html
    tag 弄出来。这一个层面做好,至少可以堵住超过一半的XSS 攻击;
  2. 避免直接在cookie 中泄露用户隐私,例如email、密码等等;
  3. 通过使cookie 和系统ip 绑定来降低cookie 泄露后的危险。这样攻击者得到的cookie 没有实际价值,不可能拿来重放;
  4. 尽量采用POST 而非GET 提交表单;

三、 上传漏洞

原理

文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器,服务器未经任何检验或过滤,从而造成文件的执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。

危害

  • 上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。
  • 上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(其他通过类似方式控制策略文件的情况类似);
  • 上传文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行。
  • 上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。

防御

  1. 文件扩展名服务端白名单校验;
  2. 文件内容服务端校验;
  3. 上传文件重命名;
  4. 隐藏上传文件路径;
  5. 文件上传的目录设置为不可执行;
  6. 单独设置文件服务器的域名;

注意:以上几点,可以防御绝大多数上传漏洞,但是需要跟服务器容器结合起来。如果解析漏洞依然存在,那么没有绝对的安全。

四、 文件解析漏洞

IIS 6.0解析利用方法有两种

  • 目录解析:在网站下建立文件夹的名字为 .asp、.asa 的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行,例如:/xx.asp/xx.jpg。
  • 文件解析:在IIS6.0下,分号后面的不被解析,也就是说wooyun.asp;.jpg会被服务器看成是wooyun.asp
    还有IIS6.0 默认的可执行文件除了asp还包含这三种.asa、.cer、.cdx ,例如:wooyun.asp;.jpg。

Apache解析漏洞后缀名解析漏洞

Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断直到识别。

PHP CGI解析漏洞

在默认Fast-CGI开启状况下,上传一个名字为wooyun.jpg,内容为

<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>

的文件,然后访问wooyun.jpg/x.php,(x.php不存在)在这个目录下就会生成一句话木马 shell.php。

%00截断漏洞

当程序在输出含有chr(0)变量时,chr(0)后面的数据会被停止,换句话说,就是误把它当成结束符,后面的数据直接忽略,这就导致漏洞产生

五、 CSRF(Cross-Site Request Forgery)

原理:

CSRF是一种夹持用户在已经登陆的web应用程序上执行非本意的操作的攻击方式。相比于XSS,CSRF是利用了系统对页面浏览器的信任,XSS则利用了系统对用户的信任。
在这里插入图片描述
由上图分析我们可以知道构成CSRF攻击是有条件的:

  1. 客户端必须一个网站并生成cookie凭证存储在浏览器中
  2. 该cookie没有清除,客户端又tab一个页面进行访问别的网站

危害

攻击者利用会话劫持达到自己的目的,比如转账、积分等

防御

  1. GET、POST的正确使用;
  2. 利用验证码(在一定的情况下使用,但是为了防止客户产生不好印象,尽量不用);
  3. Referer Check(HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。但服务器并非任何时候都能取到referer、保护客户隐私,不作为预防主要手段) ;
  4. Anti CSRF Token: 为每一个表单生成一个随机数秘钥,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求;

六、 DDos攻击 分布式拒绝服务(Distributed Denial of service Attack)

原理

  • 攻击者想办法让目标服务器的磁盘空间、内存、进程、网络带宽等资源被占满,从而导致正常用户无法访问。
  • 攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,无法接收新的请求;二是使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。
  • 攻击者是使用傀儡机(俗称“肉鸡”,受病毒木马操控的计算机或服务器)作为攻击平台,通过大量伪装合法的请求占用大量网络资源,以达到使指定目标的网络或服务瘫痪中断。

危害:

服务器瘫痪、用户无法正常访问。

类型

  1. SYN Flood攻击:这种攻击方法是经典最有效的DDoS方法,主要是通过向受害主机发送大量伪造源 IP 和源端口的 SYN 或
    ACK
    包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,可通杀各种系统的网络服务。这种攻击由于源头都是伪造的,所以追踪起来比较困难。但是,该攻击实施起来有一定难度,需要大量高带宽的僵尸主机。
  2. TCP 全连接攻击:这种攻击是为了绕过常规防火墙的检查而设计的。一般情况下,常规防火墙大多对于正常的 TCP
    连接是放过的,但是很多网络服务程序能接受的 TCP 连接数是有限的。TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的
    TCP 连接,直到服务器的内存等资源被耗尽而被拖跨,
    从而造成拒绝服务。种攻击的特点是可绕过一般防火墙的防护而达到攻击;缺点是需要找很多僵尸主机,且僵尸主机的IP 是暴露,易被追踪。
  3. 刷 Script 脚本攻击:这种攻击是跟服务器建立正常的TCP连接, 并不断的向脚本程序提交查询、
    列表等大量耗费数据库资源的调用。一般来说,
    提交一个指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是非常大。攻击者只需通过代理向目标服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务。这种攻击的特点是可以完全绕过普通的防火墙防护,
    轻松找一些代理就可实施攻击;缺点是对付只有静态页面的网站效果会大打折扣,并且会暴露攻击者的IP地址。

防御:

  1. 采用高性能的网络设备;
  2. 尽量避免NAT的使用(NAT需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间);
  3. 充足的网络带宽保证;
  4. 升级主机服务器硬件;
  5. 把网站做成静态页面;
  6. 增强操作系统的TCP/IP栈;
  7. 安装专业抗DDOS防火墙;

注意:IP Spoof: 即IP地址欺骗,是一台主机设备冒充另外一台主机的IP地址,与其它设备通信,从而达到某种目的技术。属于IP Spoof类的攻击还有TCP 半连接攻击,也就是SYN Flood攻击 。

参考博文:https://blog.csdn.net/weixin_36525275/article/details/79953106

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值