首页 > 其他分享 >真刑!几行代码端了整个教务系统。。

真刑!几行代码端了整个教务系统。。

时间:2023-06-13 11:24:47浏览次数:44  
标签:en 教务 xxx 几行 漏洞 信息 拼接 真刑 null

作者:lyc
来源:https://www.freebuf.com/vuls/358037.html

今天给大家伙分享一个网络安全的案例,程序员和网安同学都可以看看,

前言:本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担

漏洞成因

事情的起因是这样的,在某一天我用谷歌做信息收集的时候:inurl:xxx.edu.cn pdf,突然查找到这样一份pdf文件,看完整个人都笑出了花,有位同学转专业,被学校调剂错了,然后被公示出来,学号和sfz都泄露了。

接着我就好心的找了一下他们学校的统一登陆的地方,发现初始登陆的密码是sfz的后六位。

直接登陆成功了,真是我的好兄弟啊。

推荐一个开源免费的 Spring Boot 实战项目:

https://github.com/javastacks/spring-boot-best-practice

漏洞发现

进入之后发现,只有日常事务这一个模块能登陆进去,先进去看看的。

进入之后测了很多地方,sql注入,文件上传之类的漏洞是统统没有啊,还有很多应用居然没有权限,但是她提醒我没有权限这一点,让我想到,会不会有未授权,但是抓包测试半天都没有成功。

但是好在天无绝人之路,我突然看到一个功能点,反馈这个功能点。

输入了一些内容之后,抓取数据包看了一下。

POST /api/apps/feedback HTTP/1.1
Host: xxx.xxx.xxx:80
Content-Length: 79
Accept: application/json, text/plain, */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.41
Content-Type: application/json;charset=UTF-8
Origin: http://xxx.xxx.xxx:80
Referer: http://xxx.xxx.xxx:80/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,ko;q=0.5,zh-TW;q=0.4
Cookie: sid=7e670c0c-9529-4a1b-87b6-6c6aec4edbc1
Connection: close

{"jybh":"d997E5ee-17B6-6C9A-13c1-83EAFE09F831","bt":"1","yddh":"11","jynr":"1"}

是这样一个数据包,也没有注入点之类的,感觉没啥东西啊,想着就把/api/apps/feedback这个直接拼接到url上看看,因为看到api就会让人想到信息泄露之类的。拼接上去之后,告诉我缺少pageNum这个参数,我把这个参数拼接上去。

结果又告诉我缺少pageSize这个参数。

全部拼接上去之后发现,是一条学生的信息。

改变这个pageNum和pageSize后面数字的大小可以看到更多信息,但是只有几个学生有反馈问题,得到的信息泄露少之又少,就只要这么一点点,够谁吃啊,再来一罐,一人一罐(刘德华bushi)。

漏洞深挖

虽然说挖到这样一个漏洞,但是毫无作用啊,感觉到有些挫败的时候,突然想到,这个信息泄露肯定是整个系统的问题,找一个学生信息多的地方,拼接url,看看能不能泄露的更多。

直接找到个人信息这一块,编辑然后抓包看一下。

观察一下我抓到的这个数据包,首先我想到上面拼接语句的时候,是直接url发送数据的,所以请求方法应该是GET,并且我之前请求的时候是没有body这个部分的,所以body也要删除,然后拼接上pageNum和pageSize这两个参数。

Content-Length: 748
Accept: application/json, text/plain, */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.41
Content-Type: application/json;charset=UTF-8
Origin: http://xxx.xxx.xxx:80
Referer: http://xxx.xxx.xxx:80/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,ko;q=0.5,zh-TW;q=0.4
Cookie: sid=7e670c0c-9529-4a1b-87b6-6c6aec4edbc1
Connection: close

{"yhbh":"xxxxxxxxxxxx","xm":"xxx","nc":"1","zt":"0","pxh":0,"yddh":"189xxxxxxx","dzyx":"xxxxxxxxxxxx","qq":null,"wechatUnion":null,"wechatOpenid":null,"salt":"test","xbm":"1","yhlx":"0","tx":"xxxxxxxxxxxx_avatar","pf":"defaultSkin","bmmc":"19xx1","bmbh":"xxxxxxxxxxxx","jzbmbh":[],"yhjs":["XS"],"positionIds":null,"userLog":{"bh":"7d83f326-7cee-4ad4-b242-17faef9fdc90","yhbh":"xxxxxxxxxxxx","dlsj":"2023-02-12 23:12:40","tcsj":"2023-02-13 11:22:25","khdczxt":"Windows","khdllq":"Chrome-110.0.0.0","khdipdz":"117.92.247.178","khdlx":"PC"},"gwbh":[],"gwmc":[],"sfzjh":null,"personalSkin":null,"personalSkinThum":null,"value":null,"id":"xxxxxxxxxxxx","nickname":"1","phone":"18xxxxxx","email":"[email protected]"}

但是我修改后发现请求失败了,告诉我没有权限。

感觉好像还是有地方差点意思,发现直接语句的后面只拼接了三个目录,那我尝试也只拼接三个目录试试呢。

终于这一次出现了别的学生信息,这里的话可能是五层目录没有权限,但是三层目录有权限,导致了信息泄露。

然后我修改pageNum和pageSize这两个参数的大小,结果测试后pageNum=1,2,3,4,5pageSize=1000的时候,分别泄露不同的一千个人的信息,pageNum后面的数字超过5之后,就没有信息了(这个学校的学生可能就这么多了)。并且pageSize后面的数值太大会造成超时。

所以我成功获取了全校四千多名学生的姓名、班级、学号、邮箱、sfz等信息(厚码码死谢谢)

最后提交edusrc,做一个守法公民。

漏洞总结

1、肯定还是要做好信息收集,有的时候获得了账号比没有账号好出漏洞。

2、挖漏洞的时候一定要坚持住,这套系统我来回测了好几遍才出来这个漏洞,有的时候坚持也很重要。

3、看到有api的时候,就尝试去拼接一下,很多时候就会出现一些其他功能点,或者信息的泄露。

近期热文推荐:

1.1,000+ 道 Java面试题及答案整理(2022最新版)

2.劲爆!Java 协程要来了。。。

3.Spring Boot 2.x 教程,太全了!

4.别再写满屏的爆爆爆炸类了,试试装饰器模式,这才是优雅的方式!!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!

标签:en,教务,xxx,几行,漏洞,信息,拼接,真刑,null
From: https://www.cnblogs.com/javastack/p/17477011.html

相关文章

  • 教务管理系统之pom.xml
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/......
  • 几行Python代码打造自己的磁盘垃圾文件清理器
    本文假设某些特定类型的文件和大小为0的文件为垃圾文件,可以自由扩展代码的列表,也就是垃圾文件的类型。fromos.pathimportisdir,join,splitextfromosimportremove,listdir,chmod,statimportsys#指定要删除的文件类型filetypes=['.tmp','.log','.obj','.txt']d......
  • 几行代码教你美化excel
    数据统计我们可以很方便地用python计算,但是数据统计好后,呈现给领导或客户时,还是以excel为主,pandas直接生成的excel太丑,不符合福报人的品位,本文教大家一步步变美。01背景先看丑的,通常pandas一行代码就能生成excel,如图:df.to_excel(xlsx_path,header=False)01准备通常python读取ex......
  • 网站都变灰了,几行代码可以实现
    前言这两天,我们经常逛的好多网站、app首页都变灰了,原因大家应该都知道了网站变灰①B站②爱奇艺③腾讯视频④csdn⑤百度怎么实现的呢?难道这些网站开发商在网站开发的时候都准备一套灰色主题的UI么?好奇心的驱使下,开始疯狂的询问度娘,果真还是找到了这么一个网站。......
  • python 中读入文件跳过文件的前几行
     001、[root@PC1test]#lsa.txttest.py[root@PC1test]#cata.txt##测试文件1abcd2abcd3abcd4abcd[root@PC1test]#cattest.py##测试程序in_file=open("a.txt","r")in_file.next()......
  • 写几行代码,了解响应式原理
    作者:袁首京原创文章,转载时请保留此声明,并给出原文连接。作为当下的开发人员,无论是不是前端,可能都会频繁的与React、Vue、Svelte、Solidjs等等打交道。也许你已经很清楚它们背后的运作原理,那不必往下看了。如果还不是很清楚,那咱们可以一起写几行代码,来瞅一眼这些响应式框架......
  • JS获取table中选中某几行其中某一列数值的总和
    JS获取table中选中某几行其中某一列数值的总和一、思路1.如何获取某几行,并且可以实时变化数值?实现如下:$("input[type='checkbox']").click(function(){alert($(this).val());})2.接下来就是实现当每次触发点击事件以后,然后,计算其中的值,实现如下:<script>$(functi......
  • Linux系统如何显示文件的最后几行内容?
    在Linux系统中,我们可以使用tail命令来显示文件最后几行,这个命令用来显示文件的最后几行至标准输出,tail命令默认打印其相应文件的最后10行,我们也可以自行设置,以下是详细......
  • 几行python代码完美操控手机
    最近一直成谜于python代码带来的便利,今天打算学习下用python代码来控制操作手机,首先需要利用adb,通过安卓调试桥来达到目的,其实也可以用appium来实现,不过appium多数用在自动......
  • 用几行Python代码轻松抓取任何网站
    如果你正在寻找最强大的Python抓取工具?不要再看了!这一行代码将帮助你立即启动并运行。ScrapeasyScrapeasy是一个Python库,可以轻松抓取网页并从中提取数据。它可用于......