前言

在实际测试中,我们一遇到登录处用户名和密码都加密的例子,我们就没办法进行深入啦。就像下面的例子,其实加密只是增加我们的攻击成本,只要还是客户端,在提交服务器之前,所有的加密基本有迹可循,直接看本地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在加密解密中的例子(尽可能去深挖)相关推荐

  1. python加密与解密_Python字符串加密与解密的方法总结

    python对字符串做加密解密处理,大致有三种方法:base64,win32com.client和自定义加密解密算法,最安全可靠的方式,建议是自写加密解密算法. 1,使用base64: 代码示例: # ...

  2. 可以考的python方面的证书-python有证书的加密解密实现方法

    本文实例讲述了python有证书的加密解密实现方法.分享给大家供大家参考.具体实现方法如下: 最近在做python的加解密工作,同时加完密的串能在php上能解出来,网上也找了一些靠谱的资料,刚好也有时 ...

  3. aes加密算法python语言实现_python-AES加密解密

    转载https://www.jianshu.com/p/5d27888e7c93#!/xh #!/usr/bin/env python # -*- coding=utf-8 -*- "&qu ...

  4. Python—SJ—实验6—加密解密文本

    Python-SJ-实验6-加密解密文本 2020.1.29日 共五个部分 ①总体实验内容的文字介绍 ②实验的未作答版本 ③实验报告模板 ④实验作答版代码(不确保正确,仅供参考) ⑤实验报告(我自己的 ...

  5. python aes 加盐 加密解密

    python aes 加盐 加密解密 爬虫就是在学习的过程,前几天从某网站的js里学到的加密方式,通过下断点弄清加密原理后,用python复现一下,在这里和大家分享下 #--------引入模块--- ...

  6. nodejs java rsa_NodeJS加密解密及node-rsa加密解密用法详解

    要用nodejs开发接口,实现远程调用,如果裸奔太危险了,就在网上找了一下nodejs的加密,感觉node-rsa挺不错的,下面来总结一下简单的rsa加密解密用法 初始化环境 新建一个文件夹 node ...

  7. python des加密文件_Python DES加密解密方法 pyDes库 兼容中文

    单纯记录一下Python中DES加密解密的使用方式直接看代码: 依赖pyDes库安装> pip install pyDes 约定秘钥 python和java 加密和解密联调,兼容中文字符串 Py ...

  8. python rsa库_python RSA加密解密

    RSA加密(pip install pycryptodome) 总结: Pycrypto提供了比较完善的加密算法.RSA广泛用于加密与解密,还有数字签名通信领域.使用Publick/Private秘钥 ...

  9. python des加密文件_python DES3 加密解密

    背景:想给公司的进件流程写一套进件脚本,首先遇到的就是加密解密.公司用的 DES3 + base64 加密解密 一.安装  pycrypto模块,推荐用pycrypto编译文件,直接下载安装就行 ht ...

最新文章

  1. Microsoft宣称Visual Studio Installer将退役
  2. Android 图形系统之gralloc
  3. emacs vim IDE
  4. [JavaWeb-HTTP]request对象继承体系结构
  5. 信息学奥赛一本通(2056:【例3.7】最大的数)
  6. Linux——VIM开发C++自动补全(STL、括号)和开发环境配置
  7. Linux采用服务器网址,Linux实现https方式访问站点
  8. java csv 单元格格式_Java读写CSV格式的文件
  9. 无线通信基础(三):高斯噪声中的估计
  10. github issue 搜索_启用 GitHub Issue 作为博客留言系统 - Farseerfc的小窝
  11. 老男孩Linux高新运维第28期最终篇+老男孩Linux运维+老男孩linux运维全套
  12. 什么是线程安全?如何保证线程安全?
  13. 瀚高数据库企业版中的权限问题
  14. 外贸收汇方式你都真的清楚了吗?外贸B2B收款结汇方法详解!
  15. modx注册码_MODX:您从未使用过的最佳CMS?
  16. dlum1085-打表
  17. 为什么c语言中会引入ASCII,C语言中ASCII码是什么意思?
  18. 时间单位:s cs ms us ns ps fs as zs js ys 普朗克
  19. Padding设置方法
  20. 个人学习笔记——庄懂的技术美术入门课(美术向)19

热门文章

  1. How to change the background color of button in Footer area
  2. ActionTileViewController.js
  3. Kubernetes pod状态出现ImagePullBackOff的原因
  4. linux apt-get dpkg,linux的sudo apt-get install 和dpkg -i package.deb命令
  5. python正则表达式判断数字_Python机器学习之手写数字辨识及正则表达式
  6. python精通难_Python 为什么入门容易 精通难
  7. go语言变量声明、匿名变量
  8. python中exit的作用_python __enter__ 与 __exit__的作用,以及与 with 语句的关系
  9. android json 解析图片路径,Android 使用Gson解析Asset 目录下的.json文件
  10. combotree 可以异步加载吗_Unity AssetBundle 资源打包,加载,本地缓存方式,安卓,PC本地加载路径问题...