读书笔记第一部分对应原书的第一章,主要介绍了Web应用程序的发展,功能,安全状况。

Web应用程序的发展历程

早期的万维网仅由Web站点构成,只是包含静态文档的信息库,随后人们发明了Web浏览器用来检索和显示那些文档,但这些信息只是由服务器单向传送给浏览器,并不需要验证用户的合法性,所有用户同等,提供同样的信息。

所以当时一个Web站点的安全威胁主要来自于Web服务器系统与相关软件的(诸多)漏洞。攻击者入侵站点后并不能得到敏感信息,至多修改一下服务器上的静态文件,歪曲站点的内容,或者利用服务器本身做一些“非法的事情”。

经过几十年的发展,而今的万维网和早期的万维网早已不可同日而语,Web上的大多数站点实际上就是应用程序,它们功能强大,在服务器与浏览器之间进行双向信息传送。“注册,登录,金融交易,搜索,内容创作”等等这些内容以动态的方式成为解决用户特殊需求的方案,它们处理诸多信息包括私密和高度敏感的信息,因此,安全问题变的至关重要:如果人们认为Web应用程序会将他们的信息泄露给未授权的访问者,他们就会拒绝这个Web应用程序。

Web应用程序的常见功能

创建Web应用程序的目的是执行可以在线完成的任何有用功能:

  1. 购物(Taobao,JD,Amazon)
  2. 社交网络(BBS,SNS)
  3. 微博(Weibo)
  4. 博客(Bloggers)
  5. 银行服务(BOC,ICBC)
  6. Web搜索(Baidu)
  7. Web邮件(QQmail,企业Mail)
  8. 交互信息(Dingding,QQ,iMassges)

企业内部已广泛使用Web应用程序来支持关键业务功能,这类应用程序可以访问各种高度敏感的数据和功能:

  1. 使用HR应用程序,访问工资信息,绩效反馈。
  2. 连接关键体系架构的管理接口:Web和邮件服务器。
  3. 共享文档,管理工作流程,项目跟踪。
  4. ERP软件通过Web浏览器访问。

为降低成本,企业圈内开始推崇所谓“云计算”业务,并将此业务开发交于外包企业实施和托管,将ERP搬至网上。在这些所谓的“云”解决方案中,业务关键功能和数据向数目更庞大的潜在攻击者开发,而组织却越来越多地依赖于不受其控制的安全防御。

Web应用程序的优点

  1. HTTP是用于访问万维网的核心通信协议,它是轻量级的,无须连接,这提供了对通信错误的容错性。这使得用户可以在任何网络配置下进行安全通信。
  2. 每个Web用户在其PC端和移动端上都默认装有浏览器,而Web应用程序可以在任何浏览器上运行。
  3. 现今的Web界面使用标准的导航和输入控件,这保证了用户不需要通过学习就可以即时熟悉这些功能。
  4. 用于开发Web应用程序的核心技术和语言工具相对简单,并且有大量的开源代码和资源可供整合。

Web应用程序安全

应用程序各不相同,所包含的漏洞也各不相同,许多应用程序是由开发人员独立开发,还有许多开发人员对自己所编写的代码可能引起的安全问题略知一二,于是一些开发人员从未在开发应用时未曾考虑到的攻击方式在使用过程当中相继出现了,而新技术的开发也会引入新的漏洞。

针对Web应用程序最严重的攻击,是那些能够绕到后端系统的无限访问权限的攻击。

在Web应用程序的整个发展过程中,直到今天,甚至可预见的未来,攻击者与防御者的战斗仍然在继续,且没有解决的迹象。

“本站点是安全的”

大多数网站声称自己使用128位安全套接层(Secure Socket Layer, SSL)技术设计,遵循支付卡行业(PCI)标准,来证明自己的加密协议是无懈可击的。

但实际上,大多数Web应用程序不安全,不仅仅是技术应用上的,还有开发人员在基础设计上的漏洞:

  1. 不完善的身份验证措施
  2. 不完善的访问控制措施
  3. SQL注入
  4. 跨站点脚本
  5. 信息泄露
  6. 跨站点请求伪造

SSL在机密性与安全性上是出色的技术,但它的问题在于它并不能抵御直接针对某个应用程序的服务器或客户端组件的攻击,而许多成功的攻击都恰恰属于这种类型。

所以SSL并不能阻止上述任何漏洞或许多其他使应用程序受到威胁的漏洞。

核心安全问题:用户可提交任意输入

Web应用程序有个根本性问题,即无法控制客户端,所以用户几乎可向服务器端提交任意输入。所以应用程序必须假设用户输入的都是恶意信息。

这个核心问题表现在多个方面:

  1. 用户可干预客户端与服务器间传送的所有数据。
  2. 用户可按任何顺序发送请求,并可在应用程序要求之外的不同阶段不止一次提交或根本不提交参数。
  3. 用户交不限于使用一种Web浏览器访问应用程序,这导致大量各种各样的工具可以协助攻击Web应用程序。

绝大多数针对Web应用程序的攻击都涉及向服务器提交信息:

  1. 更改隐藏的HTML表单字段提交的产品价格,以更低价格欺诈性购买。
  2. 修改在HTTP Cookie中的会话令牌,支持另一个验证用户的会话。
  3. 利用应用程序处理过程中的逻辑错误删除某些正常提交的数据。
  4. 改变由后端数据库处理的某个输入,从而注入一个恶意数据库查询以访问敏感数据。

关键问题因素

  1. 不成熟的安全意识
  2. 独立开发
  3. 欺骗性的简化
  4. 迅速发展的威胁形势
  5. 资源与时间限制
  6. 技术上强其所难
  7. 对功能的需求不断增强

开发人员的技术能力,开发时间的限制,开发资源的有限利用,单一框架多程序开发使用,大量增加第三方插件,为实现功能对数据库或程序直接进行二次开发而忽视二开的安全措施,以上这些种种行为大大增加了安全问题的出现率。

新的安全边界

Web应用程序的广泛应用使得典型组织的安全边界发生了变化,以往我们关注防火墙与防御主机,而现在我们应该更关注Web应用程序本身。

Web应用程序接收用户输入的方式多式多样,数据传输的方式也多式多样,这每一步都是潜在攻击的关口,尤其是PHP,Java,JS这些语言和平台的“聚合”,每一个连接方式都成为了攻击关口。

于是站点的安全边界从服务器本身延伸到了第三方插件,聚合接口,API,某一行代码,跨域连接方式。

Web应用程序安全边界发生变化的另一原因,在于恶意攻击者利用一个良性的易受攻击的应用程序攻击任何访问它的用户,并控制用户的浏览器,如果用户位于企业内部,那么从用户的可信位置攻击者可向本网络改动攻击。

Web应用程序安全的未来

目前网络上的Web应用程序仍然充满了漏洞,整个行业也没有统一而成熟的意识。

但随意着行业的发展,各种漏洞也在被不断的修复,现有的漏洞也变得更难以发现和利用。

而攻击目标也由传统的服务器端应用程序转向用户应用程序。


版权所有,转载请注明出处。

转载自 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序 | XDY.ME@Dy大叔的日常

《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序的更多相关文章

  1. 黑客攻防技术宝典web实战篇:核心防御机制习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 黑客攻防技术宝典web实战篇是一本非常不错的书,它的著作人之一是burpsuite的作者,课后的习题值得关注 ...

  2. 黑客攻防技术宝典web实战篇:解析应用程序习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 当解析一个应用程序时,会遇到以下 URL:https://wahh-app.com/Coo ...

  3. 黑客攻防技术宝典web实战篇:工具web服务器习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 在什么情况下 Web 服务器会显示目录列表? 如果请求某目录的 URL 且满足以下条件,W ...

  4. 黑客攻防技术宝典Web实战篇(二)工具篇DVWA Web漏洞学习

    DVWA是一个学习Web漏洞的很好的工具. DVWA全程是Damn Vulnerable Web Application,还有一个跟它一样好的工具尽在http://www.360doc.com/con ...

  5. 黑客攻防技术宝典Web实战篇(二)工具篇

    扫描工具.中间攻击工具.加密解密工具等. 1 TM Thread Module 2 burpsuite 代理.中间攻击.repeatur.spider.暴力破解(intrude).加密.解密.扫描器 ...

  6. 黑客攻防技术宝典Web实战篇(一)Web应用程序技术基础

    在开展Web应用程序渗透测试之前请先了解下面列出的这些内容,如果不是很懂的话,请读David Gourley & Brian Totty的HTTP权威指南也叫HTTP:The Definiti ...

  7. 黑客攻防技术宝典web实战篇:攻击应用程序架构习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 假设受攻击的应用程序使用两台不同的服务器:一台应用程序服务器和一台数据库服务器.已经发现一 ...

  8. 黑客攻防技术宝典web实战篇:攻击其他用户习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 在应用程序的行为中,有什么“明显特征”可用于确定大多数 XSS 漏洞? 用户提交的输入在应 ...

  9. 黑客攻防技术宝典Web实战篇(三)web攻击方式总结

    web攻击的手段无非就是使服务器资源耗尽,使服务器无法接收正常请求. 一.DDos攻击 二.DRDos攻击 三.慢攻击 与Ddos攻击相反,慢攻击并不是以多取胜,而是靠保持连接.

随机推荐

  1. Glide实现查看图片和保存图片到手机

    两种方式, 推荐方式一 方式一 downloadOnly 创建一个 ImageActivity public class ImageActivity extends AppCompatActivity ...

  2. restful知识点之二restframework视图

    restful协议理解:面向资源开发 restful协议 ---- 一切皆是资源,操作只是请求方式 ----book表增删改查 /books/ books /books/add/ addbook /b ...

  3. 面向对象之property

    property功能 以调用数据属性的方式(不用加括号)调用方法 方法定义成数据属性(方法本应该是动词) # 定义property之前 class People: def __init__(self, ...

  4. maven项目怎么引入另一个maven项目

    yi      最近在做项目的时候,遇到多模块(mudul)开发,里面的maven包相互引用,刚开始不知道怎么导入,费了好大尽总算搞定了.把遇到的问题记录下. 1.怎么导入依赖的maven模块 选择I ...

  5. data-* 自定义数据属性 遇到的坑

    除非data-*自定义数据属性的值是固定不变的,否则最好不要把data-*作为查询条件. 例子: <div data-index="0">hello</div&g ...

  6. ubuntu安装最新版node和npm

    1.先在系统上安装好nodejs和npm           sudo apt-get install nodejs-legacy sudo apt-get install npm     2.升级n ...

  7. 使用jQuery操作input的value值

    表单控件是我们的重中之重,因为一旦牵扯到数据交互,离不开form表单的使用,比如用户的注册登录功能等 那么通过上节知识点我们了解到,我们在使用jquery方法操作表单控件的方法: $(selector ...

  8. jbd2/dm-2-8 io太高

    用iotop查看发现[jbd2/dm-2-8]几乎占用了99%的io使用率,但是却没有输入输出 后来上网查找,网上有人说是个内核bug,需要升级内核,或者降低jdb2的提交次数,即重新挂载磁盘 添加c ...

  9. Long Wei information technology development Limited by Share Ltd interview summary.

    Long Wei information technology development Limited by Share Ltd interview summary. I take part in c ...

  10. cmd:相关命令和笔记

    (1)查看git版本:git --version (2)