首页 > 其他分享 >实战5-某政府采购网cookies反爬(进入前检查浏览器)

实战5-某政府采购网cookies反爬(进入前检查浏览器)

时间:2024-03-16 09:04:04浏览次数:18  
标签:x0fcad9 cookies x08c924 x06dd1a x61 反爬 x65 x72 采购网

目标网站

aHR0cDovL3d3dy55bmdwLmNvbS8=

1.呈现状态

2.分析网站

先复制请求链接的curl看看打印出的结果


打印出的结果不正常,来看看请求头,里面有一个'$Cookie',转场到请求连接的cookies中看看,xincaigou这个值大概就是我们想要的

往上看其他请求,找xincaigou从哪冒出来,在第二个链接请求时由服务器返回

第二个链接请求,需要第一个链接请求时重定向给它

3.获取answer

先无参数请求第一个链接,得到下图

将eval函数复制到脚本片段中,打上断点,并在控制台中打印出参数p的值

复制p值到js脚本中将‘\\’换成‘\’,如下

var _$ = ['\x23\x63\x68\x61\x6c\x6c\x65\x6e\x67\x65',       
'\x23\x77\x61\x66\x5f\x61\x6e\x73\x77\x65\x72', '\x23\x43\x68\x61\x6c\x6c\x65\x6e\x67\x65\x46\x6f\x72\x6d' 
];
$(_$[0])["\x73\x68\x6f\x77"]();
$(function () {
setTimeout(function () {
    var x06dd1a = {};
    var x0fcad9;
    var x08c924 = 0x0f;
    var x01c264 = navigator["\x75\x73\x65\x72\x41\x67\x65\x6e\x74"]["\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65"]();
    x08c924 = x08c924 * 0x1d;
    (x0fcad9 = x01c264["\x6d\x61\x74\x63\x68"](/msie ([\d.]+)/)) ? x06dd1a["\x69\x65"] = x0fcad9[0x1] 
        : (x0fcad9 = x01c264["\x6d\x61\x74\x63\x68"](/firefox\/([\d.]+)/))? x06dd1a["\x66\x69\x72\x65\x66\x6f\x78"] = x0fcad9[0x1] 
      : (x0fcad9 = x01c264["\x6d\x61\x74\x63\x68"](/chrome\/([\d.]+)/))? x06dd1a["\x63\x68\x72\x6f\x6d\x65"] = x0fcad9[0x1] 
      : (x0fcad9 = x01c264["\x6d\x61\x74\x63\x68"](/opera.([\d.]+)/)) ? x06dd1a["\x6f\x70\x65\x72\x61"] = x0fcad9[0x1] 
          : (x0fcad9 = x01c264["\x6d\x61\x74\x63\x68"](/version\/([\d.]+).*safari / ))? x06dd1a["\x73\x61\x66\x61\x72\x69"] = x0fcad9[0x1] 
      : 0x0;
    x08c924 = x08c924 + 0x63;
    if (x06dd1a["\x69\x65"] || x06dd1a["\x66\x69\x72\x65\x66\x6f\x78"] || x06dd1a["\x63\x68\x72\x6f\x6d\x65"] || x06dd1a["\x6f\x70\x65\x72\x61"] || x06dd1a["\x73\x61\x66\x61\x72\x69"]) {
        x08c924 = (x08c924 * 0x3 + 0x7);
        if (x08c924 < 0x7b) x08c924 = x08c924 + 0x929;
        var x0b515d = $(_$[1]);
        if (x08c924 > 0x929) x08c924 = Math["\x66\x6c\x6f\x6f\x72"](x08c924 / 0x7b);
        x0b515d["\x76\x61\x6c"](x08c924);
        $(_$[2])["\x73\x75\x62\x6d\x69\x74"]()
    }
}, 0x3e8)
});

再将上面代码复制到AST中去解码

var _$ = ["#challenge", "#waf_answer", "#ChallengeForm"];
$(_$[0])["show"]();
$(function () {
setTimeout(function () {
var x06dd1a = {};
var x0fcad9;
var x08c924 = 15;
var x01c264 = navigator["userAgent"]["toLowerCase"]();
x08c924 = x08c924 * 29;
(x0fcad9 = x01c264["match"](/msie ([\d.]+)/)) ? x06dd1a["ie"] = x0fcad9[1] : (x0fcad9 = x01c264["match"](/firefox\/([\d.]+)/)) ? x06dd1a["firefox"] = x0fcad9[1] : (x0fcad9 = x01c264["match"](/chrome\/([\d.]+)/)) ? x06dd1a["chrome"] = x0fcad9[1] : (x0fcad9 = x01c264["match"](/opera.([\d.]+)/)) ? x06dd1a["opera"] = x0fcad9[1] : (x0fcad9 = x01c264["match"](/version\/([\d.]+).*safari /)) ? x06dd1a["safari"] = x0fcad9[1] : 0;
x08c924 = x08c924 + 99;

if (x06dd1a["ie"] || x06dd1a["firefox"] || x06dd1a["chrome"] || x06dd1a["opera"] || x06dd1a["safari"]) {
  x08c924 = x08c924 * 3 + 7;

  if (x08c924 < 123) {
    x08c924 = x08c924 + 2345;
  }

  var x0b515d = $(_$[1]);

  if (x08c924 > 2345) {
    x08c924 = Math["floor"](x08c924 / 123);
  }

  x0b515d["val"](x08c924);
  $(_$[2])["submit"]();
}
}, 1000);
});

然后再复制解码后的代码到js脚本中,删掉有关JQuery的操作,反复测试,找到需要传参的值,再删掉其他无用代码,最后形成如下代码

function get_answer(a, b, c) {
a = a * b;
a = a + c;
a = a * 3 + 7;
if (a < 123) { a = a + 2345;}
if (a > 2345) {a = Math["floor"](a / 123);}
return a
}

将图中三个参数转化一下传入get_answer中便会得到answer

4.获取xincaigou

带上参数answer请求第一个链接便可以获取到服务器返回的xincaigou,期间保持会话维持,将cookies的值更新到session中,请求数据链接就可以得到答案

标签:x0fcad9,cookies,x08c924,x06dd1a,x61,反爬,x65,x72,采购网
From: https://www.cnblogs.com/gouqizi/p/18076662

相关文章

  • 使用原生 cookieStore 方法,让 Cookie 操作更简单
    前言对于前端来讲,我们在操作cookie时往往都是基于document.cookie,但它有一个缺点就是操作复杂,它并没有像localStorage那样提供一些get或set等方法供我们使用。对与cookie的操作一切都是基于字符串来进行的。为了让cookie的操作更简便,Chrome87率先引入了cookieStore方法。docume......
  • 第 6章 Python 应对反爬虫策略
    第6章Python应对反爬虫策略爬取一个网站的基本步骤(1)分析请求:URL规则、请求头规则、请求参数规则。(2)模拟请求:通过Requests库或urllib库来模拟请求。(3)解析数据:获取请求返回的结果,利用lxml、BeautifulSoup或正则表达式提取需要的节点数据。(4)保存数据:把解析的数据持......
  • 爬虫逆向案列---《某采购网ck反爬》
    网站接口:aHR0cDovL3d3dy55bmdwLmNvbS9wYWdlL3Byb2N1cmVtZW50L3Byb2N1cmVtZW50TGlzdC5odG1s首先分析ck是怎么生成的?访问首页获取通过js代码逆向获取其它页面返回访问接口,返回一段js代码,分析js代码获取ck所以,ck一般是在网页端的文档中的html可以观察到。刷新网址我们可以......
  • 无涯教程-ExpressJS - Cookies
    Cookie是简单的files/data,随服务器请求发送到客户端并存储在客户端,每次用户重新访问网站时,该cookie都会与请求一起发送。要将Cookie与Express一起使用,无涯教程需要cookie解析器中间件。要安装它,请使用以下代码-npminstall--savecookie-parser现在要在Express中使用cookie,需......
  • 如何处理 Python 爬虫中的反爬机制
     在网络爬虫的开发过程中,我们常常会遇到网站的反爬机制,这些反爬机制旨在阻止爬虫程序对网站内容的访问。为了成功绕过这些反爬机制,我们需要采取一系列的策略和技术手段。本文将介绍一些常见的反爬机制,并提供相应的应对方法。 1.User-Agent检测 User-Agent是HTTP请求头中的一个......
  • Python爬虫技巧大全:提升效率、应对反爬与处理异常
    Python爬虫是一项强大的工具,但在实践中常常会遇到各种问题,如效率低下、反爬机制等。本文将介绍一些Python爬虫的技巧,帮助读者提升爬虫效率、应对反爬机制以及处理异常情况。一、提升爬虫效率1.使用多线程或异步编程:通过多线程或异步编程可以提高爬虫的并发性能,加快数据的获取速度。......
  • 如何在Go语言中处理反爬虫机制
    在当今互联网时代,网站的反爬虫机制变得越来越普遍。这些机制旨在保护网站的数据和资源,防止恶意爬虫对网站造成过大负荷。对于Go语言开发者来说,了解如何处理反爬虫机制是至关重要的。本文将介绍一些在Go语言中处理反爬虫机制的方法和技巧。1.使用合适的User-AgentUser-Agent是HTTP请......
  • [CF102586A] Cookies
    结论1:如果曲奇\(c\)当\(k=x\)时会被剩下,那么当\(k=x+1\)时亦会被剩下。感性理解即可。显然初始集合越大,曲奇越不容易被换走。结论2:原问题等价于以下问题:每次给出一个曲奇\(c\),遇到\(S_i=\)'S'且\(c>B_i\),或\(S_i=\)'B'且\(c<B_i\)就交换\(c,B_i\)(交换会保留到......
  • Cookies和Session
    Cookies和Session都是为了解决HTTP协议无状态性而引入的技术,它们用于在多个请求之间保持用户状态。Cookies存储在客户端;Session存储在服务器端;两者怎么联系使得http保持了用户状态呢?其实服务器首先创建session,生成sessionID,并通过cookie返回给了浏览器,这样浏览器就获得了sessi......
  • Python中用requests处理cookies的3种方法
    在接口测试中,大多数项目的接口是需要登录后进行操作的,经常用到requests库进行模拟登录及登录后的操作,下面是我不断踩坑后总结出来的关于登录凭证cookies的3种操作方法。一.用requests.utils.dict_from_cookiejar()把返回的cookies转换成字典1.处理cookies:importreques......