js逆向-猿人学(12-13)简易Js

猿人学爬虫比赛第十二题

地址: http://match.yuanrenxue.com/match/12

后面的题其实不想看了,索然无味。码字花的时间比看题的时间要久。


开无痕窗口,打开控制台,访问链接,分析数据包发现有一个m参数。
在这里插入图片描述
通过堆栈进入断点。
在这里插入图片描述

m= btoa(‘yuanrenxue’ + window.page)
window.page 是当前页码
btoa() 是一个nativa方法,用于创建一个 base-64 编码的字符串。

在这里插入图片描述

用python生成:

import base64
for page in range(1,6):
    kw = f"yuanrenxue{page}"
    result = base64.b64encode(kw.encode("utf-8"))
    print(result)

猿人学爬虫比赛第十三题

地址: http://match.yuanrenxue.com/match/13

开无痕窗口,打开控制台,访问链接,分析数据包发现cookie有两个参数

一个sessionid是服务端set进去的,另一个yuanrenxue_cookie可能是本地生成的。

通过程序访问了下,sessionid可以通过response的headers获取

import requests
res = requests.get('http://match.yuanrenxue.com/match/13')
print(res.headers['Set-Cookie'])

接着就看一下yuanrenxue_cookie

为了方便点,直接使用扩展程序来找参数,

var code = function(){
    var org = document.cookie.__lookupSetter__('cookie');
    document.__defineSetter__("cookie",function(cookie){
        if(cookie.indexOf('yuanrenxue_cookie')>-1){
            debugger;
        }
        org = cookie;
    });
    document.__defineGetter__("cookie",function(){return org;});
}
var script = document.createElement('script');
script.textContent = '(' + code + ')()';
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);

先在控制台把已经有的cookie清空
在这里插入图片描述
再刷新页面,断点已经拦到参数
在这里插入图片描述
F11继续往下走,
在这里插入图片描述
到这之后发现走不下去了。但是并没有找到关键点,于是改用全局搜索搜关键词,还是没有搜到。

那么问题就在第一次set-cookie时的响应内容了,用程序打印出 response.text之后,输出的script和我们刚看到的一样。

<script>document.cookie=('y')+('u')+('a')+('n')+('r')+('e')+('n')+('x')+('u')+('e')+('_')+('c')+('o')+('o')+('k')+('i')+('e')+('=')+('1')+('6')+('1')+('1')+('7')+('3')+('6')+('2')+('5')+('6')+('|')+('N')+('b')+('g')+('U')+('F')+('L')+('z')+('a')+('k')+('3')+('n')+('x')+('o')+('h')+('x')+('u')+('d')+('B')+('I')+('T')+('5')+('J')+('X')+('E')+('Y')+('T')+('i')+('c')+('q')+('7')+('c')+('F')+('E')+('O')+('F')+('z')+('A')+('B')+('R')+('U')+('a')+('9')+('h')+('9')+('M')+('2')+('p')+('F')+('l')+('T')+('f')+('S')+('l')+('5')+('s')+('Q')+('e')+('D')+('S')+('Y')+('y')+('h')+('B')+('h')+('Q')+('Z')+('s')+('c')+('I')+('t')+('j')+('0')+('V')+('F')+('M')+('8')+('m')+('O')+('y')+('o')+('5')+('1')+('0')+('Z')+('4')+('Q')+('0')+('Q')+('d')+('X')+('2')+('D')+';path=/';location.href=location.pathname+location.search</script>

所以在 res.headers[‘Set-Cookie’] 中获得 sessionid ,res.text中可生成 yuanrenxue_cookie。

import requests
res = requests.get('http://match.yuanrenxue.com/match/13')
print(res.text)	
print(res.headers['Set-Cookie'])

节省时间,讲解到这里吧,具体就不多写了。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

考古学家lx(李玺)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值