Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jpress后台存在命令执行漏洞-恶意插件 #167

Closed
Er1cccc opened this issue Jan 9, 2022 · 1 comment
Closed

jpress后台存在命令执行漏洞-恶意插件 #167

Er1cccc opened this issue Jan 9, 2022 · 1 comment

Comments

@Er1cccc
Copy link

Er1cccc commented Jan 9, 2022

审计过程

jpress后台提供了插件安装功能,在io.jpress.web.admin._AddonControllerdoUploadAndInstall方法,该方法的作用是先处理文件上传,然后进行插件安装

image-20211221123337325

文件上传的步骤略,直接看安装部分

image-20211221123838727

跟进AddonManager.me().install(newAddonFile)方法,在这个方法中,先调用了一下AddonUtil.readAddonInfo读取插件信息

image-20211221124437123

跟进AddonUtil.readAddonInfo,在这个方法里面会创建一个类加载器来加载插件里的类

image-20211221124722280

跟进classLoader.load(),这个方法的作用就是先加载类,然后把不同的类进行归类,Controller归到一起,Interceptor归到一起

先加载类

image-20211221124855501

然后根据类的功能进行归类,把他们分别添加到了addonInfo的特定字段当中

image-20211221125020872

接下来在处理请求时就会利用到这些controller

攻击步骤

  1. 使用弱口令进入后台

  2. 上传恶意插件jpress-addon-helloworld-4.0.jar

image-20211220230337451

  1. 安装完成查看一下插件是否存在

image-20211220230357826

  1. 利用插件实现命令执行,访问http://127.0.0.1/helloworld/?command=dir

image-20211220230448114

@Er1cccc Er1cccc changed the title jfinal后台存在命令执行漏洞-恶意插件 jpress后台存在命令执行漏洞-恶意插件 Jan 9, 2022
@JPressProjects
Copy link
Owner

不处理这个问题,原因是:
1、必须获得 JPress 的后台登录地址,虽然有默认的登录地址,但是可配置成其他复杂的地址
2、拥有登录地址后,必须有管理员的账号和密码,这种一般只有设置了弱密码,或者管理员主动泄漏。
3、安装了 恶意 的插件

而目前 Java 行业凡是对于可以安装插件的产品来讲,都是无法避免这个问题的。这个需要网站管理提高安全意识、设置复杂的登录地址和登录账号密码,不轻易安装不认可的插件即可解决。这种由于安全意识造成的问题,并非软件问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants