StudentManager代码审计

admin 2023年5月15日01:36:12评论36 views字数 1380阅读4分36秒阅读模式

前言

看到先知社区有位师傅审计了一个很基础的java项目,很适合刚入门的新手学习java审计,于是参考自行审计了一下并记录过程。

环境准备

  • idea

  • jdk 1.8

  • tomcat 9.0

  • mysql 5.7

  • https://github.com/Hui4401/StudentManager  项目地址

mysql导入sql数据

mysql.exe -uroot -p

create database student_manager;

use student_manager;

source C:/Users/admin/Desktop/StudentManager-masterstudent_manager.sql;

注意目录不要有空格和中文


             StudentManager代码审计

StudentManager代码审计

将dao层的几个文件数据库地址配置成自己本地的

StudentManager代码审计

添加表示为web

StudentManager代码审计

StudentManager代码审计

配置tomcat9.0

StudentManager代码审计

StudentManager代码审计

tomcat去官网下好到本地即可,然后应用程序服务器处配置一下

StudentManager代码审计

StudentManager代码审计

StudentManager代码审计

StudentManager代码审计

StudentManager代码审计


启动项目

环境配置完毕,这时候就可以去审计了

StudentManager代码审计

StudentManager代码审计

StudentManager代码审计

漏洞审计

任意用户登录

先从index.jsp 开始看,这里在验证cookies中是否存在name的值,如果是老师就进入one_page_student,如果是学生就进入student/main.jsp

StudentManager代码审计

可以伪造一下存在的用户,不用登录就可以直接跳转到后台

StudentManager代码审计

StudentManager代码审计

成功实现伪造cookie绕过登录验证

StudentManager代码审计

cookie注入

我们跟进findWithId()函数

StudentManager代码审计

跟进

StudentManager代码审计

发现明显的存在SQL语句拼接

StudentManager代码审计

去验证即可,存在一个盲注,如果语句查询正确就是跳转到login.jsp,错误就是跳到one_page_student

StudentManager代码审计

StudentManager代码审计

任意用户注册

这里check_register负责处理数据,跟进去

StudentManager代码审计

发现他是用session来获取验证码值

StudentManager代码审计

继续查看用例,发现是在code.jsp中,没有去设置失效的时间,这样就可以导致验证码重复使用,造成任意用户批量注册

               

StudentManager代码审计

StudentManager代码审计

StudentManager代码审计

StudentManager代码审计

               

越权改他人头像

此处id值参数可控

StudentManager代码审计

就可以修改任意存在的id值,来造成越权改他人头像

StudentManager代码审计

将我们的id改成root用户,登录root后发现成功被越权修改了头像

StudentManager代码审计

StudentManager代码审计

StudentManager代码审计

删除学生处存在的sql注入

StudentManager代码审计

在 ScoreD.java 的第 26 行,deleteScore() 方法调用通过不可信赖的数据源输入构建的 SQL 查询。通过这种调用,攻击者能够修改语句的含义或执行任意 SQL 命令

StudentManager代码审计

               

getParameter(id)获得请求中的参数,该参数是由name指定的Java中的JSP里边有个特性直接request.getParameter("Parameter");去获取请求的数据,参数中id是通过request.getParameter直接获取。攻击者若在此处写入恶意语句,可能会造成sql注入

StudentManager代码审计

验证发现存在sql注入

StudentManager代码审计

小结

一个非常简单的java审计项目,漏洞百出,还有一些xss什么的,各位可以自行下载尝试,非常适合入门的新手学习。

参考:https://xz.aliyun.com/t/12105


使





bugbounty or redteam

StudentManager代码审计



StudentManager代码审计
交流合作微: James_Rodriguez10101


原文始发于微信公众号(虫洞小窝):StudentManager代码审计

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月15日01:36:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   StudentManager代码审计https://cn-sec.com/archives/1717576.html

发表评论

匿名网友 填写信息