python解密_python在加密解密中的例子(尽可能去深挖)
前言
在实际测试中,我们一遇到登录处用户名和密码都加密的例子,我们就没办法进行深入啦。就像下面的例子,其实加密只是增加我们的攻击成本,只要还是客户端,在提交服务器之前,所有的加密基本有迹可循,直接看本地js是如何操作的即可。
在本文中,我会分析问题,然后用python来解决问题。这样,更贴合实际。
#下面是post提交的参数,可以看到,其中两处关键的地方,是加密过后的。
ZXh0Oz47bDzluJDlj7fmiJblr4bnoIHkuI3mraPnoa7vvIHor7fph43mlrDovpPlhaXjgII7Pj47Pjs7Pjs%2BPjs%2BPjs%2BPjs%2BMhWtdwzKgY7W7gTey2P%2BJbjqPKw%3D&pcInfo=Mozilla%2F5.0+%28Windows+NT+10.0%3B+WOW64%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F70.0.3538.102+Safari%2F537.36undefined5.0+%28Windows+NT+10.0%3B+WOW64%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F70.0.3538.102+Safari%2F537.36+SN%3ANULL
&typeName=%D1%A7%C9%FA
&dsdsdsdsdxcxdfgfg=8F430408BF32ABBBBF2A49C66FEDB4
&fgfggfdgtyuuyyuuckjg=0300D447DB23BC0305C35A9DECD3C4
&Sel_Type=STU
&txt_asmcdefsddsd=admin
&txt_pewerwedsdfsdff=
&txt_sdertfgsadscxcadsads=
1.检查本地js
image.png
这是我通过burp抓包后的结果,个人习惯在burp中看页面信息,方便一遍看一遍测试。
可以看到图中的js信息,我们把它js格式化一下,
具体网站是:js代码美化
function chkpwd(obj) {
if (obj.value != '') {
#这里是对dsdsdsdsdxcxdfgfg这个参数进行加密
var s = md5(document.all.txt_asmcdefsddsd.value + md5(obj.value).substring(0, 30).toUpperCase() + '11238').substring(0, 30).toUpperCase();
document.all.dsdsdsdsdxcxdfgfg.value = s;
} else {
document.all.dsdsdsdsdxcxdfgfg.value = obj.value;
}
}
function chkyzm(obj) {
if (obj.value != '') {
#这里是对fgfggfdgtyuuyyuuckjg参数加密
var s = md5(md5(obj.value.toUpperCase()).substring(0, 30).toUpperCase() + '11238').substring(0, 30).toUpperCase();
document.all.fgfggfdgtyuuyyuuckjg.value = s;
} else {
document.all.fgfggfdgtyuuyyuuckjg.value = obj.value.toUpperCase();
}
}
chkpwd 密码加密方式
md5(用户名+md5(密码)的前30位并且字母全大写+'11238')的前30为字母大写
chkyzm 验证码加密方式
md5(md5(验证码大写)的前30位大写字母+'11238')的前30位大写字母
可以看到,在我们试图去加密一个隐私时,估计也会采取这个方法,
但是我们会把我们怎么加密的去告诉公开吗?
其实厂家这样做的只是增加了攻击成本,但是并未实际保护。
2.python实现加密
其实就是我们用上面的加密方式去输出
//upper()是把前面字母全大写,其他就是md5一个知识点
#coding=utf-8
import hashlib
oj = hashlib.md5()
oj.update('admin')
str2 = '123456'+oj.hexdigest().upper()[0:30]+'11238'
oj.update(str2)
print oj.hexdigest().upper()[0:30]
//这里只是一条信息的加密方式,然后我们结合到字典来生成md5后的密码字典
with open('pass_md5.txt','a+') as fi:
with open('pass.txt','r') as f:
for i in f.readlines():
oj = hashlib.md5()
oj.update(i[:-1])
str2 = '123456'+oj.hexdigest().upper()[0:30]+'11238'
oj = hashlib.md5()
oj.update(str2)
fi.write(oj.hexdigest().upper()[0:30])
fi.write('\n')
# print oj.hexdigest().upper()[0:30]
ok,我们这里把生成的md5字典,结合burp就可以进行爆破啦。
不过可惜的是,验证码在参数验证中,是验证的,错后就会一直报验证码错误。
总结
日后会常常更新,人的愤怒都是对自己无能的愤怒,希望自己慢慢去做出一些改变。加油,挖洞,尽可能的去挖洞。
python解密_python在加密解密中的例子(尽可能去深挖)相关推荐
- python加密与解密_Python字符串加密与解密的方法总结
python对字符串做加密解密处理,大致有三种方法:base64,win32com.client和自定义加密解密算法,最安全可靠的方式,建议是自写加密解密算法. 1,使用base64: 代码示例: # ...
- 可以考的python方面的证书-python有证书的加密解密实现方法
本文实例讲述了python有证书的加密解密实现方法.分享给大家供大家参考.具体实现方法如下: 最近在做python的加解密工作,同时加完密的串能在php上能解出来,网上也找了一些靠谱的资料,刚好也有时 ...
- aes加密算法python语言实现_python-AES加密解密
转载https://www.jianshu.com/p/5d27888e7c93#!/xh #!/usr/bin/env python # -*- coding=utf-8 -*- "&qu ...
- Python—SJ—实验6—加密解密文本
Python-SJ-实验6-加密解密文本 2020.1.29日 共五个部分 ①总体实验内容的文字介绍 ②实验的未作答版本 ③实验报告模板 ④实验作答版代码(不确保正确,仅供参考) ⑤实验报告(我自己的 ...
- python aes 加盐 加密解密
python aes 加盐 加密解密 爬虫就是在学习的过程,前几天从某网站的js里学到的加密方式,通过下断点弄清加密原理后,用python复现一下,在这里和大家分享下 #--------引入模块--- ...
- nodejs java rsa_NodeJS加密解密及node-rsa加密解密用法详解
要用nodejs开发接口,实现远程调用,如果裸奔太危险了,就在网上找了一下nodejs的加密,感觉node-rsa挺不错的,下面来总结一下简单的rsa加密解密用法 初始化环境 新建一个文件夹 node ...
- python des加密文件_Python DES加密解密方法 pyDes库 兼容中文
单纯记录一下Python中DES加密解密的使用方式直接看代码: 依赖pyDes库安装> pip install pyDes 约定秘钥 python和java 加密和解密联调,兼容中文字符串 Py ...
- python rsa库_python RSA加密解密
RSA加密(pip install pycryptodome) 总结: Pycrypto提供了比较完善的加密算法.RSA广泛用于加密与解密,还有数字签名通信领域.使用Publick/Private秘钥 ...
- python des加密文件_python DES3 加密解密
背景:想给公司的进件流程写一套进件脚本,首先遇到的就是加密解密.公司用的 DES3 + base64 加密解密 一.安装 pycrypto模块,推荐用pycrypto编译文件,直接下载安装就行 ht ...
最新文章
- Microsoft宣称Visual Studio Installer将退役
- Android 图形系统之gralloc
- emacs vim IDE
- [JavaWeb-HTTP]request对象继承体系结构
- 信息学奥赛一本通(2056:【例3.7】最大的数)
- Linux——VIM开发C++自动补全(STL、括号)和开发环境配置
- Linux采用服务器网址,Linux实现https方式访问站点
- java csv 单元格格式_Java读写CSV格式的文件
- 无线通信基础(三):高斯噪声中的估计
- github issue 搜索_启用 GitHub Issue 作为博客留言系统 - Farseerfc的小窝
- 老男孩Linux高新运维第28期最终篇+老男孩Linux运维+老男孩linux运维全套
- 什么是线程安全?如何保证线程安全?
- 瀚高数据库企业版中的权限问题
- 外贸收汇方式你都真的清楚了吗?外贸B2B收款结汇方法详解!
- modx注册码_MODX:您从未使用过的最佳CMS?
- dlum1085-打表
- 为什么c语言中会引入ASCII,C语言中ASCII码是什么意思?
- 时间单位:s cs ms us ns ps fs as zs js ys 普朗克
- Padding设置方法
- 个人学习笔记——庄懂的技术美术入门课(美术向)19
热门文章
- How to change the background color of button in Footer area
- ActionTileViewController.js
- Kubernetes pod状态出现ImagePullBackOff的原因
- linux apt-get dpkg,linux的sudo apt-get install 和dpkg -i package.deb命令
- python正则表达式判断数字_Python机器学习之手写数字辨识及正则表达式
- python精通难_Python 为什么入门容易 精通难
- go语言变量声明、匿名变量
- python中exit的作用_python __enter__ 与 __exit__的作用,以及与 with 语句的关系
- android json 解析图片路径,Android 使用Gson解析Asset 目录下的.json文件
- combotree 可以异步加载吗_Unity AssetBundle 资源打包,加载,本地缓存方式,安卓,PC本地加载路径问题...