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

声明

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

相关推荐
happymaker06261 小时前
Spring学习日记——DAY04(复杂对象创建,AOP静态代理)
java·开发语言·spring
Jack N1 小时前
2026 浏览器原理 常见面试题(附答案)
前端·html·浏览器
何何____1 小时前
CSS 易混淆易错知识点
前端·css
小江的记录本1 小时前
【MySQL】《MySQL日志面试背诵版+思维导图》(核心考点 + MySQL 8.0最新优化)
java·数据库·后端·python·sql·mysql·面试
北山有鸟1 小时前
常用的快捷键
linux·前端·chrome·单片机·学习
KaMeidebaby1 小时前
卡梅德生物技术快报|噬菌体筛选全流程技术方案:弧菌抑菌菌株筛选、特性鉴定与效果测试
前端·数据库·其他·百度·新浪微博
我命由我123451 小时前
Android Framework P2 - 开机启动 Zygote 进程、Zygote 的预加载机制
android·java·开发语言·python·java-ee·intellij-idea·zygote
JAVA面经实录9171 小时前
Java Codex 企业标准Prompt库
java·开发语言·prompt
摇曳的精灵1 小时前
直接关掉jar包,会影响没有执行完的任务吗
java·jar