浙江省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. 【Android开发】【数据库】LitePal 数据库的使用

    一,导包 dependencies { ...... // LitePal的包 compile 'org.litepal.android:core:1.3.1' ...... } 二,创建bean类 ...

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

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

  3. java中封装encapsulate的概念

    封装encapsulate的概念:就是把一部分属性和方法非公有化,从而控制谁可以访问他们. https://blog.csdn.net/qq_44639795/article/details/1018 ...

  4. 单例设计模式(Singleton)

    一.单例设计模式介绍 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例, 并且该类只提供一个取得其对象实例的方法(静态方法) 例如:Hibernate的Se ...

  5. Python找出列表中的最大数和最小数

    Python找出列表中数字的最大值和最小值 思路: 先使用冒泡排序将列表中的数字从小到大依次排序 取出数组首元素和尾元素 运行结果: 源代码: 1 ''' 2 4.编写函数,功能:找出多个数中的最大值 ...

  6. SpringMVC的数据响应-回写数据

    1.直接返回字符串 其他具体代码请访问chilianjie @RequestMapping("/report5") public String save5(HttpServletR ...

  7. LC-844

    给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true .# 代表退格字符. 注意:如果对空文本输入退格字符,文本继续为空. 示例 1: 输入:s = &qu ...

  8. C语言求最大公约数最小公倍数(多种方法)

    前言 这个求解方式多样化,灵活变动,但是,网上没有很好的资源和很全的代码,特此练习,敲打后,总结成本片文章. 单一求解 一.最大公约数 1.穷举法(最简单求解方式) 利用除法方式用当前的数字不断去除以 ...

  9. OSPF 路由协议详解(一)

    (文章目录) ospf 协议是网络层协议 此篇文章适合有一定网络基础的人 ospf 协议最多应用在企业网络中,针对于运营商网络并不是特别的适用,端口号为 89 通过 IP 进行数据的转发 ospf 基 ...

  10. 【直播回顾】OpenHarmony知识赋能第四期第三课——I2C驱动开发

    3月24日晚上19点,​知识赋能第四期直播的第三节课<OpenHarmony标准系统HDF框架之I2C驱动开发>​,在OpenHarmony开发者成长计划社群内成功举办. 本期课程,由​拓 ...