美文网首页
ctf-实验吧-编程-快速爆破

ctf-实验吧-编程-快速爆破

作者: Cookie_hunter | 来源:发表于2018-03-20 15:45 被阅读0次

    生成密文对比求明文

    # -*- coding: utf-8 -*- 
    import requests
    import re
    import hashlib
    
    
    url="http://ctf5.shiyanbar.com/ppc/sd.php"
    session=requests.session()                      #保持连接
    response=session.get(url)
    response.encoding = 'utf-8'                     #防止输出乱码
    
    html=str(response.content)                      #获得源代码
    
    keyword=re.compile(r'<div.*?sha1.*?>(.*?)</div>',re.S) #截取生成的密文
    #print (keyword)
    
    item=re.findall(keyword, html)                      #检验密文是否真的存于源代码,返回一个list
    #print (item)
    
    str1 = "".join(item)                                #将list转换为str
    print ('密文=',str1)                                      #输出密文str1
    
    for i in range(100000):                                 
        t = hashlib.md5(str(i).encode('utf-8')).hexdigest()
        t = hashlib.sha1(t.encode('utf-8')).hexdigest()     #合成一个密文
        #print (t)
        if t == str1:                                       #如果两个密文相同,获取明文i
             # print(t)
             # print(i)
             break
            
    print ('明文=',i)                                         #打印明文i的值
    
    hh=session.post("http://ctf5.shiyanbar.com/ppc/sd.php",data={'inputNumber':i}) #提交i
    #建立一个关键字列表
    lisa=['key','flag','KEY','Flag','Key','FLAG']
    
    
    for x in lisa:
        #在源码中搜索lisa中的每个关键字
        if  x  in  str(hh.text):
            #用res接收找到的res关键字的起始位置和末位置
            res=re.search(x,str(hh.text)).span()
            print("IS THIS ONE ?")
            #打印出从res[0]-res[-1]+8的这一段文本;因为答案就是关键字之后的一定长度的文本
            #当然+8是测试出来的,因为一开始不知道长度可以加一个大点的数值,如+20
            print(str(hh.text)[res[0]:int(res[-1])+28])
          
    

    结果

    密文= 4d3409c523f685db370ecf597b96889dc20eb768
    明文= 29037
    IS THIS ONE ?
    flag is CTF{BlAsT_FasT_Pr0gRamE}
    [Finished in 0.5s]
    

    相关文章

      网友评论

          本文标题:ctf-实验吧-编程-快速爆破

          本文链接:https://www.haomeiwen.com/subject/zgmjqftx.html