本文目录一览:
- 1、discuz代码执行漏洞 uc.php 是怎么样修复的?
- 2、【漏洞分析】Discuz!
- 3、Discuz 3.4漏洞
- 4、求discuz 2.5漏洞修补教程
- 5、如何修复Discuz!NT分页xss漏洞
discuz代码执行漏洞 uc.php 是怎么样修复的?
临时安全补丁
在\source\function\function_core.php文件第515行左右(template函数中),将代码:
function template($file, $templateid = 0, $tpldir = '', $gettplfile = 0, $primaltpl='') {
global $_G;
【漏洞分析】Discuz!
之前网上爆的的是Discuz!=3.4的任意文件删除漏洞,为什么这里变成3.3了呢?因为厂商已经把3.4的修复了,不过3.3版本还是存在问题的。
首先,在本地创建一个我们要删除的测试文件
注册一个账号
然后点击保存,用burp抓个包,就可以得到我们的formhash,并在birthprovince中修改成我们要删除的文件路径(../../../test.txt)
然后可以在本地创建一个文件上传的表单
然后点击上传
就完成了删除文件了~
这里漏洞出现在/upload/source/include/spacecp/spacecp_profile.php
这里第182、183行有两个unlink()函数可以删除文件,但是需要formtype=file才可以,我们把这里的打印出来
发现并不是file,因此不能在这里进行删除,继续往下看,
第229行有一个unlink()函数,并且没有任何判断,也就是说只要程序运行到这里,就可以删除文件。看一下条件
这里向上回溯,看一下$space[$key]在哪里。
出现在第23行,发现这个就是用户的个人设置,我们可以选择birthprovince,修改成要删除的文件就好了,然后实现一个上传文件 的表单,就可以删除文件了。
Discuz 3.4漏洞
网上内容
首先在目录里建立test.txt
然后,获取formhash:7b2bf0ce
于是可以构建payload:
然后上传文件,就可以删除这个test.txt了
我们来看下源码,这里主要是spacecp_profile.php的问题
首先,我们从漏洞出发,我们先从删除函数开始:
可以看到,这个要求formtype是file,就会触发unlink
我们发现这次改动的228行有 @unlink(getglobal('setting/attachdir').'./profile/'.$space[$key]); ,也就是这次漏洞所在,我们看看语句成立的条件
也就是上传文件,那么现在就是看看这个 $space[$key] 了,回溯下变量,我们发现,key是可以被payload里的用户资料所操作的,我们看下payload里用的 birthprovince ,
可以看到这个就可以控制 $space[$key] ,而且没有什么限制,而一切的条件就是70行的 if(submitcheck('profilesubmit')) { 所以,我们的payload会有profilesubmit=1
求discuz 2.5漏洞修补教程
这个不需要什么教程的。一般的漏洞官方都有补丁程序。你可以通过discuz后台自动安装下。
其实漏洞时刻都会有的,还是做好服务器的安全配置。及时更新官方最新补丁,这样就可以了。
如何修复Discuz!NT分页xss漏洞
你可以用360安全卫士进行全盘检查,他有智能修复功能如果它提示系统漏洞要修复,那就是应该要修复的 有的漏洞不用修复他就会忽所以不必在意!这样不会影响系统的运行!