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

支付插件上传存在rce #68

Open
azraelxuemo opened this issue Sep 26, 2022 · 7 comments
Open

支付插件上传存在rce #68

azraelxuemo opened this issue Sep 26, 2022 · 7 comments

Comments

@azraelxuemo
Copy link

azraelxuemo commented Sep 26, 2022

这里我选用的是最新的2.3.0的cms
image
编写测试php代码,打包成zip
image
进入后台,选择网站管理->支付方式,上传对应的zip
image
image
漏洞点在于这里的GetPaymentConfig
image
GetpaymentConfig里的class_exists会去尝试寻找文件,然后会进入load_class,Findfile会找到对应的上传文件,这里相当于是把临时文件先cp到extend目录下,然后会自动include
image
这里如果我们没有按照要求写插件,会报错,然后删除文件,
image
,但由于include的原因,我们的代码也被执行了
这里会报错,然后显示代码执行的结果
image

@gongfuxiang
Copy link
Owner

您好,感谢您的反馈与建议,这个上传支付插件本身就是需要上传指定格式有效的文件,自己去主动上传非法文件肯定是有问题的。

@azraelxuemo
Copy link
Author

如果你这样说,那我们可以认为所有漏洞都是不存在的,都是用户的非法输入,那要不明天就把cve官方关闭了??

@azraelxuemo
Copy link
Author

我看了你这里,确实不好修,但你最少别直接把代码执行的结果返回给用户,返回给插件错误也行啊

@azraelxuemo
Copy link
Author

如果认为不是漏洞,那我就直接公开了

@gongfuxiang
Copy link
Owner

如果认为不是漏洞,那我就直接公开了

本身就是要上传php文件代码的,最终的解决办法就是要检查文件中是否存在漏洞代码。
主要是我目前还没想到用什么方法来检查一个文件中是否包含php漏洞代码,如果您这边有这样php相关的技术方案可以提供一份我参考一下。

@azraelxuemo
Copy link
Author

这确实不太好解决,不过感觉尽量建议用户实际开disable_functions,这里确实比较敏感,然后建议返回结果就只写个插件异常

@qwe1433223
Copy link

这不算漏洞,解决方法就是上waf

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

3 participants