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

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包 内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!侵权通过头像私信或名字简介叫我删除博客谢谢。
部分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.具体更多细节请看名字进入详情了解更多细节,具体细节要你自己还原,相信你也能调试出来。

相关推荐
IT_陈寒15 小时前
Vue这个坑我跳了两次,原来问题出在这
前端·人工智能·后端
kyriewen15 小时前
我用 50 行代码重写了 React Router 核心,终于搞懂了前端路由原理
前端·javascript·react.js
人活一口气15 小时前
Spring Boot与AIGC的完美结合:从零搭建智能内容生成平台
java·spring boot·aigc
WebInfra16 小时前
Rspack 2.1 发布:React Compiler 提速 10 倍!
前端
李明卫杭州16 小时前
CSS 媒体查询详解:一文掌握响应式设计的核心技术
前端
lichenyang45316 小时前
从 H5 按钮到 OpenHarmony 能力调用:我如何理解 ASCF 的运行链路
前端
下家17 小时前
我放弃了 Vue/React,选择自研框架
前端·前端框架
Asize17 小时前
HTML5 Canvas 基础:从按帧动画到 ECharts 数据可视化
前端·javascript·canvas
像我这样帅的人丶你还17 小时前
Java 后端详解(三):全局异常处理与 JPA 数据库映射
java·后端
默_笙17 小时前
🎄 后端给我一堆扁平数据,我 10 行代码把它变成了树
前端·javascript