首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >记一次代码审计拿下CNVD证书

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

作者头像
YanXia
发布2023-05-10 09:27:12
发布2023-05-10 09:27:12
1.4K0
举报
文章被收录于专栏:YX’blogYX’blog

0x00前言

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

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

0x01正文

首先,我先来到了一个软件升级的功能

正常来说,如果我们遇到了这种功能点一般会考虑到这里可能存在文件上传漏洞,所以我们来尝试上传一下

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

代码语言:javascript
复制
if(isset($_POST['mode'])) $mode=$_POST['mode'];
if($mode=="set")
{
    $type=$_POST['ck'];
    if($type == "radhttp") //http

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

代码语言:javascript
复制
{
    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");
    }

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

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

0x03 文末

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年04月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00前言
  • 0x01正文
  • 0x03 文末
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档