Mini_Tmall审计过程记录
2023-4-27 12:1:41 Author: 白帽子左一(查看原文) 阅读量:18 收藏

扫码领资料

获网安教程

免费&进群

1、环境搭建

项目地址:https://gitee.com/project_team/Tmall_demo.git

项目基于springboot结构非常简单,修改application.properties数据库配置文件,之后运行TmallSpringBootApplication

1.2 踩坑记录

在使用高版本mysql时,登录会报如下错误

Error querying database. Cause: java.sql.SQLSyntaxErrorException: Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'tmalldemodb.category.category_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

原因是因为在mysql 5.7+中 默认启用了 ONLY_FULL_GROUP_BY ,大概就是一种严谨的SQL模式,类似于Oracel那些Group by语句,就是你查询那些字段,group by的时候也要写上哪些字段。

运行该sql语句设置,如果未设置成功,需要更改为低版本mysql(5.7版本)

set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

之后重启一下sprignboot即可正常登录

2、代码审计

2.1 权限绕过任意文件上传

先直接看一下fliter,发现是用contains来判断url该不该放行,所以我们只需要构造类似/admin/login/../../xxx 这种即可绕过filter

再去找一处接口验证,发现一处文件上传接口,并未做任何限制,构造请求

成功上传

访问也OK

这里也有一处

2.2 SQL注入(1)

数据库框架为Mybatis所以我们只需要关注$即可,全局搜索$,之后定位到同名的dao文件

继续跟进,

继续跟进

发现第一处调用,但是不可控,跳过

第二处调用,很明显可控参数

构造一下

sqlmap也可以出结果

2.3 SQL注入(2)

和先前流程一样,跟进查看调用

最终在admin/order 处发现调用,并且orderUtil可控

其他地方还有三四处,暂时不跟了。

组件看了一下,咋全是新版本

总结

用于练手还是相当不错,如有问题,感谢各位师傅指正。

修复建议

文件上传:限制保存文件的目录的权限

SQL注入:对传入的数据进行严格检查

来源:https://xz.aliyun.com/t/12479

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

@
学习更多渗透技能!体验靶场实战练习

hack视频资料及工具

(部分展示)

往期推荐

【精选】SRC快速入门+上分小秘籍+实战指南

爬取免费代理,拥有自己的代理池

漏洞挖掘|密码找回中的套路

渗透测试岗位面试题(重点:渗透思路)

漏洞挖掘 | 通用型漏洞挖掘思路技巧

干货|列了几种均能过安全狗的方法!

一名大学生的黑客成长史到入狱的自述

攻防演练|红队手段之将蓝队逼到关站!

巧用FOFA挖到你的第一个漏洞

看到这里了,点个“赞”、“再看”吧

文章来源: http://mp.weixin.qq.com/s?__biz=MzI4NTcxMjQ1MA==&mid=2247594259&idx=1&sn=557cd114be0511643d782b834013f6ea&chksm=ebeb383edc9cb128a6106ea1aa73897144f916fbc84351adbc76757bceb2263b57652acd69b9#rd
如有侵权请联系:admin#unsafe.sh