关于Requests交互超时的处理方式
拿 https://aes.cryptohack.org/ecb_oracle 这道题来做示范。
由于这个链接的本地服务器在外国,因此我们很容易就会连接超时。
如下一个脚本:
import requests
from tqdm import *
from Crypto.Util.number import *
known = b''
for i in range(31, 0, -1):
text = hex(bytes_to_long(b'0' * i))[2:]
result = s.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{text}')
t1 = result.json()["ciphertext"]
print(t1)
for j in range(0x31, 0x80):
n = b'0' * i + known + long_to_bytes(j)
text = hex(bytes_to_long(n))[2:]
# print(text)
guess = s.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{text}')
t2 = guess.json()["ciphertext"]
print(t2)
if t1[32:64] == t2[32:64]:
known += long_to_bytes(j)
print(known)
break
if known[len(known) - 1] == b'}':
break
print(known)
我们可以通过修改 requests
参数来修改重连次数,超时时间。
# 修改最大重连次数
requests.adapters.DEFAULT_RETRIES = 100000
# 新建一个容器
s = requests.Session()
# 将 timeout 变量中连接超时时间和接收超时时间改变(默认为10)
s.timeout = (1000.0, 1000.0)
于是下面这份代码就可以较为稳定的连接了。
import requests
from tqdm import *
from Crypto.Util.number import *
known = b''
requests.adapters.DEFAULT_RETRIES = 100000
s = requests.Session()
s.timeout = (1000.0, 1000.0)
for i in range(31, 0, -1):
text = hex(bytes_to_long(b'0' * i))[2:]
result = s.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{text}')
t1 = result.json()["ciphertext"]
print(t1)
for j in range(0x31, 0x80):
n = b'0' * i + known + long_to_bytes(j)
text = hex(bytes_to_long(n))[2:]
# print(text)
guess = s.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{text}')
t2 = guess.json()["ciphertext"]
print(t2)
if t1[32:64] == t2[32:64]:
known += long_to_bytes(j)
print(known)
break
if known[len(known) - 1] == b'}':
break
print(known)
# crypto{p3n6u1n5_h473_3cb}
关于Requests交互超时的处理方式的更多相关文章
- 基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式
在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括 ...
- Android中WebView的JavaScript代码和本地代码交互的三种方式
一.Android中WebView的漏洞分析最近在开发过程中遇到一个问题,就是WebView使用的时候,还是需要解决之前系统(4.2之前)导致的一个漏洞,虽然现在这个系统版本用户很少了,但是也不能忽视 ...
- Flex(ActionScript)与JavaScript交互的两种方式示例
随着各单位部门信息化进程的不断发展,互通互联.共享协调不断的被越来越多的客户所重视.很多新项目都要去必须能够集成已有的早期系统,至少也要能够实现交互对接.今天跟大家分享的是系统对接中ActionScr ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式
http://www.cnblogs.com/wuhuacong/p/4085682.html 在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交, ...
- Android中H5和Native交互的两种方式
Android中H5和Native交互的两种方式:http://www.jianshu.com/p/bcb5d8582d92 注意事项: 1.android给h5页面注入一个对象(WZApp),这个对 ...
- 利用QMP和QEMU虚拟机交互的几种方式
QMP是一种基于JSON格式的传输协议,我们能利用它与一个QEMU虚拟机实例进行交互,例如查询,更改虚拟机的状态,获取设备信息等等.下面是几种创建QMP的方法以及对其它的一些基本命令的使用: 1.基于 ...
- 深入分析:Fragment与Activity交互的几种方式(一,使用Handler)
这里我不再详细介绍那写比较常规的方式,例如静态变量,静态方法,持久化,application全局变量,收发广播等等. 首先我们来介绍使用Handler来实现Fragment与Activity 的交互. ...
- Django之前后端交互使用ajax的方式
1. 在项目中前后端数据相互是一种常态, 前后端交互使用的是ajax请求和form表单的请求两种方式" ajax与form表单的区别在于: form 是整个页面刷新提交的, 但是ajax ...
- Android Fragment与Activity交互的几种方式
这里我不再详细介绍那写比较常规的方式,例如静态变量,静态方法,持久化,application全局变量,收发广播等等. 首先我们来介绍使用Handler来实现Fragment与Activity 的交互. ...
- 【Python】 requests 各种参数请求的方式
Python使用requests发送post请求 1.我们使用postman进行接口测试的时候,发现POST请求方式的编码有3种,具体的编码方式如下: A:application/x-www-form ...
随机推荐
- 使用 crontab 设置 Homebrew 自动更新
本人有强迫症,希望自己电脑上安装的软件永远是最新的.App Store 有自动更新功能,然而 Homebrew 则没有自动更新的选项.每次手动更新的话时间长了又感觉麻烦.后来发现可以使用 cronta ...
- VMware Workstation虚拟机 + 许可证密钥
VMware Workstation虚拟机 + 许可证密钥 VMware Workstation是什么? VMware简介 VMware 安装 VMware系统要求 VMware 版本下载地址 许可证 ...
- WebShell流量特征检测_中国菜刀篇
80后用菜刀,90后用蚁剑,95后用冰蝎和哥斯拉,以phpshell连接为例,本文主要是对这四款经典的webshell管理工具进行流量分析和检测. 什么是一句话木马? 1.定义 顾名思义就是执行恶意指 ...
- JavaScript – ES Module
前言 关于 JavaScript Modular 的多种版本和历史看这篇. 参考: 阮一峰 – Module 的语法 阮一峰 – Module 的加载实现 Export 语法 逐个 export 在想 ...
- QT原理与源码分析之如何开发一个自定义的绘图设备和QT绘图引擎?
简介 本文将介绍如何自定义QT绘图设备类和如何自定义QT绘图引擎类. 目录 QT绘图设备抽象类QPaintDevice QT绘图引擎抽象类QPaintEngine 自定义绘图设备类 自定义绘图引擎类 ...
- mac M1,M2,M3芯片踩坑 nodejs ruby brew
问题&解决方法 先说解决方法, 感兴趣的可以了解事情的经过, 也许我描述的问题不专业, 但确实解决了当下的问题, 欢迎留言讨论 这里主要是两个问题, 一个是启用rosetta模式失败, 一个是 ...
- MSF使用方法
https://blog.csdn.net/weixin_45588247/article/details/119614618https://github.com/ttonys/Scrapy-CVE- ...
- UsbHostManager解析
UsbHostManager和UsbDeviceManager的区别在于,UsbDeviceManager是将手机作为一个设备,比如手机连上电脑,使用adb.mtp等:而UsbHostManager, ...
- /proc/buddyinfo
在应用程序设计过程中,内存是很重要的资源,而计算机主机的内存资源时有限的.一般而言我们可以申请到的内存是有限的,并不是想申请多大就有多大就可以申请多大的./proc/buddyinfo文件里,就记录着 ...
- ORM的设计思想
1 以面向对象的思想来完成对于数据库的操作! 2 万物皆对象