前言
思來想去還是覺得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碰撞繞過可以有以下兩種形式:
- 0e字串繞過(因為PHP語言在遇到 0e 時,會自動認為他們倆 MD5 值相等)
- 陣列繞過(原理: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