记某网络安全设备逻辑缺陷导致的getshell

简介: 记某网络安全设备逻辑缺陷导致的getshell

写在前面

听某位师傅说cnvd的证书对就业有帮助,特别是安全厂商类型的cnvd证书含金量更高。听到这里,我便开始跃跃欲试,便有了此篇文章出现。本篇文章就来讲讲这次挖掘安全厂商产品0day通用漏洞的过程。本章中所有漏洞均已提交至cnvd并获得证书。

过程

这里首先先到目标主站进行信息收集,看看他们有哪些产品等等。

然后我就用网络空间搜索引擎再次进一步收集信息,最后把目标定在了一个页面看着相对简陋的网络安全设备Web管理界面上:

然后这里到网上尝试寻找该安全厂商旗下这个产品的通用弱口令,费了一番功夫算是找到了,可是尝试了以后要不就是提示我密码不正确!

要不就是提示我:用户名不存在!

看来有可能是之前已经有人发现过该问题并提交了通用弱口令漏洞了,安全厂商可能已经修复了。这里为了验证我的观点,我便到cnvd的漏洞列表里进行高级搜索,把这家安全厂商的相关产品关键字输入进去进行查询,果然找到了该产品的弱口令漏洞信息,看来是我晚了一步啊,可惜了。那么这里我们明显不知道修复后的用户账号和相对应的密码,这里必须得开始进一步信息收集了。

经过了一些时间的信息收集,真是功夫不负有心人,我发现存在http://x.x.x.x/data,发现该路径下存在目录遍历漏洞。

这倒给我的信息收集省下了不少的麻烦。这里直接来找找有没有敏感文件和敏感信息泄露。可是找了半天,并没有什么敏感文件,都是一些Web源代码文件。本想着既然找不到敏感文件,那么就来审计下代码,看看会不会存在有漏洞直接打进去,可是这里并不能看到源代码:

可是这里却暴露了其绝对路径,这里马上便可以推断出其搭建在Windows系统上。再看看文件后缀名均为php,那么这是一个php+windows的情况。

php+windows的情况下:如果文件名+::$DATA会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,然后这里便把文件的源代码给展示了出来:

那么这里就开始了代码审计。然后便在/data/login.php,即登录的文件中发现了疑点:

这里的部分代码我展示出来:

<?php
/**
        系统登录设置
*/
include(' ../ commmon/ connDb. php');
$dbQuery = new DataBaseQuery();
$userName=$_POST['userName'];
$password=$_POST['password'];
$system=$_POST['system'];
$userInfo = $dbQuery->querySing1eRow('select passward,roleld from user_info   where name="' . $userName. '"' , true);
if($password == "dandain12345")
{
    @session_start();
    $_SESSION['userName’]=$userName;
    $_SESSION['system’]=$system;
    $_SESSION['roleId']=$userInfo['roleId'];
    $mainMenuIds = fetchMainMenu($dbQuery,$userInfo['roleId']);
    $_SESSION['mainMenulds']=$mainMenuIds;
    $subMenuIds = fetchSubMenu($dbQuery,$userInfo['roleId']);
    $_SESSION['subMenuIds']=$subMenuIds;
    modifyXML($system) ;
    echo "0";
    $dbQuery->closeDb() ;
}
else
{
    if(count($userInfo)==0){//用户名不存在
        echo "1";
        $dbQuery->closeDb() ;
        return;
    }else{//用户名存在
        if ($userInfo['password' ] !=$password){//密码不正确
            echo "2";
            $dbQuery->closeDb();
            return;
        }else{//正确登录
            @session_start();
            $_SESSION['userName’]=$userName;
            $_SESSION['system’]=$system;
            $_SESSION['roleId']=$userInfo['roleId'];
            $mainMenuIds = fetchMainMenu($dbQuery,$userInfo['roleId']);
            $_SESSION['mainMenulds']=$mainMenuIds;
            $subMenuIds = fetchSubMenu($dbQuery,$userInfo['roleId']);
            $_SESSION['subMenuIds']=$subMenuIds;
            modifyXML($system) ;
            echo "0";
            $dbQuery->closeDb() ;
}

这里发现if($password == "dandain12345")语句代码和下面的当用户名存在并正确登录成功的实现的代码完全一样,那么这里理论便有一个逻辑缺陷漏洞了:即不论用户名是否存在,只要随便输入一个用户名,密码输入dandain12345,最后都能够成功登录进去。

这里分析完后,马上进行尝试:

比如:随便输入一个用户名为test,密码先随便输。然后提示我用户名不存在!

那么这里把密码换成输入dandain12345,居然成功了。这也证实了我之前的观点:不论用户名是否存在,只要随便输入一个用户名,密码输入dandain12345,最后都能够成功登录进去。

那么这里在选一个存在的用户名admin,然后密码随便输。提示我密码不正确!

这里再把密码换成输入dandain12345,也成功了,而且还是管理员权限:

最后我在管理员的权限下经过寻找可用上传点和尝试,最后成功传上去了一句话木马,并用蚁剑成功连接了

执行ipconfig

相关文章
|
2月前
|
Java
【思维导图】JAVA网络编程思维升级:URL与URLConnection的逻辑梳理,助你一臂之力!
【思维导图】JAVA网络编程思维升级:URL与URLConnection的逻辑梳理,助你一臂之力!
38 1
|
3月前
|
运维 监控 安全
|
3月前
|
监控 网络协议 安全
|
14天前
|
安全 物联网 定位技术
2G网络和基站的撤销对物联网设备的影响
2G网络和基站的撤销对物联网设备的影响是多方面的,以下是对这一影响的详细分析:
2G网络和基站的撤销对物联网设备的影响
|
7天前
|
传感器 物联网 人机交互
物联网:物联网,作为新一代信息技术的重要组成部分,通过智能感知、识别技术与普适计算等通信感知技术,将各种信息传感设备与互联网结合起来而形成的一个巨大网络,实现了物物相连、人物相连,开启了万物互联的新时代。
在21世纪,物联网(IoT)作为新一代信息技术的核心,正以前所未有的速度重塑生活、工作和社会结构。本文首先介绍了物联网的概念及其在各领域的广泛应用,强调其技术融合性、广泛的应用范围以及数据驱动的特点。接着,详细阐述了物联网行业的现状和发展趋势,包括政策支持、关键技术突破和应用场景深化。此外,还探讨了物联网面临的挑战与机遇,并展望了其未来在技术创新和模式创新方面的潜力。物联网行业正以其独特魅力引领科技发展潮流,有望成为推动全球经济发展的新引擎。
|
2月前
|
传感器 SQL 运维
常见网络安全设备:IPS(入侵防御系统)零基础入门到精通,收藏这一篇就够了
常见网络安全设备:IPS(入侵防御系统)零基础入门到精通,收藏这一篇就够了
82 3
|
1月前
|
缓存 运维 监控
|
2月前
|
监控 安全 iOS开发
|
3月前
|
网络安全 数据安全/隐私保护 网络虚拟化
|
2月前
|
监控 安全 网络协议
【网络工程师必备神器】锐捷设备命令大全:一文在手,天下我有!
【8月更文挑战第22天】锐捷网络专攻网络解决方案,其设备广泛应用在教育、政府及企业等领域。本文汇总了锐捷设备常用命令及其应用场景:包括登录与退出设备、查看系统状态、接口与VLAN配置、路由与QoS设定、安全配置及日志监控等。通过示例如telnet/ssh登录、display命令查看信息、配置IP地址与VLAN、设置静态路由与OSPF、限速与队列调度、端口安全与ACL、SNMP监控与重启设备等,助力工程师高效管理与维护网络。
52 4
下一篇
无影云桌面