NSSCTF web入門題鑑賞

Alaso_shuang發表於2024-07-30

前言

思來想去還是覺得web好玩一點哈哈,嘗試過crypto更能懂那種痛楚

[SWPUCTF 2021 新生賽]Do_you_know_http

https://www.nssctf.cn/problem/385

這道題就是簡單的http協議
剛開始是'WLLM' browser! 這個題眼,於是我們上網路查詢一下,發現user agency並不是它,那就需要我們去改一下user agency !
hackbar操作一波,將 user 改為 WLLM 之後,發現它又彈出一段英文 You can only read this at local! 意思是你只能在本地觀看,於是我們需要把地址改為本地的 127.0.0.1

但是這裡有一個知識就是 X-Forwarded-For(XFF) 是用來識別透過 HTTP代理 或 負載均衡方式 連線到 Web伺服器的客戶端最原始的IP地址的HTTP請求頭欄位
所以我們需要寫 X-forwarded-for: 127.0.0.1 即可得到flag



[SWPUCTF 2021 新生賽]gift_F12

https://www.nssctf.cn/problem/382
so easy!
是一道關於JS原始碼查詢的問題
雙廚歡喜啊!!夢幻的婚禮作為我的解題BGM,疊 buff!

直接搜尋NSSCTF,發現沒有,繼續看看有沒有Flag!



[SWPUCTF 2021 新生賽]easy_md5

https://www.nssctf.cn/problem/386
涉及到 MD5碰撞的處理方式,還有PHP原始碼分析,一題多解模式

<?php 
 highlight_file(__FILE__);
 include 'flag2.php';
 
if (isset($_GET['name']) && isset($_POST['password'])){
    $name = $_GET['name'];
    $password = $_POST['password'];
    if ($name != $password && md5($name) == md5($password)){
        echo $flag;
    }
    else {
        echo "wrong!";
    }
 
}
else {
    echo 'wrong!';
}
?> 

底下反映的條件是 "wrong !"說明此時不符合要求,於是我們需要用PHP來請求傳值
變數不相同,但是MD5需要相同
MD5碰撞繞過可以有以下兩種形式:

  1. 0e字串繞過(因為PHP語言在遇到 0e 時,會自動認為他們倆 MD5 值相等)
  2. 陣列繞過(原理:MD5不能加密陣列,兩個陣列返回都是NULL)
    只要上述方法用的好,妥妥拿下 Flag !



[SWPUCTF 2021 新生賽]easyrce

https://www.nssctf.cn/problem/424

 <?php
error_reporting(0);
highlight_file(__FILE__);
if(isset($_GET['url']))
{
eval($_GET['url']);
}
?> 

開局就是PHP 但是出現了eval(eval 函式在 PHP 中用於執行字串作為 PHP 程式碼)在一般情況下,flag基本會在根目錄下,所以我們透過系統命令執行函式 system()函式來嘗試檢視根目錄檔案

於是檔案目錄下直接看到 flllllaaaaaaggggggg ,就是flag本身啊,直接檢視即可得到flag

相關文章