很久以前写的文章了,发一下:)

本文是我真实的挖洞经历。撰写本文时相关学校已修复漏洞,相关漏洞也提交给了教育漏洞平台。纯粹是挖洞经验的总结和技术分享,由于敏感信息比较多,所以文章里面很多图片已经面目全非了,望理解。。

平时不怎么挖漏洞,前几周的某一个周末,为了兑换教育漏洞平台上的某学校的证书,对该学校官网进行测试,看能否发现漏洞。

登录界面超好看。

看到左下角有一个信息门户帮助手册(下载),我们下载来先看看。

这里我们可以看到有的情况是可以使用工号和学号进行登录了,所以我们有必要花一些时间用学号和工号作为密码测试能否登录。

为了省事我们可以直接看学校的信息公开位置或者谷歌语法一波(Google hack),有的学校因为没有安全意识,会将学生和老师的一些隐私信息放在信息公开网上,比如说奖学金获得者的学号信息这种,这就让我们有了可趁之机。

这里我们找到了一个老师的工号/工号 登录成功,涉及隐私信息的地方我就打码了。

在这个位置我们先看看信息门户网有漏洞不。

可以看到该大学信息门户网的系统使用的是金智教育2010版本的,嗷,这么老的版本,肯定以前是爆出来过漏洞的,继续使用谷歌大法。

大概看了一下,有两个漏洞引起了我的注意,漏洞链接如下:

https://shuimugan.com/bug/view?bug_no=87297

https://shuimugan.com/bug/view?bug_no=84779

接下来的渗透也借鉴了第一个漏洞作者的思路。

第一个漏洞简单来说,在登陆了老版本金智教育的系统之后,我们直接访问http://ip/authorizeUsers.portal?limit=20,可以返回一个json格式的数据,包含教职工的姓名和工号等信息。

这里我们检测一下该大学的信息门户有没有这个漏洞,回车出json。

这里由于我们limit后面设置的数字是20,所以返回了20条数据,同理,我们只要改变limit后面的数字,就可以增加获取到的教职工数据。

第二个漏洞是修改密码,我们访问该大学的修改密码的界面。

可以看出来,虽然说是可以通过两种方式新设密码,但是由于回答问题修改密码的途径之前爆出过漏洞(也就是上面的第二个链接),所以该大学网站的管理员已经删除了通过回答密保问题修改密码的途径。

我们通过查看用户信息的时候,发现用户在注册的时候也没有填写密保问题,可以看出来在这里这个漏洞是无法利用的了。

这时候换一个思路,虽然该大学将这个漏洞补上了,那应该会有大学没有补这个修改密码的漏洞,说干就干,还是谷歌大法,查找使用了这个系统的学校。

我们在找到时候其实就可以发现有的学校的网站已经因为这个系统被挂马变成了澳门赌场了。。。

接着我们挨个测试即可,果然找到了一个粗心的管理员。

访问http://ip/userAttributesView.portal?userId=portal

可以看到管理员设置的自己账户的密保问题的答案。

这里portal是门户管理员的意思,即管理员所对应的ID,如果不正确的话我们可以多试几次,像amAdmin这些,表示网站管理员没有修改自己的默认ID。

紧接着我们到修改密码的界面,修改的账号就是portal

我们在这里输入之前看到的管理员的密保问题答案即可,正确之后进入下一步。

这里的学校也填写刚才的看到的答案。

最后来到直接输入新密码界面

ok,可以看到我们已经可以直接重置管理员的密码了,这里对该学校的测试就到此为止,因为我们是未授权访问,网站管理员的权限可以随意修改学生成绩,并且查看全校师生的隐私信息,可以知道危害极大。

当然我们并不想止步于此,在这里我想到之前那个大学信息门户网有的那个遍历全部师生学号/工号的漏洞,我们只能修改管理员的原因主要是因为管理员账户是网站的关键,还有另外一个原因就是因为我们只知道管理员的id。如果我们知道了所有师生的ID,那么我们是否可以修改全校所有人的信息门户的密码呢?

当然也是想到就做。

只要登录过学校信息门户网的小伙伴应该都知道,登录id实际上就是教师的工号,学生的学号,所以在这里如果我们获得了一个学生的学号,先修改他的密码,利用其登录的cookie,遍历所有人的信息。

于是现在问题变成了如何找到一个登录过校园信息门户网的学号。

借鉴乌云大神的思路,在该学校的百度贴吧里面寻找学号的信息,出乎意料的是,啥也没找到,

很多都是一些兼职,还有快要毕业的PS学姐(懂的都懂)发布的消息,搜索的三十分钟之后我就放弃了。

第二个方法就是谷歌语法,直接 学校名称 学号 intype:xls,就可以找到很多的有学生学号的表格,这种信息大部分都是公开的,我们也可以利用里面的学号实现攻击。

但这里我换了一个思路,百度贴吧找不到,那我们可以用另外的社交工具,比如:QQ

所以在QQ里面直接搜索 学校名称表白墙,盲猜在学校的表白墙上面会有人发布捡到学生卡的信息,到时候借用一下该同学的学号。

果然这条思路也是可行的:

我们利用这位同学的学号进入信息门户网。

修改密码的过程之前讲过一次,这里就不再赘述,毫无悬念的改好密码之后登陆成功。

接着我们尝试读取学校学校师生的ID值,也是用跟之前的那个大学信息门户网相同的方法,读取成功。(随便截了一些图)

嗷,我们通过修改limit后的数值就可以获取到更多的ID值,配合修改已知ID的账户密码漏洞,我们就可以修改学校内任意一个同学信息门户网的密码然后进行登录了,学生和老师的隐私也荡然无存了。

总结一下:

1,搜索引擎很重要,善于学会使用搜索引擎

2,信息搜集并不全是子域名搜集,敏感目录爆破这些,可以换很多种思路,比如QQ群,公司的github等等。

3,遇到问题的时候不要急躁,多反向思考,以及参考前人的意见,很可能你的问题以前的大神已经解决了,谦虚学习。

4,管理自己网站的时候要经常跟着版本更新和及时打补丁,不然很容易会被Nday漏洞打穿

一起加油吧

Nday漏洞组合拳修改全校师生密码的更多相关文章

  1. MySQL修改root账号密码

    MySQL数据库中如何修改root用户的密码呢?下面总结了修改root用户密码的一些方法   1: 使用set password语句修改 mysql> select user(); +----- ...

  2. mac 安装mysql + 修改root用户密码 + 及报Access denied for user 'root'@'localhost' (using password:YES)解决办法

    1.下载MySQL 到mysql的官网http://dev.mysql.com/downloads/mysql/然后在页面中会看到“MySQL Community Server”下方有一个“downl ...

  3. xampp修改mysql默认密码详解

    在这里介绍xampp修改mysql默认密码的大概过程是先利用xampp的phpmyadmin进入修改mysql密码,修改之后我们再修改xampp中phpmyadmin的密码,这样就完整的修改mysql ...

  4. 修改linux用户密码

    对于初学者来说,如何修改linux用户密码也不是件容易的事,其实非常简单,下面举例说明: 如果是以root身份登录,修改root密码.只要输入 passwd 就会出现: New password:  ...

  5. 如何修改Oracle用户密码

    大家如果不知道oracle数据库的密码的话,我们可以通过简单的命令行把密码进行修改. 1.打开cmd 2 在弹出的命令提示窗口输入 set oracle_sid=数据库名称(实例),回车.例如数据库名 ...

  6. 用phpMyAdmin修改mysql数据库密码

    1初始数据库密码为空. 2第一步,点击phpMyAdmin里的用户选项. 3选择root localhost用户名,点击编辑权限. 4此时会出来修改权限的页面,里面可以设置的选项还是比较多的,暂时不管 ...

  7. MySQL忘记了密码登录不进去,用命令符修改新的密码重新登录的方法

    MySQL忘记了密码登录不进去,用命令符修改新的密码重新登录的方法: 1.备份my.ini 2.在my.ini字段里 [mysqld] #socket=mysql skip-grant-tables ...

  8. Myeclipse SVN 修改用户名和密码

    转自:http://blog.csdn.net/chow__zh/article/details/7731497 解决方案: 在Eclipse使用SVN的过程中大多数人往往习惯把访问SVN的用户名密码 ...

  9. 不重启修改mysql root密码

    不重启修改mysql root密码 --------------------2014/09/28 一.一般忘记密码的解决办法,需要重启Mysql1.skip-grant-tables我们常用的方法是使 ...

随机推荐

  1. Cassandra数据模型和模式(Schema)的配置检查

    免责声明 本文档提供了有关DataStax Enterprise(DSE)和Apache Cassandra的常规数据建模和架构配置建议.本文档需要DSE / Cassandra基本知识.它不能代替官 ...

  2. Spark Standalone模式 高可用部署

      本文使用Spark的版本为:spark-2.4.0-bin-hadoop2.7.tgz. spark的集群采用3台机器进行搭建,机器分别是server01,server02,server03. 其 ...

  3. MSSQL 指定分隔符号 生成数据集

    DECLARE @xml VARCHAR(MAX)='磨毛:1 缩率:2 干磨:3 湿摩:4 水洗牢度:5 手感:6 防水:7 PH:8 日晒:9' SET @xml= '<root>'+ ...

  4. Java的图形打印

    1.菱形 复制代码 package Java_Learn.File; public class Main1 { public static void main(String[] args) { pri ...

  5. 使用邮箱验证登录后台ssh,再也不怕被人攻击服务器了!

    目录 前言 安装教程 前言 之前写过使用用户名密码,以及扫描二维码方式验证后台登录ssh的文章:[点击跳转]. 但是这样还是不太保险,也存在被人利用的情况,因为别人破解你的后台你压根不知道.因此想到使 ...

  6. null列的值不参与比较

    假如数据库有表emp: empno name   age 001      lucy      22 002      lily        null 003      lilei       nu ...

  7. CSS九宫格带边框的多种实现

    九宫格,每个单元格滑动上去显示完整边框. 本身考察的知识点并不复杂,margin负值的遮挡,以及流布局中relative的超越. 代码固定部分是这样的, <div> <div> ...

  8. 理解 Linux 的硬链接与软链接(转)

    Linux 的文件与目录 现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用.在 UNIX 系统中,操作系统为磁盘上的文本与图像.鼠标与键盘 ...

  9. Spring源码之注解的原理

    https://blog.csdn.net/qq_28802119/article/details/83573950 https://www.zhihu.com/question/318439660/ ...

  10. 关于vm.min_free_kbytes的合理设置推测

    前言 之前系统出现过几次hung住的情况,没有oom,也没有其它内存相关的信息,而linux设计就是去尽量吃满内存,然后再回收清理的机制 探讨 目前这个参数还没有找到合适的处理这个预留的参数,一般也没 ...