Tmall_demo商城代码审计
一.结构分析

二.pom.xml
看一下配置信息
含义
POM是项目对象模型(Project Object Model)的简称,它是Maven项目的核心配置文件,使用XML表示,名称叫做pom.xml。
描述了项目的所有必要信息,使Maven能自动化得构建项目,定义项目的基本信息,主要用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。
1.fastjson1.2.83库
可能存在反序列化

2.MyBatis框架
审计sql注入,关键字搜索 ${

3.log4j库

三.开始审计
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 随便跟一个看看

orderUtil( 搜一下OrderUtil方法 看到参数orderBy 点进去

Ctrl+点击OrderUtil 看一下orderBy参数的使用

这里跟进第二条看一下,可以看到参数是orderBy

在查询订单这里搜索

抓到如下数据包 并且有orderBy参数

构造 orderBy=if(1=2,1,(SELECT(1)FROM(SELECT(SLEEP(3)))test)) sleep 3秒

也可以使用sqlmap

同样的以下路由也存在一样的SQL注入
product/{index}/{count}
admin/user/{index}/{count}
admin/reward/{index}/{count}
admin/product/{index}/{count}
2.鉴权绕过
看到项目结构有filter 打开看一下

可以看到这里,如果url中包含/admin/login或/admin/account即可完成绕过

在后台登录

数据包如下

然后退出登录,重新发包看不到任何信息

在前面加上/admin/login和路径穿越可以完成绕过 看到信息

3.xss(此处举出一例 有很多)
关键字如下:
getParamter 、<%=、param.、request.setAttribute、Comment、getStr
在管理员昵称处 插入<scriprt>alert(1)</scriprt>

重新登录,会出现弹窗

浙公网安备 33010602011771号