作业提交
class Counter:
def __init__(self):
self.num = 0
def request(self, flow: http.HTTPFlow):
self.num = self.num + 1
ctx.log.info("We've seen %d flows" % self.num)
# 判断是否是想要的请求信息,通过url进行判断
def response(self, flow: http.HTTPFlow):
name_url = "https://stock.xueqiu.com/v5/stock/batch/quote.json?_t="
if name_url in flow.request.pretty_url:
print("---------begin---------")
# 修改原始数据
data = json.loads(flow.response.text)
data["data"]["items"][1]["quote"]["name"] = "阿里巴巴" * 2
data["data"]["items"][2]["quote"]["name"] = ""
# 赋值给响应信息
flow.response.text = json.dumps(data)
else:
print("no exists!!!!!")
addons = [
Counter()
]
class Counter(object):
“”"
request, response 皆为固定写法,对应每一次请求与响应
“”"
def init(self):
self.num = 0
def request(self, flow: http.HTTPFlow):
self.num = self.num + 1
ctx.log.info("We've seen %d flows" % self.num)
# 判断是否是想要的请求信息,通过url进行判断
def response(self, flow):
# 抓包确定需要修改的信息在哪个接口中,并判断是否在pretty_url中
if "https://stock.xueqiu.com/v5/stock/batch/quote.json?_t=" in flow.request.pretty_url:
# 修改原始数据
# 获取的text 是str类型,如果要对数据进行操作,需要进行数据转换
data = json.loads(flow.response.text)
# 依次修改123只股票的名称
data["data"]["items"][0]["quote"]["name"] = data["data"]["items"][0]["quote"]["name"]
data["data"]["items"][1]["quote"]["name"] = data["data"]["items"][1]["quote"]["name"]*2
data["data"]["items"][2]["quote"]["name"] = ""
# 赋值给响应信息
flow.response.text = json.dumps(data)
addons:固定写法,加入Counter插件到列表中
addons = [
Counter()
]
修改前
修改后
命令
mitmdump -p 8887 -s demo2.py
代码