框架
Spring boot
常见注解:
一、@Controller注解:标注该类为controller类,可以处理http请求。@Controller一般要配合模版来使用。现在项目大多是前后端分离,后端处理请求,然后返回JSON格式数据即可,这样也就不需要模板了。
二、@ResponseBody注解:将该注解写在类的外面,表示这个类所有方法的返回的数据直接给浏览器。 @RestController 相当于 @ResponseBody 加上 @Controller
三、@RequestMapping注解:配置URL映射
,可以作用于某个Controller类上,也可以作用于某Controller类下的具体方法中,说白了就是URL中请求路径会直接映射到具体方法中执行代码逻辑。
四、@PathVariable注解:接受请求URL路径中占位符的值,示例代码如下图所示:
@Controller
@ResponseBody
@RequestMapping("/hello")
public class HelloController {
@RequestMapping("/whoami/{name}/{sex}")
public String hello(@PathVariable("name") String name, @PathVariable("sex") String sex){
return "Hello" + name + sex;
}
}
五、@RequestParam注解:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解),常用于POST请求处理表单。
Mybatis
常见路径src/main/resources/mapper中,配置文件命名为xxxMapper.xml
Swagger
swagger就是一个在你写接口的时候自动帮你生成接口文档的东西
Thymeleaf
模板引擎中的一种,Thymeleaf模板文件后缀名就是.html, 制作完成后,我们可以直接打开浏览效果
实战
信息收集
Druid 登录暴力破解
/druid/login.html
Spring boot Actuator未授权访问
/actuator
字典
Mvc模式
MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)
https://www.cnblogs.com/java-123/p/9174547.html
Javaweb目录
src/main 下面有两个目录,分别是java和resources
一、Java:存放的是java代码
二、Resources:存放的是资源文件,比如:html、js、css、配置文件
在java目录下还有其他常见的目录
annotation
放置项目自定义注解
Controller
存放控制器,接受从前端传来的参数,对访问控制进行转发、各类基本参数校验或者不复用的业务简单处理等
dao
数据访问层。与数据库进行交互,负责数据库操作,在mybatis框架中存放自定义的Mapper接口
entity
存放实体类
Interceptor
拦截器
Service
存放服务类,负责业务模块逻辑处理。Service层中有两种类,一是Service,用来声明接口;二是ServiceImpl,作为实现类实现接口中的方法
Utils
存放工具类
Filter
存放过滤器
在Resources目录下的目录
Mapper
存放mybatis的mapper.xml文件
Static
静态资源文件目录(Javascript、css、图片等),在这个目录中的所有文件可以被直接访问
Templates
存放模板文件
Application.properties或appcation.yml
Springboot 默认配置文件
请求流程
代码审计思路
1.信息收集 pom.xml
如果引入带有漏洞的版本就会出现问题,但有时会没有使用该功能
2.sql注入
1.使用mybatis的话,关注xxxMapper.xml中${}拼接sql的地方。
2.跳转到dao层
3.查看谁用了这个方法(service层)
按住Ctrl键,进入函数
UserServiceImpl.java实现UserService接口
4.找到web传参的路径(conctrller层)
按住Ctrl键,选择函数进入contrller层