浙江省HVV初体验

此次参加的HVV是edu分会场,总的来说是对HVV有了一个初步的认识,了解实战和靶场练习之间存在的巨大鸿沟。

经历了这次HVV,对于渗透测试有了更深一步的理解。渗透测试的本质就是信息收集。

信息收集的广度决定了攻击的广度

不管是进行SRC漏洞挖掘,还是做项目渗透测试,还是打红蓝对抗,信息收集很重要。比如:

1.确定资产(它有哪些域名、子域名、C段、旁站、系统、微信小程序或者是公众号),确定好了以后,就是常规的指纹识别(中间件、网站、目录、后台、功能以及分析功能映射出来的相关漏洞)。比如你的面前出现了一个登录页面,你会怎么去处理,就拿我在HVV期间的案例举例吧。我找到某高校的一个后台登录框后,首先采用万能密码去测试一下输入框有没有注入,如果没有就是试admin/admin这种弱口令了(弱口令是百试不爽的方式之一,在红蓝对抗中,弱口令攻击占3到4成左右,因为只要你拿到高校的VPN账号以后,进入内网,那不是直接一顿乱杀了吗),在试的这个期间如果运气好进去了自然最好,其实试的期间主要是查看是否存在账号锁定策略、密码不正确、不存在此用户名、验证码等等。如果没有验证码阻碍,爆破是肯定的没得说的,但是作为高校,这些低级错误肯定不会犯,甚至还会层层设卡,抓包发现登录框的密码,采用了二次MD5然后加盐加密,基本上是没有什么办法了。所以只能采用社工账号密码了,高校的用户名基本为学号,密码默认基本为身份证后六位,大多数同学是不会去改这个默认密码的。我们通过了Google,github找到了相关的敏感数据,最终成功进入了后台。

2.扫目录,目录扫描也是一个存在惊喜的地方,说不定能扫描到后台未授权访问的链接、备份文件、编辑器、敏感信息等。平时对后台登录的网址看多了,常规的路径/manager/html、/Login、/login.php、/login.aspx等等,甚至不用工具去跑,直接去就能猜。但其实在这次HVV中,遇到了很头疼的问题,用工具去扫目录的时候,不仅是我包括我的队友在面对个别高校网站目录扫描的时候,很容易就会被ban掉IP了(所以推荐除非是实在没有头绪的时候再进行这一步,虽然HVV中不会封代理池,但是一直更换IP也很麻烦)。头痛的背后也有一定的收获,比如在对某高校的网站进行目录扫描后,发现了ico图标(千万不要小看这个ico图标),拿到这个ico图标后,我可以直接扔进fofa里面去一顿搜查,查什么呢,去查通用框架,找到通用框架就好办了,再去对其版本进行发掘,然后用CMS通杀库实现通杀。比如我在对我们队的目标进行攻击的时候,发现某高校存在通达OA的版本漏洞。但由于我自己太菜了,尝试了多次也没打进去,最后发现它的版本虽然不高,但是配置修复过的。同样的道理,扫目录扫出类似services服务路径,也可以用同样的方法,通过其组件版本去查CVE,然后对其进行对应的通杀。

知识面的广度决定了攻击的深度

在红蓝对抗中,知识面涵盖得越多,攻得越深。这个就比较考验平时所积累的知识面了。这里就简单拿演练期间的案例来做说明,比如

1.逻辑漏洞,逻辑漏洞是由于一些程序员未考虑到或者贪图省事而造成的逻辑上的漏洞,一般的waf不容易拦截,因此逻辑漏洞和弱口令漏洞都是很多SRC项目中最容易挖出来的漏洞。登录框所存在的最主要的逻辑漏洞就是注册和忘记密码模块。注册模块存在任意用户注册漏洞(这个可以采用抓包改包发包去进行一个批量注册用户);忘记密码模块存在任意密码重置漏洞(这个也同样可以采用抓包改包发包去进行),如在此次红蓝对抗中,我尝试对某美院进行修改密码的尝试,将其手机改成我自己的手机号去尝试修改用户的密码,但是由于过于安全,所以尝试失败,但这也是一个思路。还有越权,越权分水平越权和垂直越权,在此次HVV期间,我误打误撞的发现了学习通的水平越权漏洞(每一条帖子评论都有对应的ID号,删除评论的时候把自己的评论ID替换掉来进行实现水平越权)第二天在询问了分会场裁判是否可以拿分以后,后一天我尝试复现的时候发现已经被修复了,非常难受,错失一个拿大分机会(因为打的是edu分会场,所以学习通这个平台一定有相关的敏感数据泄露的,但被修复了就没办法了)。

2.常用的安全漏洞(XSS、XXE、Sql注入、CSRF、SSRF、文件上传、反序列化、Redis等等),其中在此次HVV期间,我们就用到了sql注入、文件上传、Redis主从复制。sql注入那一个是我们队伍第一个拿分项,队伍大佬采用了sql注入+cookie注入最终拿到了6w条敏感数据;文件上传漏洞也是我们最先想到突破的地方,一找到上传点就开始进行尝试,不放过任何一个上传shell的机会;然后就是redis主从复制,我们队伍队员发现了redis未授权访问导致主从复制获得远程代码执行权限(利用redis-ssrf来进行反弹shell,最后RCE)

最后说一下感想:

作为一个小菜鸟,这七天的攻防演练对我来说有很大的帮助,虽然过程比较艰难,但是也培养了我的漏洞挖掘能力,在以后参加一些SRC项目必定会有很大的帮助。特别是在面对一些登录框的时候,其实去硬刚,通过各种各样的方法去尝试,刚着刚着就成长了;同时也发现了自身的很多不足的地方,基础知识还不够扎实,实战能力更应该多提高多锻炼,多去复现一些常见漏洞案例,去真正了解漏洞存在和利用原理以及怎样去做一个防护措施。

省HVV初体验(edu)的更多相关文章

  1. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  2. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  3. Spring之初体验

                                     Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...

  4. Xamarin.iOS开发初体验

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0

  5. 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...

  6. 【Knockout.js 学习体验之旅】(1)ko初体验

    前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...

  7. 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验

    在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...

  8. 百度EChart3初体验

    由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉ECharts不错,封装的很细,我们只需要看自己需要那种类型的图表,搞定好自己的json数据就OK.至于说如何体现出来,官网的教程很详 ...

  9. Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验

    Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出E ...

随机推荐

  1. java中什么是内部类?它有什么用?如何使用?

    什么是内部类?马克-to-win:一句话:类中还有类.里边的叫内部类, 外边的叫外层类.有什么用?1)像文件夹一样,文件放文件夹里更清晰,内部类放外层类中, 清晰.主要从编程序的逻辑角度出发,有用.比 ...

  2. uni-app中 未收藏和已收藏功能展示

    效果图如下: 未收藏: 已收藏: 代码实现: 1 <view class="jichu"> 2 <view class="name">x ...

  3. Java报错:Failed to execute goal org.eclipse.jetty:jetty-maven-plugin:9.4.26.v20200117:run (default-cli) on project ssm-mybatis-plus: Failure

    修改一下端口就好了,不要用80端口. <plugin> <groupId>org.eclipse.jetty</groupId> <!--嵌入式Jetty的M ...

  4. formdata收集数据

    通常在收集表单的时候我们都要涉及到绑定上传附件,这时候就可以用formdata的形式携带文件流上传给服务器. formData是ajax2.0(XMLHttpRequest Level2)新提出的接口 ...

  5. python---二维数组的查找

    """ 在一个二维数组中(每个一维数组的长度相同), 每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. """ # ...

  6. 序列化器中钩子函数源码分析、many关键字源码分析

    局部钩子和全局钩子源码分析(2星) # 入口是 ser.is_valid(),是BaseSerializer的方法 # 最核心的代码 self._validated_data = self.run_v ...

  7. Java学习day27

    今天跟着做了一个模拟龟兔赛跑的程序 只有一条赛道,乌龟和兔子在同一条赛道上比赛,使用了多线程 为了实现兔子睡觉,在run方法内增加了当前奔跑者是否是兔子的判断且当前奔跑步数是否是10的整数倍的判断,如 ...

  8. javaWeb代码整理03-druid数据库连接池

    jar包: maven坐标: <dependency> <groupId>com.alibaba</groupId> <artifactId>druid ...

  9. python黑帽子(第三章)

    Windows/Linux下包的嗅探 根据os.name判断操作系统 下面是os的源码 posix是Linux nt是Windows 在windows中需要管理员权限.linux中需要root权限 因 ...

  10. 多线程JUC并发篇常见面试详解

    @ 目录 1.JUC 简介 2.线程和进程 3.并非与并行 4.线程的状态 5.wait/sleep的区别 6.Lock 锁(重点) 1.Lock锁 2.公平非公平: 3.ReentrantLock ...