JAVA代审-wangmarket_v4.10

admin 2025年2月14日23:45:52评论16 views字数 2493阅读8分18秒阅读模式
JAVA代审-wangmarket_v4.10
JAVA代审-wangmarket_v4.10

点击上方蓝字·关注我们

免责声明
JAVA代审-wangmarket_v4.10

由于传播、利用本公众号菜狗安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号菜狗安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,会立即删除并致歉。

前言
JAVA代审-wangmarket_v4.10
本篇文章首发在先知社区,作者C@ig0 (本人)  先知社区名称:caigo 转载原文链接为:https://xz.aliyun.com/news/16680
文章目录
JAVA代审-wangmarket_v4.10
项目介绍环境搭建    环境搭建踩坑漏洞挖掘SQL注入    XSS         第一处         第二处     多处CSRF         代理用户创建         密码修改最后

项目介绍

私有化部署自己的SAAS云建站系统,可通过后台任意开通多个网站,每个网站使用自己的账号进行独立管理。延续了织梦、帝国CMS的模版方式,性能高度优化,一台1核1G服务器可建立几万个独立网站

环境搭建

我选取的版本是v4.10

项目地址:https://gitee.com/mail_osc/wangmarket/archive/refs/tags/v4.10.zip

源码下载到本地后解压(注意:不要解压到中文目录下),IDEA打开

修改配置文件:application.properties

数据库连接配置

JAVA代审-wangmarket_v4.10

数据库接口配置,把sqlite的注释掉,用mysql的

JAVA代审-wangmarket_v4.10

然后在数据库中创建对应数据库,并导入sql文件:elsewangmarket.sql

JAVA代审-wangmarket_v4.10

然后启动项目,访问127.0.0.1:8080即可开始系统安装

JAVA代审-wangmarket_v4.10

环境搭建踩坑

我本地用的maven3.8.1,然后运行时报错

Pingplusplus:pingpp-java:pom:2.1.7 failed to transfer from http://0.0.0.0/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of maven-default-http-blocker has elapsed or updates are forced. Original error: Could not transfer artifact Pingplusplus:pingpp-java:pom:2.1.7 from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [central (http://jcenter.bintray.com, default, releases), maven-ali (http://maven.aliyun.com/nexus/content/groups/public/, default, releases+snapshots)]

解决办法:

在pom.xml文件中把下面两个依赖改成https

JAVA代审-wangmarket_v4.10

然后使用下面命令强制更新依赖

mvn clean install -U

漏洞挖掘

SQL注入

先判断sql语句使用api,检查下pom.xml文件或者依赖包

JAVA代审-wangmarket_v4.10

pom.xml中未发现其它依赖引用

JAVA代审-wangmarket_v4.10

外部库也没发现,判断为原生JDBC

全局搜索**+**&append

这套系统实际上是有做sql注入预防的,我们可以找一处查询功能点看下

JAVA代审-wangmarket_v4.10

像这种搜索的功能点,也就是模糊匹配是我们优先可以看的,抓包看下路由

JAVA代审-wangmarket_v4.10

根据路由定位到代码段

JAVA代审-wangmarket_v4.10

这里我们没有看到name数据的处理,其实是写在setSearchColumn这个方法里面的,我们跟进

JAVA代审-wangmarket_v4.10

可以看到过滤内容也在这里面,我们重点看数据处理的部分

JAVA代审-wangmarket_v4.10

可以看到通过while循环取出valueArray数组中对应索引的值,然后用到了个filter方法,然后在把取出来的val通过append拼接到语句中,那么这里的关键点肯定就是filter方法了,我们看下这个方法干了什么

JAVA代审-wangmarket_v4.10

通过toLowerCase()方法把我们传入的内容转换成小写,然后进行字典匹配,如果存在就查询给originalValue赋值,内容就是替换的字符,我们可以看下执行结果

JAVA代审-wangmarket_v4.10

那么这里就不存在注入问题了,因为这个函数绕不过去,然后还禁用了特殊字符,但是

这里作者是自定义了一个filter函数用于SQL检测,不是写在filter层,也就是说不是默认全局的,那么我们就可以找下有没有没使用filter()方法并且写入sql语句中执行并且我们可控的参数。

还真有!

JAVA代审-wangmarket_v4.10

这里有个tablename参数是我们可控的并且是直接拼接到sql语句中没有进行处理,直接使用findMapBySqlQuery方法执行的,那么这里就会有注入问题

对应的路由是:/plugin/dataDictionary/tableView.do

然后这里要管理员权限才能访问,登入的时候使用admin登入

抓包,sqlmap一把搜哈

JAVA代审-wangmarket_v4.10

XSS

这套系统的xss和sql一样,有预防函数

JAVA代审-wangmarket_v4.10

所以我们要找的就是没有使用filterxss并且能回显的地方,这个还是比较难找的

第一处

网站有模板修改功能,尝试插入xss语句

JAVA代审-wangmarket_v4.10

保存,并且生成整站

JAVA代审-wangmarket_v4.10

这个的话因为这套系统是多用户管理,除了后台用户还有代理用户和总管理,所以通过后台xss可以获取总管理或代理的cookie还是有利用价值的。

第二处

在总代理的角色添加处

JAVA代审-wangmarket_v4.10

可以新增角色,然后这里可以写描述

JAVA代审-wangmarket_v4.10

保存

JAVA代审-wangmarket_v4.10

多处CSRF

代理用户创建

抓取数据包用户创建

JAVA代审-wangmarket_v4.10

生成csrf_poc

JAVA代审-wangmarket_v4.10

把csrf1.html放到服务器上,模拟管理员触发

JAVA代审-wangmarket_v4.10

JAVA代审-wangmarket_v4.10

密码修改

JAVA代审-wangmarket_v4.10

他这里密码修改不需要校验旧密码,那这里如果可以csrf就可以直接修改密码了

抓包

JAVA代审-wangmarket_v4.10

生成poc

JAVA代审-wangmarket_v4.10

把csrf1.html放到服务器上,模拟管理员触发

JAVA代审-wangmarket_v4.10

登入测试agency/admin123

JAVA代审-wangmarket_v4.10

登入我们修改的密码caigo888

JAVA代审-wangmarket_v4.10

除了这两处还有很多功能点存在csrf,而且这个可以加上我们前面的xss进行组合利用

最后

目前交流群人数超了只能邀请,需要进群交流的加作者微信备注交流群,后面会考虑开二群。

性感群主不定期水群在线解答问题!

JAVA代审-wangmarket_v4.10

原文始发于微信公众号(菜狗安全):JAVA代审-wangmarket_v4.10

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月14日23:45:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JAVA代审-wangmarket_v4.10https://cn-sec.com/archives/3741439.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息