专栏首页Deen的代金券日记2018上海大学生安全竞赛web3解析
原创

2018上海大学生安全竞赛web3解析

直接给源码吧:

<?php
    //error_reporting(0);
    //$dir=md5("icq" . $_SERVER['REMOTE_ADDR']);
    $dir=md5("icq");
    $sandbox = '/var/sandbox/' . $dir;
    @mkdir($sandbox);
    @chdir($sandbox);

    if($_FILES['file']['name']){
        $filename = !empty($_POST['file']) ? $_POST['file'] : $_FILES['file']['name'];
        if (!is_array($filename)) {
            $filename = explode('.', $filename);
        }
        $ext = end($filename);
        if($ext==$filename[count($filename) - 1]){
            die("emmmm...");
        }
        $new_name = (string)rand(100,999).".".$ext;
        move_uploaded_file($_FILES['file']['tmp_name'],$new_name);
        $_ = $_POST['hehe'];
        if(@substr(file($_)[0],0,6)==='@<?php' && strpos($_,$new_name)===false){
            include($_);
        }
        unlink($new_name);
    }
    else{
        highlight_file(__FILE__);
        

先看后缀名绕过吧。看着有点熟悉,总感觉在哪见过,后来才想起是pwnhub的公开赛里见过,考察的是end()函数。给个例子输出就清楚了。

<?php
	$a[2] = '222';
	$a[1] = '111';
	$a[0] = '000';
	
	$end = end($a);
	var_dump($end);
	
	$arr = $a[count($a)-1]
	var_dump($arr);


?>

输出结果:

end输出输入顺序最后一个

所以这里绕过是文件名取$_POST'file'绕过

至于下面unlink的绕过,有两种解法,一种是加/.,一种是../绕过。

我本地搭建更换了目录,可以看到已经成功写入

加/. unlink无法删除是linux下的特性,windows并不适用。

接下来传入hehe参数,爆破包含即可。

至于加../,产生的随机数会生成会被当成路径。

然后直接包含我们的文件即可。

看下当前目录

生成了shell.php,也成功写入了。

这里加 /. 和 ../ unlink都没删除,p牛小密圈给过解释

查看php源码,其实我们能发现,php读取、写入文件,都会调用php_stream_open_wrapper_ex来打开流,而判断文件存在、重命名、删除文件等操作则无需打开文件流。

我们跟一跟php_stream_open_wrapper_ex就会发现,其实最后会使用tsrm_realpath函数来将filename给标准化成一个绝对路径。而文件删除等操作则不会,这就是二者的区别。

所以,如果我们传入的是文件名中包含一个不存在的路径,写入的时候因为会处理掉“../”等相对路径,所以不会出错;判断、删除的时候因为不会处理,所以就会出现“No such file or directory”的错误。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大会 | CVPR VUHCS Workshop征稿啦,附带5项极具吸引力的比赛

    AI 科技评论按:CVPR 2018 将于 2018 年 06 月 18-22 日在美国盐湖城举办,除了主会议程,各式各样的 Workshop 也值得大家一探究...

    AI科技评论
  • “极客全明星赛”TCTF2019上海开战:争夺DEF CON CTF最后一席

    “极客全明星赛”——第三届腾讯信息安全争霸赛(Tencent Capture The Flag,简称TCTF)线下决赛于北京时间6月8日上午10:00,在上海西...

    云加社区
  • TCTF 2019收官 倾力打造“双一流”安全人才培养平台

    经过30小时不间断的激烈角逐,6月9日,有着“极客全明星赛”之称的第三届腾讯信息安全争霸赛(Tencent Capture The Flag,简称TCTF)在上...

    云加社区
  • 安恒信息助力全国大学生信息安全竞赛(东北赛区)举行

    6月2日,2018 年全国大学生信息安全竞赛创新能力实践赛(东北赛区)半决赛上半场在哈尔滨工业大学举办。来自东北三省的8支战队参与了此次比赛。今天,上半场比赛圆...

    安恒信息
  • 中国大学生程序设计竞赛 CCPC 落幕,清华夺冠!旷视承诺包揽未来 5 年赛事总赞助

    AI 科技评论按:经过 2018 年 11 月 24 — 25 日两日紧张的比赛,第四届中国大学生程序设计竞赛( CCPC )总决赛于 25 日落下帷幕,「清华...

    AI科技评论
  • 世界无人帆船大赛首次登陆中国,水手梦也能用代码实现

    如果你兼具程序员、工程师和水手的兴趣,或许不容错过这个世界上最大最悠久的无人帆船赛事。

    量子位
  • AI影响因子:4月份都有哪些企业研究院在影响你?

    「AI 影响因子」是雷锋网学术频道 AI 科技评论旗下数据库项目,旨在呈现国内企业研究院学术&开发实力,为高校学生及从业者提供在会议/期刊论文、数据集比赛及开发...

    AI科技评论
  • IMO 2021国家队6人名单出炉!CMO全国冠军入选,深圳中学独占2席

    最新消息:第62届国际数学奥林匹克竞赛(International Mathematical Olympiad)中国参赛名单公布!6 人入选,其中深圳中学独占 ...

    AI科技评论
  • Microsoft Azure 以太坊节点自动化部署方案漏洞分析

    为了迎合以太坊区块链1发展需求,Microsoft Azure2早在2016年9月九推出了以太坊节点走自动部署的模块。部署情况如下:

    Seebug漏洞平台
  • Microsoft Azure 以太坊节点自动化部署方案漏洞分析

    作者:sunsama@知道创宇404区块链安全研究团队 时间:2018/07/10

    Seebug漏洞平台
  • 清华夺ASC、ISC、SC三项超算比赛大满贯

    美国当地时间 11 月 15 日,2018 国际大学生超级计算机竞赛(SC2018)中,清华大学计算机系超算团队夺得总冠军,总分 88.398 分(满分 100...

    AI科技大本营
  • 中国军团称霸阅读理解竞赛RACE:微信AI称王,高中生单枪匹马力压腾讯康奈尔联队

    此次比赛所用数据集RACE,全称:Large-scale ReAding Comprehension Dataset From Examination,是一个从...

    量子位
  • 300万奖金池,第二届“中国版ImageNet”开赛

    近日,由创新工场、搜狗、美团点评、美图公司联合主办的“2018 AI Challenger 全球 AI 挑战赛”正式开赛。

    AI科技大本营
  • AI Challenger全球AI挑战赛开幕,300万奖金池,还可能获李开复投资

    投入千万元资金,新增10余个高质量数据集,由企业、大学和政府联合推动,2018 AI Challenger 全球AI挑战赛今天正式拉开帷幕。

    量子位
  • 信息学竞赛考什么内容

    (1)NOIP。NOIP全称是全国青少年信息学奥林匹克联赛。初赛为笔试题,复赛为机试题。初赛笔试题的考察内容比较广泛:计算机基础、网络基础、编程语言、数据结构、...

    海天一树
  • CVPR大规模行为识别竞赛连续两年夺冠,上交大详细技术分享

    【新智元导读】近日,视频行为理解领域的ImageNet竞赛——ActivityNet Challenge 2018在CVPR 会议上落下了帷幕。来自上海交通大学...

    新智元
  • AI 影响因子 10 月大盘点,腾讯 AI Lab 又夺第一

    「AI 影响因子」是雷锋网学术频道 AI 科技评论旗下数据库项目,旨在呈现国内企业研究院学术&开发实力,为高校学生及从业者提供在会议/期刊论文、数据集比赛及开发...

    AI科技评论
  • “天府杯”2018国际网络安全大赛落下帷幕,360Security摘得桂冠

    11月17日,持续2天的“天府杯”2018国际网络安全大赛暨2018天府国际网络安全高峰论坛在天府新区中国西部国际博览城落下帷幕。

    镁客网
  • ACM-ICPC 国际大学生程序设计竞赛亚洲区数据分析:Part 1

    在刚刚结束的第43届ACM国际大学生程序设计竞赛亚洲区总决赛(Asia-East Continent Final)中,由中山大学数据科学与计算机学院的三名本科生...

    用户1621951

扫码关注云+社区

领取腾讯云代金券