mitmproxy第一次尝试-猿人学第九题
启动
mitmdump -s http_proxy.py -p 9000
替换js代码
# -*- coding: utf-8 -*-
import re
main_url = 'http://match.yuanrenxue.com/match/9' # 9
js_url = 'http://match.yuanrenxue.com/static/match/safety/match9/udc.js'
# http://match.yuanrenxue.com/static/match/safety/match9/udc.js
def response(flow):
if flow.request.url.startswith(main_url):
# if(flow.response.text.startswith('<body>')):
# file_path = "C:/Users/natpacket/Desktop/js/yuanrenxue/9/replace_9.html"
# with open(file=file_path, mode='r', encoding='utf-8') as f:
# replace_js = f.read()
# flow.response.text = replace_js
# print('debugger替换成功')
if (flow.response.text.startswith('<body>')):
# file_path = "C:/Users/natpacket/Desktop/js/yuanrenxue/9/replace_9.html"
# with open(file=file_path, mode='r', encoding='utf-8') as f:
# replace_js = f.read()
# flow.response.text = replace_js
# print('debugger替换成功')
replace_str = r'location.reload\(\)'
replace_str1 = r'setInterval'
replace_str2 = r'}\[[\s\S]*?\)\);'
flow.response.text = re.sub(replace_str, '', flow.response.text)
flow.response.text = re.sub(replace_str1,
'function setInterval(a,b){console.log("正在调用setInterval");};setInterval',
flow.response.text)
# flow.response.text = re.sub(replace_str2,
# "});",
# flow.response.text)
if flow.request.url.startswith(js_url):
file_path = "C:/Users/natpacket/Desktop/js/udc.js"
with open(file=file_path, mode='r', encoding='utf-8') as f:
replace_js = f.read()
flow.response.text = replace_js+"console.log('当前时间戳',Math.round(new Date().getTime()/1000).toString());var _decrypt = decrypt;decrypt = function(a){console.log('时间戳',a);var res = _decrypt(a);console.log('结果',res);return res};"
# flow.response.text="test"
print('js注入成功')
mitmproxy第一次尝试-猿人学第九题的更多相关文章
- 在CentOS上部署Asp.Net MVC3的第一次尝试
关注mono已经很久了,现在才有时间真正的尝试一下在linux中部署asp.net的网站,也算是记录 一下自己的第一次尝试吧. 我的实践的环境是win7 + VM10 + CentOS6.5 下面就是 ...
- B君的第九题
B君的第九题 对于一个排列\(a_1, a_2,\dots,a_n\),如果对于一个i满足\(a_{i-1}<a_i>a_i+1\)则称i是一个极大值.我们认为\(a_0=a_{n+1}= ...
- HDU 6298.Maximum Multiple-数学思维题(脑子是个好东西,可惜我没有) (2018 Multi-University Training Contest 1 1001)
暑假杭电多校第一场,这一场是贪心场,很多贪心的题目,但是自己太菜,姿势挫死了,把自己都写吐了... 2018 Multi-University Training Contest 1 HDU6298.M ...
- DQN的第一次尝试 -- 软工结对编程第一次作业
DQN的第一次尝试 在本篇博客中将为大家形象地介绍一下我对DQN的理解,以及我和我的队友如何利用DQN进行黄金点游戏.最后我会总结一下基于我在游戏中看到的结果,得到的dqn使用的注意事项和这次游戏中我 ...
- CTF---Web入门第九题 FALSE
FALSE分值:10 来源: iFurySt 难度:易 参与人数:4567人 Get Flag:2144人 答题人数:2157人 解题通过率:99% PHP代码审计 hint:sha1函数你有认真了解 ...
- 第一次尝试使用JAVA编写的ATM机程序
package study; import java.util.Scanner; public class ATM { private static int[] users = { 111111, 2 ...
- leetcode第九题--Palindrome Number
Problem: Determine whether an integer is a palindrome. Do this without extra space. click to show sp ...
- c3p0数据源的第一次尝试
开始补习 以前学习过的基础 正在尝试从c3p0 获取到connection 好的,首先上代码吧 public static DataSource ds = null; static { ComboPo ...
- 计蒜客 30990.An Olympian Math Problem-数学公式题 (ACM-ICPC 2018 南京赛区网络预赛 A)
A. An Olympian Math Problem 54.28% 1000ms 65536K Alice, a student of grade 66, is thinking about a ...
随机推荐
- Jmeter将token设置为全局变量并跨线程进行传递参数
我们在用Jmeter做性能测试时,一般会涉及到多个线程组.而线程之间或接口之间会对上个参数有依赖性,那么我们将接口中的参数提取出来供其他线程组或接口调用呢这就需要使用到__setProperty函数, ...
- LVM与磁盘配额
LVM与磁盘配额 目录 一.LVM概述 1.1.LVM 概述 1.2.LVM机制的基本概念 二.LVM 管理命令 2.1.主要命令 2.2.LVM命令详解 三.设置磁盘配额 3.1.磁盘配额的概述 3 ...
- OSPF多区域原理与配置
OSPF多区域原理与配置 目录 一.OSPF多区域生成 1.1.生成OSPF多区域的原因 二.OSPF的三种通信量 2.1.域内通信量 2.2.域间通信量 2.3.外部通信量 三.OSPF的路由器类型 ...
- 我是如何用 ThreadLocal 虐面试官的?
我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复[资料],即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板. Thr ...
- PL/SQL插入数据报错:Access violation at address 00413A81 in module 'plsqldev.exe'. Read of address 00000000
前言 今天同事在使用plsql给oracl数据库插入记录时报错:Access violation at address 00413A81 in module 'plsqldev.exe'. Read ...
- R的基本使用
一.R的安装 1.进入R的官网,https://cran.r-project.org/ 2.下载对应的版 Downloaad R for Windows > base > Download ...
- NAT介绍与配置
一,NAT定义 二.NAT的分类 三,NAT配置实验 一,NAT定义 NAT(Network Address Translation),网络地址转换技术,随着Internet的发展,IPv4地址枯竭已 ...
- flutter中ListView的详细讲解
1.ListView的简单介绍 ListView是最常用的可以滚动组件之一, 它可以沿一个方向进行线性排列所有的子组件. 下面是ListView的属性值介绍: scrollDirection:列表的滚 ...
- RabbitMQ 常用知识点总结
基础 为什么使用 MQ? 1.削峰:在某个模块接收到超过最大承受的并发量时,可以通过 MQ 排队来使这些削减同一时刻处理的消息量.减小并发量. 2.解耦:在发送 MQ 处理业务时,可以使业务代码与当前 ...
- flink数据广播场景总结
数据集广播,主要分为广播变量,广播维表(数据集)两种,一种为变量,一种为常量(抽象的说法): 一.数据广播背景 对于小变量,小数据集,需要和大数据集,大流进行联合计算的时候,往往把小数据集广播出去,整 ...