• 信安小组暑假作业


    web安全作业 2019年8月11日

    (由于markdown 的文件要上交,所以就不插入图片了,也不知道图片传来传去就传没了)

    题目一摩斯密码

    .. .-.. --- ...- . -.-- --- ..-

    从CSDN上找到的摩斯密码转换代码:原理为使用字典,直接进行转换

    python代码
    from __future__ import print_function
    a = input("input the string:")
    s = a.split(" ")
    dict = {'.-': 'A',
            '-...': 'B',
            '-.-.': 'C',
            '-..':'D',
            '.':'E',
            '..-.':'F',
            '--.': 'G',
            '....': 'H',
            '..': 'I',
            '.---':'J',
            '-.-': 'K',
            '.-..': 'L',
            '--': 'M',
            '-.': 'N',
            '---': 'O',
            '.--.': 'P',
            '--.-': 'Q',
            '.-.': 'R',
            '...': 'S',
            '-': 'T',
            '..-': 'U',
            '...-': 'V',
            '.--': 'W',
            '-..-': 'X',
            '-.--': 'Y',
            '--..': 'Z',
            '.----': '1',
            '..---': '2',
            '...--': '3',
            '....-': '4',
            '.....': '5',
            '-....': '6',
            '--...': '7',
            '---..': '8',
            '----.': '9',
            '-----': '0',
            '..--..': '?',
            '-..-.': '/',
            '-.--.-': '()',
            '-....-': '-',
            '.-.-.-': '.'
            };
    for item in s:
        print (dict[item],end='')
    #print (s)
    
    程序运行效果

    input the string:.. .-.. --- ...- . -.-- --- ..-
    ILOVEYOU

    题目二URL编码

    %66%6c%61%67%7b%61%6e%64%20%31%3d%31%7d

    代码

    python有直接的url解码 编码的库 urllib.parse,直接调用即可

    quote()编码;

    unquote()解码;

    import urllib.parse
    
    s=input('输入url解码字符串')
    
    print(urllib.parse.unquote(s))
    程序运行结果

    输入url解码字符串%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7d
    flag{and 1=1}

    题目二URL编码

    题目三看我回旋踢?

    synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}

    这道题是凯撒加密(别问我怎么知道的,我是查的),但是我猜测一般情况下,这种题都是 flag{XXXX}之类的答案,这道题应该就是 falg》synt 偏移量13
    所以
    写了一个凯撒加密,偏移量13

    代码
    s=input('凯撒加密字符串')
    n=eval(input('偏移量(这道题是13)'))
    for i in s:
        if(ord(i)< 97 or ord(i)> 122):
            print(i,end='')
        else:
            d=(ord(i)-97+26-n)%26
            print(chr(d+97),end='')
        
    
    运行效果

    凯撒加密字符串synt{5pq1004q-86n5-46q8-o720-oro5on0417r1} 偏移量(这道题是13)13
    flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}

    题目四MD5

    e00cf25ad42683b3df678c61f42c6bda

    因为md5是一种类似于有损压缩的加密算法,所以没有可以直接解密的算法。
    只能去撞库。
    通过一些百度上搜到的md5解密网站,可以直接破解出,上面密码解密为admin1,但是题目要求使用python完成,那么就通过发送md5解密网站的请求去破解?

    可以试试这么做
    我找到这个网站会破解MD5并返回答案在html中显示,就想到了用爬虫去做这道题

    https://md5.gromweb.com/?md5=e00cf25ad42683b3df678c61f42c6bda
    ?后面直接放置需要破解的md5字符串,所以可以直接用python爬虫 爬取网站后缀上需要破解的md5值就行了。

    爬完之后,返回的答案,藏在

    < e m class="long-content string">admin1</ e m></ p>这样的标签 中

    所以查了一下用正则表达式

    print(re.findall(r'<em class="long-content string">(.+?)</em></p>',r.text))

    输出出来

    破解代码
    import requests
    import re
    s=input('破解的md5:')
    url = 'https://md5.gromweb.com/?md5='+s
    try:
        r = requests.get(url,timeout=20)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
    except:
        print('网络异常或页面未找到,请重试')
    print(re.findall(r'<em class="long-content string">(.+?)</em></p>',r.text))
    
    最终效果
    破解的md5:e00cf25ad42683b3df678c61f42c6bda
    ['admin1']

    题目五 Rabit

    U2FsdGVkX1/+ydnDPowGbjjJXhZxm2MP2AgI

    在这个网站
    https://www.sojson.com/encrypt_rabbit.html
    直接解密
    得到

    Cute_Rabbit

    怎么非要用python实现呢?
    我也想不出来了,就这样吧.....

  • 相关阅读:
    udev 禁止某些驱动自动加载
    AT91SAM9XEK ramdisk 启动笔记
    MTD 工具使用
    kmp问题
    野指针 空指针 通用指针
    manacher算法实现
    manacher算法
    strcpy和strlen
    冒泡排序
    C++的重载(overload)与重写(override
  • 原文地址:https://www.cnblogs.com/hx97/p/11335155.html
Copyright © 2020-2023  润新知