爬虫实训-sign绕过+组件爬取fofa(golang)

*声明:*请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。合法渗透,本文章内容纯属虚构,如遇巧合,纯属意外。

一.总体概述

最近在制作自己的组件库和指纹库,爬完goby的想要爬fofa的,但发现fofa官方的要难爬很多

难点:

1.前端sign值绕过
2.json格式的存储
3.反爬虫机制绕过

最终效果如下

二.fofa爬取过程

首先通过curl构造了几个基本的request请求

image-20240305142913989

可以看到有sign标识,当params里面的参数值进行改变时,便会出现响应

image-20240305142956032

本来觉得fofa这样的网站js文件肯定会进行混淆处理,懒得浪费时间,打算采用selenium,但又不甘心的翻了翻js文件

image-20240305143820345

找到了RSA的私钥,并且看到了之前我们所请求的app_id

但还是不清楚具体过程,debug一下

找到具体sortfun函数

image-20240305144516278

 t("sortFun", (function(e) {
            var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""
              , o = {}
              , n = {};
            for (var a in e)
                String(e[a]) && (o[a] = e[a]);
            Object.keys(o).sort().map((function(e) {
                n[e] = o[e]
            }
            ));
            var i = "";
            Object.keys(n).map((function(e) {
                i += "".concat(e).concat(n[e])
            }
            ));
            var r = ia.createSign("RSA-SHA256");
            return r.update(i),
            r.sign(t, "base64")
        }
        ));

接受两个参数,e,t

根据之前的具体加密函数

     e.params.sign = i.$sortFun(t, p || "xxxx") || "",

p这里无定义,那就传入rsa私钥

清晰明了了,函数接受传参的变量e是传入的t,p则是rsa私钥

image-20240305150238365

写个对应python函数看看

这里捣鼓了一个多小时

image-20240305164332170

我这里给出的加密结果居然跟js生成的不一样

匪夷所思

两周分界线

image-20240319114431193

忙完学校项目,时隔两周再来看看,发现居然有前置条件,value为空就不进行concat了,破防了,go写到一半了,懒得改了,直接继续冲刺

逻辑如下

image-20240326235651259

绕过sign后,接下来逻辑就比较简单了

校验、求总页数、翻页

整个发送包其实比较简单,我这里去除了authorization参数,只通过sign参数校验以及cookie

最后效果

image-20240319215826983

会出现这两个问题

image-20240319215624111

image-20240319215640253

一旦每天爬取超过上限或者是page超过100,就会出现相应两个问题

有需要的可以关注作者或者私聊作者,涉及到商业机密,无法吐露太多,见谅

原文链接  爬虫实训-sign绕过+组件爬取fofa(golang)

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值