安居客滑动验证码破解 --- js破解

参考:     https://github.com/clllanqing/solve_captcha/tree/master/anjuke

其实以前也破解过,只是没有详细记录 2.大神冷月的js破解代码       https://lengyue.me/index.php/2018/10/06/anjuke/

准备验证码接口:      https://www.anjuke.com/captcha-verify/?callback=shield&from=antispam

破解安居客的反爬页面url :       https://www.anjuke.com/captcha-verify/?callback=shield

破解

1   打开google F12,清除缓存,访问url,滑动一下试试

2   会发现checkV3为验证码的请求接口

sessionId 存在于网页内, responseId 则是从: sessionId= "".join(etree.HTML(html).xpath('//*[@id="sessionId"]/@value')).strip()

https://verifycode.58.com/captcha/getV3?callback=jQuery1910793616819186288_1538833002980&showType=embed&sessionId=d1cfd44eca6b4a2f9940ea8af414836d&_=1538833002981

这一步获取的是data为 AES 加密。

第二步 拆分加密

我们找到AES 加密是这一块 原数据为:

{

    "x": "126",

    "track": "23,34,0|24,33,41|26,33,50|34,32,65|47,31,81|63,31,99|84,31,116|121,31,132|145,31,150|166,33,165|185,35,181|201,36,200|216,38,216|228,40,232|235,41,249|241,41,265|249,43,282|256,43,300|260,43,315|266,44,333|271,45,352|273,47,367|274,47,382|275,47,408|274,47,596|272,47,604|270,47,616|267,48,633|265,48,649|260,48,668|251,48,684|240,48,699|227,48,716|210,49,733|201,49,750|193,50,765|189,50,783|188,51,799|185,51,815|183,51,982|180,51,999|177,51,1018|177,51,1033|175,51,1061|173,51,1088|172,51,1101|161,51,1117|158,51,1134|155,51,1150|153,50,1167|150,50,1183|149,50,1199|149,50,1217|149,50,1472|",

    "p": "0,0",

    "finger": "QOwj/ycQ413zOqrj7RGPPKg9gEwg3NX9YEoIDvfo3GrCYzgkCEUS77EzwxnnUmayin35brBb//eSODvMgkQULA=="

其中 track 和 x 一目了然 分别是 x坐标 和 轨迹:   x,y,经过的时间:finger  看起来有点像指纹 (并不是

第三步 找出finger     https://cdata.58.com/fpToken?callback=dpjsonp_017597508371879544

finger的来源是

由此定位到

那么这是一个函数的回调,然后找到:

这个函数,这时候 MessageEvent出现了 堆栈也没有信息:

找到了可爱的origin,得出 token 来自:

也就是finger了,至此 安居客解析完成。https://github.com/leng-yue/Lengyue-Vcode/tree/master/%E6%AF%8F%E5%91%A8%E4%B8%A4%E7%88%86/%E5%AE%89%E5%B1%85%E5%AE%A2

#请求数据为

callback: jQuery19108408108632218079_1543310767116  #估计用不到

responseId: ed3ce1892d6f4baa8e942e996a1553a7             #请求getV3接口获取的值(其实是图片的标识)

sessionId: fd3b3e22d056408cb898d357e585f4f6              #网页中有

data: 6E997EC058A756D97A00A3432F1300BDA8C611A531F7E17874673574FFC2A12BC99892D3D659513EEB726CA92F8F6F4DDB4308CDD24263C64EA4C1B70C1BFD17451F66255BF1953A1CB7B7F0AF64EA13CC1AB8652E5BDD8B58AE575935B855B399967A8780EB21A26F0A9F140B4FA0636B7280369622B4C40E20BC42B8274A61E86C1F60709C240710960B2A3E7F2C4EF9E97D2405F32B7854DE1373FE606C56E1B7469CA736FDF316DE2B73BD30618DCE511A2AB84396F860CE5E9CDD8C713CABD34B88713A6AA04AD3664654B30DF34FC0648417056EB56B6EADB17204A9145B779E4FD417E9BFFDDD1CAA3C1E1E9F6B4B27DBB3F5AF3F3EB7D99DE0BA9418D929CD90B5820735FB7E30199CD2E18448BFC62878E56A4B3A0307EC83D332BF5126956180282EC014C2E6B259E88EA0DFD533CAF71068E901609967B6E13EA149EAA2F468D530D9537E6FFB90740D1E75007DE644A9ACE3D6CFF8F20E8302EDD1CAE33A7FDC7E8C30705AE5C54A3AE2  #加密数据

_: 1543310767118   

#返回数据

jQuery19108408108632218079_1543310767116({

    "message": "校验失败",

    "data": {

        "ischange": false,

        "status": 1

    },

    "code": 0

})

3   获取responseId

#请求链接     请求数据

callback: jQuery19108408108632218079_1543310767116  #估计用不到

showType: embed    #固定值(验证码类型)

sessionId: fd3b3e22d056408cb898d357e585f4f6  #网页中的值

_: 1543310767117  #时间

#返回数据

jQuery19108408108632218079_1543310767116({

    "message": "成功",

    "data": {

        "responseId": "ed3ce1892d6f4baa8e942e996a1553a7",

        "level": 310,

        "status": 0,

        "puzzleImgUrl": "/captcha/captcha_img?rid=ed3ce1892d6f4baa8e942e996a1553a7&it=_puzzle",

        "tip": "请点击并将滑块拖动到指定位置",

        "bgImgUrl": "/captcha/captcha_img?rid=ed3ce1892d6f4baa8e942e996a1553a7&it=_big"

    },

    "code": 0

})

4   破解加密数据

知识点1,如果是xhr的请求,可以在XHR/fetch Breakpoints中打断点,数据url的部分值

知识点2,如果是js的请求,可以直接点进那个js文件

知识点3,点进的js文件会定位到ajax的内部函数,Call Stack可以看堆栈(点checkVerifyResult函数),可以看到熟悉的ajax请求

5   加密数据是由CryptoJS加密的

只是一段js 下载这个js就行了

6    路径数组的获得 因为路径和时间滑动的距离都有关系,如果只是用加速度模拟,我试了好久都没有试出来 我的做法是 直接打开google调试工具,在验证码滑动的地方打断点,然后重复滑动了200次,得到200个轨迹数组,以后直接去路径数组中找到对应的路径就可以了

7   图片的滑动的距离 简单的像素分析,很垃圾,但是正确率80%+把

8    js 以前的做法是打一个node.js,将js代码全部丢进去 现在使用execJs.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容