首先去修改源码中的配置文件,修改为你本地的用户名和密码。
然后启动环境之后,就进入了登录界面。
全局搜索关键字,然后去找到DAO⽂件,发现存在search用法。
跟进它。
然后再跟进listUserUploaded⽅法
但fileDAO接⼝只有三个参数,主要查询代码,映射FileSqlProvider这个类的getUserUploaded⽅法。
接着调⽤了getSqlEnds⽅法
最后调⽤getSearch⽅法,然后结束流程。
进入我的资源功能处,然后点击获取更多。
然后输入单引号,出现报错注入,证明此处确实存在SQL注入漏洞。
输入"进行验证。
成功看到报错注入。
使用sqlmap进行验证。
全局搜索关键字,然后定位到更新用户权限功能处。
然后跟进upadtePermission这个函数。
然后进入UserDAO层。
发现其未对用户的输入进行过滤,直接进行SQL查询。
进入系统设置功能处,然后点击获取更多。
发现该处存在时间盲注
也存在报错注入。
全局搜索关键字,接着进入AuthDAO层,
跟进它。
然后继续往下走。
发现未对用户输入进行处理,导致其存在SQL注入漏洞。
进入权限管理功能处,然后点击新增,然后使用burp抓包。
然后进行报错注入尝试,发现其存在报错注入。
也可以使用SQLMAP进行验证的。
进入/file/all,在列出所有文件的地方传入参数 order by,并且没有做过滤,导致产生SQL注入漏洞,接口信息如下
发现orderBy 参数都是字符串,无过滤且是通过字符串拼接方式进行的传参
访问url地址。
发现其存在报错注入。
使用SQLMAP进行验证。
发现多个类中的 jsonObject 对象(一个用来按照json格式保存结果的变量)是共用的,导致认证后的 token 会在访问返回该对象的 未认证接口时泄露,就会成功进行返回。
成功获取随机生成的cookie。
进入重置密码验证码的接口 /common/{email}/code
然后测试功能需要先修改下配置中的邮箱数据, 邮箱的 smtp 服务器是 smtp.qq.com
这里向对应邮箱发送了一个验证码,并将其设置发送到对应的session中
进入重置密码处。
然后获取cookie
然后利用返回的jessionid配合之前的SQL注入漏洞来修改密码。