天天看點

百度杯2017年春秋歡樂賽_象棋

象棋

題目可以在i春秋的ctf訓練營裡找到

打開題目連結還真的給了一個象棋遊戲,我一高興還玩了兩把......

進入正題,題目中并沒有給出提示資訊,審查元素看看,發現了一個好東西

百度杯2017年春秋歡樂賽_象棋

看到這個正規表達式就知道接下來要寫代碼爆破檔案名了,正好昨天剛學了多線程,今天正好拿來練習

import requests
import threading
import queue
from queue import Queue


def text():
    url = \'http://f290ba2e5a2748c4851a87161a5f123c202c0ff2dccd467a.game.ichunqiu.com/js/\'
    strs = \'abcmlyx\'
    num = \'0123456789\'
    for i in strs:
        for j in strs:
            for h in num:
                for l in num:
                    for n in num:
                       new_url = url+i+j+\'ctf\'+h+l+n+\'.js\'
                       q.put(new_url)
                       
                       
def requ():
    while not q.empty():
        u = q.get(True, 1)
        try:
            r = requests.get(u).text
            if \'404\' not in r:
                print(r)
            q.task_done()
        except:
            q.put(u)

if __name__==\'__main__\':
    q = Queue()
    text()
    for each in range(300):
        t = threading.Thread(target=requ)
        t.daemon = True
        t.start()
        
    q.join()
          

這裡必須提一下,一開始沒有在get()後面設定參數,會導緻代碼在跑了幾秒後,i春秋就把你給ban了,是以這裡必須設定請求的時間間隔

百度杯2017年春秋歡樂賽_象棋