记一次代码审计拿下CNVD证书

admin 2025年1月11日12:25:39评论8 views字数 1156阅读3分51秒阅读模式

0x00前言

本篇文章作者YanXia,本文属i春秋原创奖励计划,未经许可禁止转载。地址https://bbs.ichunqiu.com/thread-63302-1-1.html
去年的时候,想给学弟刷一点CNVD证书,遂去审计了些漏洞。今天与大家分享其中一个例子。

本文所采用的方法是黑盒+白盒审计来挖掘出漏洞。至于源码是怎么来的,方法有很多,本文不进行阐述。

0x01正文

首先,我先来到了一个软件升级的功能
记一次代码审计拿下CNVD证书

正常来说,如果我们遇到了这种功能点一般会考虑到这里可能存在文件上传漏洞,所以我们来尝试上传一下
记一次代码审计拿下CNVD证书

记一次代码审计拿下CNVD证书

欧,连jpg文件这里看上去都上传失败了。如果正常我们黑盒测试的话,可能就认为这里可能是白名单的文件上传。只能上传特定的配置文件。但是没关系,我们去定位下他的源码
记一次代码审计拿下CNVD证书

if(isset($_POST['mode'])) $mode=$_POST['mode'];
if($mode=="set")
{
    $type=$_POST['ck'];
    if($type == "radhttp") //http

这里先通过post传参mode来确定上传的模式

{
    set_time_limit(0); //表示页面将持续运行
    $http_os_dir = "/home/"; //设定了文件上传到的路径
    chdir($http_os_dir); // //改变当前的目录到$http_os_dir
    exec("rm -rf osVersion*"); 
    $upload_file = $_FILES['file_upload']['tmp_name'];  
    $upload_file_name = $_FILES['file_upload']['name']; 
    if(!copy($upload_file,$http_os_dir.$upload_file_name))//将$upload_file的文件复制到/home/底下
    {
        add_optlog($sess_username,"osupload",GetIp(),"$LANG_HTTPUPOS_FAILD");
        alert("$LANG_UPOS_FAILD","updateos.php");
    }

记一次代码审计拿下CNVD证书

所以说根据上面的逻辑来说,这里没有对上传的文件名进行如何校验。而是直接将文件利用copy函数复制到/home底下。
那么,我们上传后我们去访问一下文件试试。
记一次代码审计拿下CNVD证书

记一次代码审计拿下CNVD证书

可以发现,虽然提示的时候会提示失败,其实这里还是成功上传了的。
所以说,代码审计的好处在这里就可以体现出来了。如果我们直接黑盒的话,这个地方就挖不到了。
最后附上波学弟的cnvd
记一次代码审计拿下CNVD证书

记一次代码审计拿下CNVD证书

0x03 文末

挖CNVD证书其实还是挺容易的。先挑好一个5000w注册资金的厂商,然后想办法弄到他们产品的源码去审计就好了~~~
有机会的话,欢迎各位师傅们来我们学校~

©著作权归作者所有 - source: 535yx.cn

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月11日12:25:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次代码审计拿下CNVD证书https://cn-sec.com/archives/3618930.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息