【java代码审计】web漏洞挖掘(炼石计划)

框架

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层

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值