python写一个md5解密器示例

yipeiwu_com7年前Python基础

前言:

md5解密,百度了一下发现教程不是很多也不详细。

这个图都没一张。。。

0x01

windows环境,kali也可以啊

burpsuite

requests模块

bs4模块

0x02:

设置好代理

开启burpsuite

(我这是新版的burp)

这代表设置好了。

然后开启抓包

然后,顺便输入个MD5点解密

然后我们可以在burp上看到抓取的包

丛图中我们可以看到数据是被url加密了的。我们找个网站进行url解密

解密之后

然后我们将其数据转换为字典的模式

然后创建一个测试脚本看看能不能成功访问

(200会返回代码,500返回报错)

我们可以看到请求成功了,

我们接下来去找解密出来的md5

发现其在em标签,上bs4模块

然后我们就可以看到过滤好的解密内容与md5

然后我们写一个命令参数的脚本

import requests
from bs4 import BeautifulSoup
import optparse
def main():
  usage="[-m md5 decryption]"
  parser=optparse.OptionParser(usage)
  parser.add_option('-m',dest='md5',help='md5 decryption')
  (options,args)=parser.parse_args()
  if options.md5:
    md5=options.md5
    Md5(md5)
  else:
    parser.print_help()
    exit()

def Md5(md5):
  header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
  data = {
    '__VIEWSTATE': '/wEPDwUKMTM4NTE3OTkzOWRkP4hmXYtPPhcBjbupZdLOLfmeTK4=',
    '__VIEWSTATEGENERATOR': 'CA0B0334',
    '__EVENTVALIDATION': '/wEWAwK75ZuyDwLigPTXCQKU9f3vAheUenitfEuJ6eGUVe2GyFzb7HKC',
    'key': '{}'.format(md5),
    'jiemi': 'MD5解密'
  }
  url = "http://pmd5.com/"
  r = requests.post(url, headers=header, data=data)
  sd = r.content.decode('utf-8')
  esdf = BeautifulSoup(sd, 'html.parser')
  for l in esdf.find_all('em'):
    g = l.get_text()
    print('--------[*]PMD5接口--------')
    print(g)

if __name__ == '__main__':
  main()

然后运行

完美解出!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python 通过pip安装Django详细介绍

Python 通过pip安装Django详细介绍 经过前面的 Python 包管理工具的学习,接下来我们就要基于前面的知识,来配置 Django 的开发与运行环境。 首先是安装 Djan...

Python返回真假值(True or False)小技巧

Python返回真假值(True or False)小技巧

在昨天关于substring的blog中有如下一段代码: 也许你已经发现,在Python 3中其实有办法只用一行完成函数: 复制代码 代码如下: >>> def is...

python matplotlib画盒图、子图解决坐标轴标签重叠的问题

python matplotlib画盒图、子图解决坐标轴标签重叠的问题

在使用matplotlib画图的时候将常会出现坐标轴的标签太长而出现重叠的现象,本文主要通过自身测过好用的解决办法进行展示,希望也能帮到大家,原图出现重叠现象例如图1: 代码为:...

Python面向对象特殊成员

类的特殊成员之call #!/usr/bin/env python # _*_coding:utf-8 _*_ class SpecialMembers: # 类的构造方法...

Python动态参数/命名空间/函数嵌套/global和nonlocal

1. 函数的动态参数    1.1 *args 位置参数动态传参 def chi(*food): print("我要吃", food) chi("大米饭", "小米饭")...