从前从前,在web应用安全世界里,有一个权威性的名词叫做OWASP。
OWASP是一个组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信赖软件。同时这个组织也很神奇,它不依附于任何一个企业和财团。也正是这个原因。这个组织提供的和开发的所有文件和设施都不受商业的影响,同时这个组织也支持商业技术的合理使用。
这个组织的所有成果中,令人印象最深的就是OWASP Top 10的发布。OWASP Top 10一共发布过两个版本,一个是2010版本,另一个是2013版本。
OWASP Top 10指的是针对当前的WEB应用来说,造成的威胁性最大的十大漏洞。在这篇文章接下来的内容。小白就以2013版本的OWASP为例子,为各位看客一一道来,十大威胁性漏洞竟是何物。
Top 10 未验证的重定向和转发
重定向的意思很简单,其实就是当你访问网站A的时候,网页会从网站A跳转到网站B,这个跳转的过程就叫做重定向。
我们来举一个小例子
比如说有一个网址是:
http://www.xiaobaike.ren/index.html?url=study.html
我们点击这个网址之后,问号后面的参数就开始发挥作用了,它会自动跳转到url后面的页面,就是说会跳转到
http://www.xiaobaike.ren/study.html。
可能就会有人说了,这应该是很正常的呀,哪里会造成危害呢?其实不然,如果攻击者将url后面的study.html改成www.evil.com(一个恶意网站)呢?
如:
http://www.xiaobaike.ren/index.html?url=www.evil.com。
这个时候,如果有人点击了之后,就会被强迫地访问www.evil.com这个恶意的网站。如果这个恶意网站是一个模仿www.xiaobaike.ren钓鱼网站呢?有多少人会因此而上当受骗。
可能有些人又会说了,看,伪造后的url太明显了,稍微注意点的人都会知道这个地址不正常。确实,但是如果我给url加上一个url的编码变成下面这个样子,那么,又有多少人能过够发现呢?
http://www.xiaobaike.ren/index.html?%75%72%6c%3d%77%77%77%2e%65%76%69%6c%2e%63%6f%6d
小白这里举2个存在过该漏洞的案例:
1.人人网登陆页面URL重定向漏洞(WooYun-2011-01105)
2.冒险岛游戏商城URL重定向漏洞(WooYun-2013-21857)
Top 9 使用含有已知漏洞的组件
顾名思义,使用含有已知漏洞组件的意思是程序员在开发WEB应用的时候使用了一些含有漏洞的组件,比如含有漏洞的框架库。
实际上在我们看来这不应该是一个危险性很大的漏洞,只要开发团队及时更新组件/库。然而实际上这是一个很大的问题。因为大多数的开发团队并不会把及时更新组件作为他们工作的重心。在很多情况下,开发者完全不了解他们所使用的全部组件,更别说更新组件了。组件之间的依赖性使这变的更加糟糕。
组件漏洞的威胁性到了什么程度了呢?大多数组件在程序中一直是以最高管理员的权限运行的,所有一旦存在组件漏洞,是相当致命的。比如说Apache和Spring组件中曾存在认证绕过和远程代码执行漏洞。这两个组件在2011年的时候被下载了2200万次!
实际案例
1.某省移动动感地带官网存在struts2漏洞,导致服务器直接被控制(WooYun-2014-72631)
2.某政务智能搜索引擎第三方组件漏洞导致任意盘符目录浏览,导致敏感信息泄露(WooYun-2014-71256)
Top 8 跨站请求伪造(CSRF)
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
上面这段话是什么意思呢,举一个很简单的例子大家就明白啦。
比如说有一个正常网站
http://www.xiaobaike.ren
上面有一个用户叫做小白。如果小白想改修改自己的账号信息,他只需要在已登陆的状态下让浏览器向服务器发生一个请求:
http://www.xiaobaike.ren/mmxg.php?password=123456
就可以将自己的密码修改为123456。
这个时候,有一个不怀好意的人叫做小黑,他想要盗取小白在http://www.xiaobaike.ren 的账号密码。最简单的方式就是让小白的浏览器去想服务器提交
http://www.xiaobaike.ren/mmxg.php?password=123456
这个请求。于是小黑就将这个连接发给了小白,并告诉小白这个网站上这个页面正在大减价。小白一看是自己平时上的网页呀,感觉并不会有问题,就傻傻的点了下去。这时候小白的浏览器就像服务器提交了这个修改密码的请求,于是,小白就悲剧了。。
这个过程就叫做CSRF跨站请求伪造。
实际案例
1.新浪微博存在CSRF漏洞,点击恶意用户的链接自动发微博,自动关注(蠕虫)(WooYun-2016-176396)
2.微信公众号管理员后台点击我发的消息链接,公众号介绍等设置就会被修改( WooYun-2015-136903)
她点击后介绍被修改成"hacked by koreans"
Top 7 功能级访问控制缺失
访问控制确实其实很好理解,就是网站的开发人员没有对网站的敏感目录进行权限的限制,导致任何人都可以访问这个敏感的url。
比如说网页编辑器ewebeditor就存在这个问题。它的数据库所对应的url为:
http://www.example.com/ewebeditor/db/ewebeditor.mdb。
这个网址并没有做权限的控制,导致只要知道了url,就能够下载它的数据库。这个数据库中存了敏感的后台管理员账号信息。一旦被攻击者获取,该网站所在的服务器很有可能就因此直接沦陷。
实际案例
1.搜狐内部IT微信平台,后台未授权访问,管理功能可以直接操作(WooYun-2016-189093)
2.京东某系统未授权访问(项目源码泄露)导致命令执行/成功登录终端(WooYun-2016-180982 )
Top 6 敏感信息泄露
针对与敏感信息泄露来说,一般是发生在对应该采取加密措施的数据没有进行加密。或者是在加密的情况下,采用的脆弱的加密算法,加密形同虚设。比如说,用户的信用卡信息就应该以加密的形式存放在数据库中。
然而这种常识性的东西在某些时候却往往不被重视。如之前的携程数据库被入侵时间,网易安全时间,大量的用户信息被泄露,包括敏感的银行卡信息等。全部以明文的方式存放在数据库中,直接被人家一票全部打包带走~
实际案例
1.河北航空某漏洞导致大概13w个人信息泄露(包括身份证/真实姓名/手机号码/邮箱/家庭地址/航班信息等)(WooYun-2016-203562)
2.阳光保险某站可遍历32W车主信息泄露(姓名\城市\车牌号\手机号\部分身份证号)(WooYun-2016-181733 )
Top5~Top1下一篇文章继续为大家介绍。
Ps:喜欢的留个赞b( ̄ ̄)d ~也可以关注专题:黑客师。
下一篇文章:小白客带你走进黑客世界11之WEB应用常见漏洞介绍(下)