参考网址【2021-06-07】JS逆向之同花顺cookie(最新v值获取)_阿J~的博客-CSDN博客_同花顺逆向
补充知识点,读取cookie,参考网址:https://www.jb51.net/article/249192.htm
您还可以为 cookie 添加一个过期时间(以 UTC 或 GMT 时间)。默认情况下,cookie 在浏览器关闭时删除:
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT";
您可以使用 path 参数告诉浏览器 cookie 的路径。默认情况下,cookie 属于当前页面。
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";
补充知识:cookie的生成过程
(1)当客户端的请求到达服务器端后,服务器端可以将Cookie值写在响应头中并返回给客户端。
(2)者客户端工具(如浏览器)在渲染页面时,由页面中的JavaScript代码生成Cookie值。
将 Cookie 和 JavaScript 结合起来实现反爬虫。我们之前在学习 JavaScript 时了解到,Location 对象(即window.location对象)可以将浏览器重定向到其他页面,那么是不是可以利用这个特点呢?如果在 HTML 代码中引入一个可以将浏览器重定向到目标页面的 JavaScript 文件,并且在这个文件中实现随机字符串生成和 Cookie 设置的功能,那么服务器端只需要校验 Cookie 值的规则即可。
用一个简单的验证就是这里还需要设置一个页面跳板,当用户希望请求内容页时,浏览器会先跳转到跳板页面,在页面中执行JavaScript 文件中的代码,完成 Cookie 值的生成和设置后再将浏览器重定向到内容页。因此有些hook到主网页,但是cookie加密过程断不下来。
(3)在 HTML 文件中将 JavaScript文件引入,代码如下:<script src="fet.js"></script>JavaScript 代码中生成当前时间的时间戳,将时间戳与随机字符串拼接后再作为 Cookie 值发起请求。这时候 nginx 不仅需要按规则校验随机字符串,还需要获取服务器的当前时间戳,将 Cookie 值中取出的时间戳与当前时间戳进行差值计算,当时间差值超过一定的时间(如 5
秒),则可以认定Cookie是伪造的。
目标网址:aHR0cDovL3guMTBqcWthLmNvbS5jbi9zdG9ja3BpY2svc2VhcmNoP3R5cGVkPTEmcHJlUGFyYW1zPSZ0cz0xJmY9MSZxcz1yZXN1bHRfcmV3cml0ZSZzZWxmc2VjdHNuPSZxdWVyeXR5cGU9c3RvY2smc2VhcmNoZmlsdGVyPSZ0aWQ9c3RvY2twaWNrJnc9JUU4JThBJUFGJUU3JTg5JTg3JnF1ZXJ5YXJlYT0=
直接用先抓包,发现访问了两次,第二次看带了cookie,v参数
第一次访问 有两件事情,第一是重定向了网址,第二个是设置了cookie
直接hookcookie
(function() {
'use strict';
var _cookie = ""; // hook cookie
Object.defineProperty(document, 'cookie', {
set: function(val) {
console.log('cookie set->', new Date().getTime(), val);
debugger;
_cookie = val;
return val;
},
get: function() {
console.log('coookie:'+_cookie);
return _cookie;
}
});
})()
直接追到js,v的加密位置,后续自己补充:
然后fidder模拟,访问成功