浙江省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. mysql 合并查询结果

     UNION 使用 UNION 关键字是,数据库系统会将所有的查询结果合并到一起,然后去除掉相同的记录:   UNION ALL 使用 UNION ALL,不会去除掉系统的记录:

  2. java基础-java异常处理

    异常* A:异常的概述 * 异常就是Java程序在运行过程中出现的错误.* B:异常的分类 * Error:服务器宕机,数据库崩溃等 * ExceptionC:异常的继承体系  * Throwable ...

  3. Java报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.sirifeng.babytun.dao.GoodsDAO.findById

    前言 最近学vue学得差不多了,想来搭个项目实战一下,结果刚开始搭建SSM框架的时候就来到了我们最喜欢的debug环节 org.apache.ibatis.binding.BindingExcepti ...

  4. python---二叉树广度优先和深度优先遍历的实现

    class Node(object): """结点""" def __init__(self, data): self.data = dat ...

  5. JavaScript学习总结7-BOM

    今天学习了BOM模型,可以利用其来获得屏幕数据,网页历史,以及网页location等数据

  6. ctx.createCircularGradient is not a function

       正确      const grd = ctx.createCircularGradient(75, 50, 50)     grd.addColorStop(0, 'red')     grd ...

  7. SSL及GMVPN握手协议详解

    之前写过一篇文章搞懂密码学基础及SSL/TLS协议,主要介绍了加密学的基础,并从整体上对SSL协议做了介绍.由于篇幅原因,SSL握手的详细流程没有深入介绍.本文将拆解握手流程,在消息级别对握手进行详细 ...

  8. jq大体架构。先记录再慢慢剖析

    //工具方法 Utilities //回调函数列表 Callbacks Object //异步队列 Deferred Object //浏览器功能测试 Support //数据缓存 Data //队列 ...

  9. VSCode 前端常用插件集合

    Visual Studio Code 是由微软开发的一款免费.跨平台的文本编辑器.由于其卓越的性能和丰富的功能,它很快就受到了大家的喜爱. 但工欲善其事必先利其器,以下是本人为前端开发收集的常用的vs ...

  10. 【学习笔记】CDQ分治(等待填坑)

    因为我对CDQ分治理解不深,所以这篇博客只是我现在的浅显理解有任何不对的,希望大佬指出. 首先就是CDQ分治适用的题型: (1)带修改,但修改互相独立 (2)必须允许离线 (3)解决数据结构的题,能把 ...