原文网址:网站安全漏洞--大全_IT利刃出鞘的博客-CSDN博客

简介

本文介绍网站常见的一些安全漏洞,包括:SQL 注入、越权操作、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、DDoS 攻击、JSON 劫持、暴力破解、HTTP 报头追踪漏洞、信息泄露、文件上传格式校验。

SQL 注入

简介

SQL 注入就是通过给 web 应用接口传入一些参数来拼凑SQL语句,使服务器执行恶意的sql命令。

实例

sql = "select * from users where name=" + name;

上面的 SQL 语句目的是通过用户输入的用户名查找用户信息,因为由于 SQL 语句是直接拼接的,也没有进行过滤,所以,当用户输入 '' or '1'='1' 时,这个语句的功能就是搜索 users 全表的记录。

select * from users where name='' or '1'='1';

防御方案

  1. 绑定变量
  2. 检查数据类型
  3. 使用过滤函数

越权操作

平行越权漏洞

只要一个账户即可控制全站用户数据。当然这些数据仅限于存在漏洞功能对应的数据。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判断。

案例分析:删除帖子时没有判断当前用户是否有权限删除该帖子,导致其他用户的帖子也被删掉了。

垂直越权操作漏洞

基于角色的权限管理,又称为“垂直权限管理”。不同角色的权限有高低之分。高权限角色访问低权限角色的资源往往是被允许的,而低权限角色访问高权限角色的资源往往是被拒绝的。如果低权限角色获得了高权限角色的能力,那么就发生了“越权访问”。

跨站脚本攻击(XSS)

简介

XSS(Cross Site Scripting)的含义:恶意攻击者通过某些输入点往Web页面里插入脚本代码,当用户浏览页面或执行某种操作时,就会触发嵌入的脚本代码,从而实现恶意攻击。

分类

1.存储型XSS(Stored XSS)

存入了数据库,再取出来时导致的xss。

输入

输出

2.反射型XSS(Reflected XSS)

案例:在网址url后输入xss代码,如<script>alert(1)</script>,然后访问时导致html页面加载这段代码即可达到弹框效果

3.DOM型XSS(DOM Based XSS)其实也是反射型的一种

严格来说该xss也属于反射型,本文的例子其实也是dom based,是指修改页面的dom对象模型,从而达成攻击。

防御方案

1.输出过滤

跨站请求伪造(CSRF)

简介

CSRF(Cross-site request forgery)跨站请求伪造,也被称成为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

发生原因

网站是通过cookie来识别用户的,当用户成功进行身份验证之后浏览器就会得到一个

标识其身份的cookie,只要不关闭浏览器或者退出登录,以后访问这个网站会带上这个cookie。

1.登录受信任网站A,并在本地生成Cookie。

2.如果在用户登录访问网站A的同时访问了网站B,访问者在网站A的数据就会被B使用用户cookie假冒更新。

案例

假如某网银转账操作是以GET请求来完成:

http://www.mybank.com/Transfer.php?toBankId=11&money=1000

网站B,它里面有一段HTML的代码如下:

<img src=http://www.mybank.com/Transfer.php?toBankId=11&money=1000>

当我在网银cookie有效的情况下访问了网站B,那我的网银就莫名其妙的被转账了1000。。。

防御方案

  1. 二次验证

    1. 比如:对于转账、修改密码之类的敏感操作,不能仅通过cookie进行验证,要重新验证,比如:短信验证码、账号密码、人脸识别。
  2. 对请求的referer进行检测
  3. 添加随机token校验

DDoS 攻击

简介

DoS 攻击全称拒绝服务(Denial of Service),简单的说就是让一个公开网站无法访问,而 DDoS 攻击(分布式拒绝服务 Distributed Denial of Service)是 DoS 的升级版。这个就完全属于后端的范畴了。

原因

攻击者不断地提出服务请求,让合法用户的请求无法及时处理,这就是 DoS 攻击。

攻击者使用多台计算机或者计算机集群进行 DoS 攻击,就是 DDoS 攻击。

解决方案

防止 DDoS 攻击的基本思路是限流,限制单个用户的流量(包括 IP 等)。另见:此文

  1. 设置高性能设备

    1. 要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系或协议的话就更好了,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDoS攻击是非常有效的。
  2. 带宽得保证
    1. 网络带宽直接决定了能抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施都很难对抗现在的SYN Flood攻击。所以,最好选择100M的共享带宽,当然是挂在1000M的主干上了。
  3. 不要忘记升级
    1. 在有网络带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒10万个SYN攻击包。而且最好可以进行优化资源使用,提高web server 的负载能力。
  4. 异常流量的清洗
    1. 通过DDoS硬件防火墙对异常流量的清洗过滤,通过数据包的规则过滤、数据流指纹检测过滤、及数据包内容定制过滤等顶尖技术能准确判断外来访问流量是否正常,进一步将异常流量禁止过滤。
  5. 考虑把网站做成静态页面
    1. 把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦,最好在需要调用数据库的脚本中,拒绝使用代理的访问,经验表明,使用代理访问你网站的80%属于恶意行为。
  6. 分布式集群防御
    1. 这是目前网络安全界防御大规模DDoS攻击的最有效办法。分布式集群防御的特点是在每个节点服务器配置多个IP地址,并且每个节点能承受不低于10G的DDoS攻击,如一个节点受攻击无法提供服务,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态,从更为深度的安全防护角度去影响企业的安全执行决策。
  7. IP轮询技术
    1. 对稳定性、流畅性以及安全性上要求较高的业务,用户遭受 DDoS 攻击且达到一定峰值时,系统通过 IP 轮询机制,将从IP 池中灵活调取一个新的 IP 充当业务 IP,使攻击者失去攻击目标,以此保证业务在 DDoS 的攻击下正常运转。
  8. BGP高防IP
    1. 当用户应用 BGP 高防 IP 且配置转发规则和域名回源后,此时所有的访问流量都将流经 BGP 高防 IP 集群,通过端口协议转发的方式(支持网站业务和非网站业务)将访问流量转发至源站,同时攻击流量将在 BGP 高防 IP 集群进行清洗和过滤,只会将正常业务流量返回至源站,从而确保源站业务的稳定。
  9. 运营商过滤
    1. 针对反射放大类攻击,都有相同的特点,可以直接在运营商侧进行过滤,不用将流量流入抗D设备,从而使防御与反射放大类压制更有效果。本不存在放大效果,但基于其真实 IP 的原因,穿透性与隐蔽性都十分显著。
  10. 流量预压制
    1. 流量预压制/UDP 预压制等能力,从容应对新型的超大流量攻击。 (Memcached的5W倍反射)

JSON 劫持

其他网址

JSON和JSONP劫持以及解决方法

简介

JSON 劫持(JSON Hijacking)是用于获取敏感数据的一种攻击方式,属于 CSRF 攻击的范畴。

原因

一些 Web 应用会把一些敏感数据以 json 的形式返回到前端,如果仅仅通过 Cookie 来判断请求是否合法,那么就可以利用类似 CSRF 的手段,向目标服务器发送请求,以获得敏感数据。

比如下面的链接在已登录的情况下会返回 json 格式的用户信息:

http://www.test.com/userinfo

攻击者可以在自己的虚假页面中,加入如下标签:

<script src="http://www.test.com/userinfo"></script>

如果当前浏览器已经登录了 www.test.com,并且 Cookie 未过期,然后访问了攻击者的虚假页面,那么该页面就可以拿到 json 形式的用户敏感信息,因为 script 标签会自动解析 json 数据,生成对应的 js 对象。然后再通过:

Object.prototype.__defineSetter__

这个函数来触发自己的恶意代码。但是这个函数在当前的新版本 Chrome 和 Firefox 中都已经失效了。

解决方案

  • X-Requested-With 标识
  • 浏览器 JSON 数据识别
  • 禁止 Javascript 执行 JSON 数据

暴力破解

简介

这个一般针对密码而言,弱密码(Weak Password)很容易被别人(对你很了解的人等)猜到或被破解工具暴力破解。

解决方案

  • 密码复杂度要足够大,也要足够隐蔽
  • 限制尝试次数

HTTP 报头追踪漏洞

简介

HTTP/1.1(RFC2616)规范定义了 HTTP TRACE 方法,主要是用于客户端通过向 Web 服务器提交 TRACE 请求来进行测试或获得诊断信息。

当 Web 服务器启用 TRACE 时,提交的请求头会在服务器响应的内容(Body)中完整的返回,其中 HTTP 头很可能包括 Session Token、Cookies 或其它认证信息。攻击者可以利用此漏洞来欺骗合法用户并得到他们的私人信息。

防御方案

禁用 HTTP TRACE 方法。

信息泄露

简介

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

防御方案

  • 应用程序报错时,不对外产生调试信息
  • 过滤用户提交的数据与特殊字符
  • 保证源代码、服务器配置的安全

文件上传格式校验

简介

黑客攻击网站还有一个常见的方式就是通过文件上传漏洞,比如网站上传图片的功能没有严格校验后缀名。黑客可以通过此功能上传一些脚本文件,上传成功后,通过请求这些脚本文件运行脚本中的功能达到攻击的目的。

那么如果验证了上传文件的后缀名就可以吗?实际上并不是,举例说我们知道页面引入script标签时src写啥都行,比如http://www.baidu.com/123.jpg,也是可以的,攻击者只需要把一个script文件后缀名改为jpg即可通过后缀验证,后面一路畅通。所以这就提到了验证文件的真实格式。如何验证,网上一大堆…

防御方案

设置php文件、jsp文件不可直接被访问(不知道php可以不,jsp放在WEB-INF即可),这样攻击者上传此类文件也无法执行;

通过文件头信息严格验证文件格式,从上传功能开始防范。

其他网址

WEB应用常见15种安全漏洞一览 | Fundebug博客 - 一行代码搞定BUG监控
网络安全常见漏洞与分析_loner_fang的博客-CSDN博客_网络安全漏洞
网站10大常见安全漏洞及解决方案_shanhanyu的博客-CSDN博客_常见网络安全漏洞

网站安全漏洞--大全相关推荐

  1. 搜索引擎网站收录地址大全

    搜索引擎网站收录地址大全 百度搜索网址提交入口口:http://zhanzhang.baidu.com/sitesubmit/index 360搜索引擎登录入口:http://info.so.360. ...

  2. 网站推广方法大全(2008迎奥运版)

    网站推广方法大全(2008迎奥运版) 2008年北京奥运快开始了.在普天同庆的日子里,在全世界上下一片欢喜声中,笔者在思考,怎么能让站长们也欢喜一下呢?让站长们最欢喜的事情,就是流量暴涨.最头疼的事情 ...

  3. Ewebeditor最新漏洞及漏洞大全

    Ewebeditor最新漏洞及漏洞大全[收集] 来源:转载作者:佚名时间:2009-06-03 00:04:26 以下文章收集转载于网络:) 算是比较全面的ewebeditor编辑器的漏洞收集,现在的 ...

  4. P2P太假了,光有网站平台,连人都找不着了,更不用说网站大漏洞没人管,呵呵...

    P2P太假了,光有网站平台,连人都找不着了,更不用说网站大漏洞没人管,呵呵 今天看到乌云有公布了一个p2p网站的漏洞: http://www.wooyun.org/bugs/wooyun-2015-0 ...

  5. xss植入_网站xss漏洞的利用过程

    XSS跨站脚本,是一种Web安全漏洞,有趣是是他并不像SQL注入等攻击手段攻击服务端,本身对Web服务器没有危害,攻击的对象是客户端,使用浏览器访问这些恶意地址的网民.这里就跟大家稍微讲解一下网站xs ...

  6. 各大搜索引擎网站登录入口大全

    将你的网站到各大搜索引擎网站登录,可以让搜索引擎收录你的网站,从而让网民找到你的网站. 各大搜索引擎网站登录入口大全 以下是主要搜索引擎登录入口: 百度网站登录入口:http://www.baidu. ...

  7. 快速提高网站排名工具大全

    快速提高网站排名工具大全 我试了一下,大部分可以登陆,想提高访问量的朋友可以去看看 中国论坛之家登陆入口http://www.vt123.com/link.html 商情168搜索引擎免费登陆入口ht ...

  8. P2P太假了,光有网站平台,连人都找不着了,更不用说网站大漏洞没人管,呵呵

    P2P太假了,光有网站平台,连人都找不着了,更不用说网站大漏洞没人管,呵呵 今天看到乌云有公布了一个p2p网站的漏洞: http://www.wooyun.org/bugs/wooyun-2015-0 ...

  9. 使用AWVS进行网站的漏洞扫描

    概述:AWVS是一款web网站的漏洞扫描工具 步骤 1.首先安装AWVS软件,安装过程很简单,不过中间会让输入邮箱和密码,邮箱可以随便写.这个是后来登录要用的,要记一下. 2.安装完成之后,打开AWV ...

最新文章

  1. LISP 图层前后缀_lisp获取qleader端点_lisp以一个图层来做定义快名称怎么实现
  2. python二维数组怎么写_python的二维数组操作
  3. TCP/IP协议(3):数据链路层
  4. 利用开源社区打造微服务生态体系
  5. 瞬间几千次的重复提交,我用 Spring Boot + Redis 扛住了!
  6. UML用例图总结来源于网络
  7. Angularjs 中的 controller
  8. 自行实现高性能MVC
  9. java char 空字符串_java判断char是否为空的方法
  10. 485. Max Consecutive Ones - LeetCode
  11. 简洁商城系统后台管理模板
  12. 创业者都有一个共同的特质,他想做事,就立刻做
  13. 提高.net网站的性能
  14. SQLServer中批量插入数据方式的性能对比
  15. FreeBSD从源码升级系统--重新编译
  16. Java版通用身份证验证
  17. 活塞发动机和喷气式发动机-绝妙的动力转换
  18. 如何根据经纬度获取地址名称
  19. 大数据行业前景_大数据未来展望
  20. Auditbeat日志审计方案

热门文章

  1. 医学院交换去计算机学院,皖南医学院学生2018年赴台湾元培医事科技大学参加交换生项目交流心得...
  2. 小程序源码:修复登录大河盲盒小程序源码,实现运营“玩法自由”,超多功能的盲盒型抽奖挖矿程序源码下载
  3. Nature|人工智能助力蛋白质折叠预测
  4. Arduino学习(六) 继电器实验
  5. 记一次CRM敏捷认证培训学习总结
  6. C语言标准ANSI C、C语言的特点、C语言的关键字(32个)
  7. 基于《狂神说Java》Redis--学习笔记
  8. 基因-高通量测序-变异检测
  9. kind多节点端口映射
  10. python 函数进阶_python之函数进阶