尝试审了一下某个基于springboot的博客系统,学到了一点关于springboot的小知识,记一下。
springboot不需要配置tomcat,自带tomcat,用maven通过pom.xml直接安装就行了,运行也可以直接运行,但上传jasp文件基本无法解析,解析要单独配置
找控制器
- 我这个还挺好找的,直接有个文件夹名字叫controller,文件名里也带了controller。
- 一般来说,在文件里都会有
@Controller
这样的注解,下面就会有@requestmapping
的注解,用来展示http请求的路径(大概是这样叫吧)或者@ResponseBody
用来将数据写入响应对象的主体 - idea里,打开spring项目后,他会自动分析springboot的mvc结构,如图:
- bean,用来存放数据;dao,对数据库进行增删改查;servlet,对用户的请求进行处理和响应;util,连接数据库;filter,过滤器,一般用来进行字符过滤等等操作
找前端文件、spring配置文件等
一般在项目目录/src/main/resources/
下的某个文件或文件夹里
其他例子
之前复现了致远sursenServlet的fastjson,环境没删,想拿着玩一下,就试着跟了一下致远的登录过程,主要是找控制器的过程(没有利用idea、everything等工具,纯手撸,懒人的winserver虚拟机没装东西是这样的)还是很有意思的,可以做以后的参考。
拉跨操作
首先是来到前端登录页面,看前端我们可以知道,main.do?method=login
就是处理登录的位置,正好,web目录下又有一个main的文件夹,然后我就想当然地点进去了,在main文件夹中,又好死不死有login这个文件夹,进去一看,login_header.jsp和一堆css,然后看login_header.jsp,发现包含了common文件夹下的某jsp文件(环境不在自己电脑上,忘了哪个文件了),发现import了com.seeyon.ctp.xxxx这种包,然后找com文件夹找不到,卒
正常操作
- 找开发手册:http://open.seeyon.com/book/ctp/summary/portal-manual.html(用来了解项目结构)
- 找web.xml,一般控制器和过滤器都会在里面进行注册
- 通过刚刚的web.xml找到相应的文件夹或jar包,jar包一般在WEBINF/lib文件夹里(坑爹致远,jar和jsp一起用,萌新差点找不到路)
- 最后就是把jar文件一个个反编译看一遍哪里有logincontroller
离谱的是,我在一众ctp-xxx.jar包里翻了好几遍,最后在seeyon-common.jar(好像是这个名字)里找到了登录的控制器。
登陆控制分析
细节记不清了,但大致操作是校验,如果登录有问题(密码错误等)会返回一个自定义的Exception,然后通过这个Exception返回相应的错误代码,然后将错误代码对应的中文提示通过ajax(应该是这个,javascript不懂)展示到前端,而展示框平时为隐藏
总结
从0开始审java,学到的东西还是挺多的,但由于没做过开发,所以一些springboot的基础知识啥的都得恶补。上面的分析看起来也是挺辣眼睛的,希望大佬轻喷。
- 本文作者: Sn1pEr
- 本文链接: https://sn1per-ssd.github.io/2021/08/17/java代码审计笔记/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!