上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: 陈公子的话 - 

js混淆动态cookies

[复制链接]
  • TA的每日心情
    奋斗
    昨天 08:49
  • 签到天数: 426 天

    [LV.9]以坛为家II

    148

    主题

    423

    回帖

    1141

    积分

    版主

    积分
    1141

    油中2周年生态建设者

    发表于 2020-12-31 13:54:21 | 显示全部楼层 | 阅读模式

    进入页面打开开发者工具进行抓包

    image.png

    一个简单的GET访问链接是:http://match.yuanrenxue.com/api/match/2?page=2

    直接访问提示出错,看一下题目cookies动态加密,肯定是在cookies上面做了手脚,我们携带cookies进行调试。

    image.png

    得到了正确的结果可以看到m应该就是动态加密的

    我们全局抓包看一下这个cookies从何而来。根据经验,一定有一条请求是给cookies赋值的。

    image.png

    我们看到这条数据加载了两次,我们观察对比一下这两条数据。

    image.png

    image.png

    我们对比发现第一条数据的时候还是没有cookies的第二条就带上了cookies。

    所以我们推测第一条数据一定动了什么手教让第二条的数据带上了cookies。猜测可能返回的协议头setcookies但是观察发现返回的协议头并没有添加cookies的操作。

    我们用fidder再次进行全局抓包看一下第一条数据有没有什么异常。

    image.png

    我们看到第一条不带cookies的数据返回了一个scprit之类的东西,大胆猜测就是执行了这段js导致第二条数据带着cookies

    image.png

    我们赋值返回的代码通过解混淆工具解密,将解密后的js代码放入notepad++中格式化。

    js我不太懂,直接拉到最后查看他返回的是什么东西。

    image.png

    我们可以看到他真正执行的也就w()函数至于w函数里面的X() 上面有明确的定义。

    解释一下意思就是把X函数当作参数传入W函数中,进行运算

    我们查看js代码发现X函数只有一句代码

    Date["parse"](new Date());

    那这是什么意思呢....没有js基础我们直接扔到console跑一下看结果是什么

    image.png

    emmm....很明显是一个时间戳也就是取当前的时间戳传入到W()函数中。

    然后我们看一下W这个函数

    image.png

    在W函数中cookies赋值,然后location["reload"]();,这句代码的意思是刷新当前页面,我们捋一下思路。

    也就是说刚开始页面是没有cookies的我们访问这个页面之后,发送了第一条“2”的数据返回的这串混淆之后的代码,执行代码里面的W()函数,给cookies赋值,赋值之后刷新次页面再次访问“2”,这个时候赋值的cookies就被带上了。

    那么我们下来就要研究cookies是怎么计算出来的了

    我们先对比一下

    m=619d080ec6de17273e546e68e37e507d|1609388594000

    document["cookie"] = "m" + M() + "=" + V(Y) + "|" + Y + "; path=/";

    path应该是一个路径,大概是页数之类的东西,我们先不管,对比这两个m我们猜测M()返回的是一个空,我们去看一下M()这个函数,

    image.png

    我们看到M这个函数里面又包含了a4()和K(),a4()函数的定义就在M()函数里面

    image.png

    我们把定义+执行扔到console发现没有返回值,先不管这个a4()

    我们直接分析K

    function K(Y, Z) {
        if (Z) {
            return J(Y);
        }
    
        return H(Y);
    }

    我们发现K这个函数是有参数的,但是 M() 里面的K并未传入参数,因此K()也没有用

    image.png

    简化之后的M()我们再次观察。

    一行一行往下看我们看待了eval()函数,引起了我们的重视,会不会就是在这里动的手脚呢,我们查看eval()函数里面的参数,参数是L()我们去观察一下L()这个函数

    function L(Y, Z) {
        let a0 = "";
    
        for (let a1 = 0; a1 {JS}')
        res = requests.get(url,headers = headers)
        return res.json()
    
    if __name__ == '__main__':
        sum_num = 0
        for page_num in range(1,6):
            info =Get_data(page_num,Get_JS())
            price_list = [i['value'] for i in info['data']]
            print(f'第{page_num}页发布日热度的值:{price_list}')
            sum_num += sum(price_list)
            time.sleep(1)
    
        print(f'发布日热度值总和:{sum_num}')
    

    热爱就要做到极致.

    I don't hate programming but the fucking world.
  • TA的每日心情
    奋斗
    昨天 08:49
  • 签到天数: 426 天

    [LV.9]以坛为家II

    148

    主题

    423

    回帖

    1141

    积分

    版主

    积分
    1141

    油中2周年生态建设者

    发表于 2020-12-31 13:59:46 | 显示全部楼层
    宝贝,中间有一部分文字内容也不见了..不知道是bug还是什么
    I don't hate programming but the fucking world.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-13 10:14
  • 签到天数: 211 天

    [LV.7]常住居民III

    290

    主题

    3875

    回帖

    3794

    积分

    管理员

    积分
    3794

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2020-12-31 15:03:11 | 显示全部楼层
    {:3_41:}@李恒道
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    632

    主题

    5170

    回帖

    6048

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6048

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2020-12-31 17:13:08 | 显示全部楼层
    小陈 发表于 2020-12-31 13:59
    宝贝,中间有一部分文字内容也不见了..不知道是bug还是什么

    哥哥,哪里文字内容少了....
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:49
  • 签到天数: 426 天

    [LV.9]以坛为家II

    148

    主题

    423

    回帖

    1141

    积分

    版主

    积分
    1141

    油中2周年生态建设者

    发表于 2020-12-31 17:51:10 | 显示全部楼层
    哥哥 这中间有一部分分析不见了...直接python代码了。我也不知道是不是我操作问题哈哈哈没事儿哥哥...
    1.png
    I don't hate programming but the fucking world.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-1-30 10:43
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    1

    主题

    17

    回帖

    18

    积分

    助理工程师

    积分
    18

    新人报道

    发表于 2022-6-16 09:14:46 | 显示全部楼层
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表