快速审计记录(五)--某blog系统
nihao123123 发表于 河南 漏洞分析 918浏览 · 2024-02-13 13:48

SQL注入

首先去mapper.xml中去查找是否有${进行拼接的情况

找出对应的dao层

调用方法为update方法

到保存文章的界面
本以为有希望,但是发现在xml中parameterType="java.lang.Integer"只允许接受Integer类型的参数
之后找到一个Example_Where_Clause但是全局搜索并未找到dao层,估计是用来做示例的

最终找到一个

对应的dao

对应的service

但是经过查看代码,这种xxxByExample都是不可控的。细看这个service都是传入themeName到那时传入selectByExample的是themeExample

网站注册处逻辑处理错误导致用户登录异常

此blog在第一次使用的时候会出现用户注册的情况

再次重发

发现出现错误
去查看代码处理

并未做多次写入的判断,直接进行了保存

两次userService.save``optionsService.save都进行了保存,在进行insert操作的时候出现了错误,导致前端回显错误
查看数据库表时候,可以看到成功插入

之后进行登录时出现错误

查看报错

应该返回一个或者null但是返回了多个结果,导致用户无法登录。可直接影响管理员用户的登录。

任意文件上传

此网站的所有上传接口均为此接口

查看上传文件详情的时候可以看到路径

查看代码

调用uploadAttachment方法

主要对上传文件进行了重命名和获取后缀,也就是无法通过../进行目录穿越,只能上传webshell,但是此blog不解析jsp

失败的任意文件删除


删除处通过上传的时候赋予的id进行删除操作,查看代码

可以看到id的类型为int 无法进行目录穿越进行任意文件删除

fastjson


1.2.83 ,但是代码中并未使用paresobject

参考https://y4tacker.github.io/2023/04/26/year/2023/4/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96-%E4%BA%8C/

失败的未授权记录


鉴权系统为Spring Web MVC 拦截器
这里主要看excludePathPatterns要走loginAuthenticatorinstallInterceptor

通过代码得知,loginAuthenticator必须要有user的session才可以返回true,installInterceptor必须已经注册,这里我想到是否可以通过/install/../admin/进行未授权调用admin接口,这里却直接解析到loginAuthenticator

0 条评论
某人
表情
可输入 255

没有评论