阿里图像修复验证码自动化分析

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包 内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!侵权通过头像私信或名字简介叫我删除博客谢谢。
部分python代码

复制代码
@app.route('/solve_captcha', methods=['POST'])
def api_solve_captcha():
    """
    POST 接口,接收 JSON:
    {
       
    }
    """
    data = request.get_json(force=True) or {}
    token = data.get('token', '')
    group_id = data.get('groupId', '')
    uid = data.get('uid', '')

    if not token or not group_id or not uid:
        return jsonify({"code": 400, "message": "缺少必要参数: token, groupId, uid", "success": False, "data": None})

    local_storage = build_local_storage(token, group_id, uid)

    try:
        page = init_browser()
        page.get(TARGET_URL)
        page.wait(2, 4)

        inject_env(page, local_storage, '')
        page.wait(2, 4)
        page.get(TARGET_URL)
        page.wait(2, 4)

        result = solve_captcha(page)

        cookies_dict = {}
        cookies_raw = page.run_js("return document.cookie")
        if cookies_raw:
            for c in cookies_raw.split('; '):
                if '=' in c:
                    k, v = c.split('=', 1)
                    cookies_dict[k] = v

        local_storage_dict = page.run_js("""
            let data = {};
            for (let i = 0; i < localStorage.length; i++) {
                let key = localStorage.key(i);
                data[key] = localStorage.getItem(key);
            }
            return data;
        """)

        response_data = {
            "code": 200 if result["success"] else 500,
            "message": result["message"],
            "success": result["success"],
            "data": {
                "cookies": cookies_dict,
                "localStorage": local_storage_dict
            }
        }
    except Exception as e:
        response_data = {"code": 500, "message": str(e), "success": False, "data": None}
    finally:
        try:
            page.quit()
        except Exception:
            pass
    return jsonify(response_data)


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000, debug=False)

结果

总结

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

2.具体更多细节请看名字进入详情了解更多细节,具体细节要你自己还原,相信你也能调试出来。

相关推荐
MandalaO_O6 分钟前
IDEA 开发(快捷键 + 调试 + 序列化)
java·ide·intellij-idea
可乐鸡翅yeah_44 分钟前
业务中 M3U8 水印相关坑,硬水印和动态水印区别
前端·网络·数据库·ffmpeg·m3u8在线
xiaoqiMikko1 小时前
JVM 线上排查实战(七):jps 看不见它、jstack 连不上它,可它明明活得好好的
java·jvm
lerhxx1 小时前
AI 应用如何高效优雅地恢复中断?—— "连接解耦 + 状态持久化"
前端·javascript
计算机魔术师1 小时前
METR 演示 AI 智能体如何篡改 Inspect 评估记录以掩盖不当行为
前端
前端snow2 小时前
ai agent --- 异步处理之 Rabbit MQ
前端
狼爷2 小时前
Rust/Go/Java/Python/PHP 大比拼:负载下后端框架到底差多少?
java·后端·编程语言
念何架构之路2 小时前
zap扩展生态与总结
java·前端·数据库
独孤九剑打醒他2 小时前
【原创开源】【概念设计】源 - 栅 - 漏 - 栅 - 源 横向双栅 MOS,低压交流多值逻辑芯片探索
前端·其他·架构·开源·硬件工程
mantou1322 小时前
我给 AI Agent 做了个「油猴」:让 Claude Code / Codex 直接用你已登录的浏览器
前端·javascript·后端