页面校验请求MmEwMD(转载)

本文介绍了作者在分析智联招聘企业端登录时遇到的MmEwMD参数构造问题。通过一步步的JS调试,发现xhr被hook,并分析了混淆过的outer.js,揭示了动态加载代码的过程。文章提供了字符串变量替换表,有助于理解复杂混淆逻辑。
摘要由CSDN通过智能技术生成
写在前面

本人没有深入钻研过前端技术,JS属于亚文盲水平,这篇分析的目的是分享解决解决问题的思路。

  • 提出假设,证明它或推翻它,如果推翻,就再提出一个新的假设。该走的弯路,一米都不能少
  • 抛开所有不可能的,剩下的,不管多么匪夷所思,那都是事实
  • 坚信JS是纯客户端逻辑,理论上一定可破解,需要的是时间和耐心
  • 凡是不能杀死你的,最终都会让你更强
问题描述

智联招聘企业端登陆,输入验证码后,点击验证按钮,抓包获得以下请求

https://passport.zhaopin.com/chk/verify?callback=jsonpCallback&MmEwMD=12quxKHKjs0Ueapv9t.fUcurtt8lkuPKNW.iigEyOYlrTOxwONa0ImcCQ8gvRZic3MnqU1WUPdIESozanNi1FCB38raqp0l5vVLXlYgSCIWxh6rR.3q0lK304tlBMH49LDm8FUL4hkfboCm_lhWv9qO7coH_FfFRY1fC8xIZ7_NljGkOJvIWaaUFwhGF2SVwN58UkzX6GuABWNvbUzzVVq5Kzj45tS_p4U2fo.re9LOuwPpp99H5bLKIgmNsI_RALV39ujuLsqhbHTJAgCtQeZzOkhMbjJKciuKPp97TkbIpDpGr_ZqTBghcjRgr_gz1CkGCCoUTn24dIPfVB0tTDenbTTuOot.rT_RmTiIsA0zY5ac445PXgJZXaXHxrV_ASY0

问题:如何构建MmEwMD参数?

初步分析

查看智联招聘login页面的相关JS文件,分析query param的构建方法

scripts/chk/captcha.js

从上图中我们可以看到调用JQuery的$.ajax方法来发送请求,发送的url只有 callback 一个query param,并没有看到 MmEwMD 的踪迹,说明不是在zhilian自己的JS文件中加这个参数,猜测是给JQuery加了 prefilter 或者 beforeSend 之类的钩子

构建本地JS Debug环境
  • 通过 wget 抓取html和相关资源文件

    wget --mirror --page-requisites --adjust-extension --no-parent --convert-links --directory-prefix=sousers https://passport.zhaopin.com/org/login
  • 使用python启动simple web server

    python -m SimpleHTTPServer 8081
  • 访问本地login页面

    http://localhost:8081/org/login.html
  • 智联招聘使用的JQuery版本是1.7.1,我们从官网下载非min版本方便debug。下载完成后放到script目录下,然后修改login.html中include script代码

    http://code.jquery.com/jquery-1.7.1.js
Debug JQuery
// Do send the request // This may raise an exception which is actually // handled in jQuery.ajax (so no try/catch here) xhr.send( ( s.hasContent && s.data ) || null );

从 scripts/chk/captcha.js 的 $.ajax 入手一路debug进去,直到上面这行代码,我们inspector xhr对象发现,并没有任何JQuery的钩子,此时,我们怀疑xhr (XMLHttpRequest) 被hook了。

验证方法如下:

在浏览器console中执行以下代码

var xhr = new window.XMLHttpRequest(); xhr.open('POST','/hello',true); xhr.send('abc');

出现了以下请求,说明在当前页面中的xhr肯定被hook了,同时解除对JQuery的怀疑。

POST http://localhost:8081/hello?MmEwMD=1zXMRFfiFy00rBpdSoJ2cJ4EvS6mQ1dvl5jZLrqB…oRVu5t.x8Y3GVQLmqdG.lmuE2snbEk.YH
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值