雷池waf 逆向

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
逆向分析

部分python代码

复制代码
cp = execjs.compile(open('waf.js','r',encoding='utf-8').read())
result = cp.call('getResult', data)
print(result)
url = "/challenge/v2/api/verify"
data = {
    "issue_id": issue_id,
    "result": result,
    "serials": [],
    "client": {
        "visitorId": "",
    }
}
headers = {
    "Accept": "*/*",
    "Accept-Language": "zh-CN,zh;q=0.9",
    "Cache-Control": "no-cache",
    "Connection": "keep-alive",
    "Sec-Fetch-Dest": "empty",
    "Sec-Fetch-Mode": "cors",
    "Sec-Fetch-Site": "cross-site",
}
data = json.dumps(data, separators=(',', ':'))
response = session.post(url, headers=headers, data=data)

jwt = response.json()['data']['jwt']
session.cookies.set("sl-challenge-jwt", jwt)
url = "/notice/"
response = session.get(url, headers=headers)

print(response.text)
print(response.cookies)
print(response.status_code)
复制代码
cp = execjs.compile(open('waf.js','r',encoding='utf-8').read())
result = cp.call('getResult', data)
print(result)
url = "/challenge/v2/api/verify"
data = {
    "issue_id": issue_id,
    "result": result,
    "serials": [],
    "client": {
        "visitorId": "",
    }
}
headers = {
    "Accept": "*/*",
    "Accept-Language": "zh-CN,zh;q=0.9",
    "Cache-Control": "no-cache",
    "Connection": "keep-alive",
    "Sec-Fetch-Dest": "empty",
    "Sec-Fetch-Mode": "cors",
    "Sec-Fetch-Site": "cross-site",
}
data = json.dumps(data, separators=(',', ':'))
response = session.post(url, headers=headers, data=data)

jwt = response.json()['data']['jwt']
session.cookies.set("sl-challenge-jwt", jwt)
url = "/notice/"
response = session.get(url, headers=headers)

print(response.text)
print(response.cookies)
print(response.status_code)

结果

总结

1.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。

相关推荐
mayaairi3 分钟前
Vue2 事件绑定完全指南:从入门到原理
前端·javascript·vue.js
鲨鱼辣钊2 小时前
【FastAPI筑基-Day19】APScheduler定时任务全实战|自动执行、动态启停、后台常驻
java·spring·fastapi
不正经学生4 小时前
C语言预处理详解:编译器真正动手之前的那些事
c语言·开发语言·算法·面试·bug
门思科技4 小时前
LoRaWAN 设备类别:Class A、B、C 对比与选型指南
c语言·开发语言·php
ℋᙚᵐⁱᒻᵉ鲸落6 小时前
移动端滑动手势冲突:overflow: auto导致外层横向滑动失效
前端·javascript·css·vue.js·html
恋恋西风6 小时前
C++ 理解 std::thread 在单核和多核上的行为差异
开发语言·c++
学长毕业设计6 小时前
基于SpringBoot的公益基金管理系统(源码+文档+讲解视频)
java·spring boot·后端
Brilliantwxx6 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
东小西6 小时前
【SAA实战】第 3 篇 · 工具调用全攻略:把业务能力交给 Agent 自己调度
java·后端·spring
东小西7 小时前
【SAA实战】第 4 篇 · Agent 短期记忆:saver 让 Agent 跨轮记得住(threadId 隔离)
java·后端·spring