猿人学-练习平台-第三题OB混淆,过检测

链接: https://www.python-spider.com/challenge/3

题目:
在这里插入图片描述

一、抓包分析

看起来是可以拿到数据的
在这里插入图片描述
过了一会重放攻击,发现数据失效
在这里插入图片描述
网页再去下一页,会说风控不存在
在这里插入图片描述

通过上面,初步得出是某些参数过期检测,一般作为凭证,去查看cookie,可以发现其中m参数,还有Hm_lpvt 是有变化的
在这里插入图片描述
重新执行网页,依次删除2个参数,再点击其它页,可以确认下来是m参数请添加图片描述

二、定位m参数逻辑代码

开启script监听,
在这里插入图片描述
删除m参数,然后F5刷新,直到找到生成cookie的js,搜索cookie,docuemnt关键词
请添加图片描述
调试后可以找到此处的m生成,确认是这个js文件了
在这里插入图片描述
或者通过hook
在这里插入图片描述

// ==UserScript==
// @name         cookie set
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  eval-everything
// @author       An-lan
// @include      *
// @grant        none
// @run-at      document-start
// ==/UserScript==

Object.defineProperty(document,'cookie',{
    set:function(val){
    debugger;
    return val}
})

成功看到堆栈后,逻辑代码在此处
在这里插入图片描述

三、本地调试

复制生成方式代码,定义cookies,而后就是扣代码了
在这里插入图片描述

1、过检测

当扣完了一运行,程序直接卡死,且内存上升
在这里插入图片描述
这种时候只有2中可能:
1、浏览器指纹检测
2、格式化检测

复制整个代码到console浏览器页运行,可以看到卡死,且报错,提示length
请添加图片描述

可以将复制后的代码,从开始前加上debugger一步一步缩小卡死位置,放置debugger确认位置

在js中,都是经过压缩代码的,而调试过过程中,都是对代码格式化了,存在了检测长度
搜索toString、RegExp,

可以看到有3处,第一处指向了removeCookie
在这里插入图片描述

扣下来的代码长的是这样的
在这里插入图片描述
模拟,测试下长度,压缩过后的是与格式化的长度是有差别的
在这里插入图片描述
通过上述去完格式化检测。
在这里插入图片描述
在这里插入图片描述
再次运行,缺少M,补完M
在这里插入图片描述
再运行 缺少B
在这里插入图片描述
再次运行又卡死

在这里插入图片描述
注释掉B函数,再运行,是补了B函数后卡死的,所以在此处打上断点
在这里插入图片描述
在这里插入图片描述

取消注释B函数后,复制代码到网站上的console执行,会进入到一个虚拟机debugger位置

在这里插入图片描述
在这里插入图片描述
接着单步调试,在这个位置卡死

在这里插入图片描述
将debugger放置这边,去掉之前那个debugger,再调试
在这里插入图片描述
复制到网页再调试,追进去看
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一直单步调试后,到这一步卡死(卡死了,可以重走前面步骤看堆栈)
在这里插入图片描述
可以重走前面步骤,看堆栈到这一步的时候,可以看到a6是一个正则
在这里插入图片描述
并且调用test方法
在这里插入图片描述
正则返回的都是 True 或者 False,这个时候替换成 return True,且上面加上debugger(去掉之前的debugger,不然是重那边开始调试的)

在这里插入图片描述

再次运行,K没有定义
在这里插入图片描述
补完K代码,H没有定义
在这里插入图片描述
补完H,L没有定义
在这里插入图片描述
补完L再运行 ,缺少navigator

在这里插入图片描述

2、navigator 浏览器指纹

在这里插入图片描述
可以选择将这个位置代码换成空 “”,出现V没有定义

在这里插入图片描述
补完V,运行提示Y没有定义
在这里插入图片描述
点击报错位置,复制(V, Y)
在这里插入图片描述
Y是一个时间戳
在这里插入图片描述
实际上这个Y是 W传进来的,那么堆栈上一级是 $c
在这里插入图片描述
实际上这个内容就是 函数X
在这里插入图片描述
补完Y再运行,提示 U 没有定义
在这里插入图片描述
补完U,R没有定义
在这里插入图片描述
R补完,T没有定义
在这里插入图片描述
补完T,Q没定义
在这里插入图片描述
补完Q,S没有定义

在这里插入图片描述
然后就是O 没有定义

在这里插入图片描述
补完O 然后就是N没有定义

在这里插入图片描述
补完N,P没有定义
在这里插入图片描述
然后是F没有定义
在这里插入图片描述
后面面省略。。。。。补完I最后运行不报错
在这里插入图片描述
打印cookies,出现新问题
在这里插入图片描述

3、hook console.log

将代码复制到浏览器,同样卡死,那么这时候console.log 不是原来那个console.log了
代码顶部,重写
在这里插入图片描述
再执行代码
在这里插入图片描述

4、封装测试SDK代码

在这里插入图片描述

在这里插入代码片
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于您提到的错误TypeError: list indices must be integers or slices, not str,这是因为您在访问列表中的元素时使用了字符串作为索引,而列表的索引必须是整数或切片类型。解决这个错误的方法是使用整数或切片来访问列表中的元素。 关于您提到的猿人js逆向的问,我需要更多的信息才能为您提供具体的答案。对于爬虫编写,您可以使用Python的各种库(如Requests、BeautifulSoup、Scrapy等)来获取网页的内容,并进一步解析和处理。您可以使用这些库发送HTTP请求获取网页内容,然后使用解析库来提取您需要的数据。 爬虫编写的一般步骤如下: 1. 导入所需的库 2. 发送HTTP请求获取网页内容 3. 使用解析库解析网页内容 4. 提取所需的数据 5. 进行数据的进一步处理和存储 您可以根据具体的需求和网站的结构进行相应的编写和调试。如果您需要更具体的帮助,请提供更多的信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python:TypeError: list indices must be integers or slices, not str报错解决及原理](https://blog.csdn.net/hhd1988/article/details/128031602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str](https://download.csdn.net/download/weixin_38590567/14871394)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值