Tmall_demo商城代码审计

一.结构分析

image

二.pom.xml

看一下配置信息

含义

POM是项目对象模型(Project Object Model)的简称,它是Maven项目的核心配置文件,使用XML表示,名称叫做pom.xml。

描述了项目的所有必要信息,使Maven能自动化得构建项目,定义项目的基本信息,主要用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。

1.fastjson1.2.83库

可能存在反序列化
image

2.MyBatis框架

审计sql注入,关键字搜索 ${
image

3.log4j库

image

三.开始审计

1.SQL注入

关键字如下:


Select 、Dao 、from 、delete 、update 、insert

Statement

createStatement

PrepareStatement

like '%${

in(${

in (${

${

select

update

insert

delete

setObject(

setInt(

setString(

setSQLXML(

createQuery(

createSQLQuery(

createNativeQuery(

搜${ 可以发现好几处参数是orderUtil.orderBy 随便跟一个看看
image
orderUtil( 搜一下OrderUtil方法 看到参数orderBy 点进去
image
Ctrl+点击OrderUtil 看一下orderBy参数的使用
image
这里跟进第二条看一下,可以看到参数是orderBy
image
在查询订单这里搜索
image
抓到如下数据包 并且有orderBy参数
image
构造 orderBy=if(1=2,1,(SELECT(1)FROM(SELECT(SLEEP(3)))test)) sleep 3秒
image
也可以使用sqlmap
image
同样的以下路由也存在一样的SQL注入
product/{index}/{count}
admin/user/{index}/{count}
admin/reward/{index}/{count}
admin/product/{index}/{count}

2.鉴权绕过

看到项目结构有filter 打开看一下
image
可以看到这里,如果url中包含/admin/login/admin/account即可完成绕过
image
在后台登录
image
数据包如下
image
然后退出登录,重新发包看不到任何信息
image
在前面加上/admin/login和路径穿越可以完成绕过 看到信息
image

3.xss(此处举出一例 有很多)

关键字如下:
getParamter 、<%=、param.、request.setAttribute、Comment、getStr

在管理员昵称处 插入<scriprt>alert(1)</scriprt>
image
重新登录,会出现弹窗
image

posted @ 2026-04-08 15:42  chanyel  阅读(1)  评论(0)    收藏  举报