浙江省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. 如何实现多个接口Implementing Multiple Interface

    4.实现多个接口Implementing Multiple Interface 接口的优势:马克-to-win:类可以实现多个接口.与之相反,类只能继承一个超类(抽象类或其他类). A class c ...

  2. java中时间的规范是按美国,SimpleDateFormat怎么处理

    题目3.2: 如果时间的规范是按美国,怎么处理? import java.text.ParseException;import java.text.SimpleDateFormat;import ja ...

  3. BlockingCollection实现生产者消费者

    很简单的代码,看注释 class Program { private static ManualResetEvent _manualResetEvent = new ManualResetEvent( ...

  4. JWT&RSA实现单点登录(详细介绍)

    今天给大家讲一下基于JWT&RSA的单点登录(Single Sign On,简称SSO)解决方案 概念 首先要了解几个概念 单点登录(Single Sign On) JWT RSA 背景 为什 ...

  5. C++五子棋(一)——开发环境

    开发环境 环境准备 Visual Studio Windows EasyX图形库 素材文件 素材文件已经准备了,点击此处获取 百度网盘链接 提取码:su6p 创建项目 打开Visual Studio ...

  6. 在边缘计算场景中使用Dapr

    Dapr 是分布式应用程序可移植.事件驱动的运行时, 这里有几个关键字,我们拆开来看一下: 分布式: 代表共享或是分散,在云原生应用上体现为微服务,在边缘计算场景中代表分散的模块,可以做积木式拼接. ...

  7. SQL语言学习-DQL条件查询

    条件查询 1. where子句后跟条件 2. 运算符 * > .< .<= .>= .= .<> * BETWEEN...AND * IN( 集合) * LIKE: ...

  8. docker入门_docker安装

    docker入门_docker安装 ubuntu 安装 curl -sSL https://get.daocloud.io/docker | sh # 官方安装脚本自动安装 systemctl ena ...

  9. Java函数的学习

    函数的定义 - 定义的位置:定义在类的内部 - 组成部分: 函数修饰符 类型 函数名(形式参数){ 局部变量: 注释: 函数体: } 函数的调用 - 调用函数时使用 : `函数名():` - 函数在执 ...

  10. nodejs使用jquery风格环境安装

    BEGIN; 1.npm install jQuery 注意:是jQuery,不是jquery! 2.npm install jsdom 注意:直接执行会安装错误,必须先指定安装版本! 解决:修改pa ...