某备案网查询,最新逆向

目标网站:aHR0cHM6Ly9iZWlhbi5taWl0Lmdvdi5jbi8=   (某加密后的网站,应该懂得)

所需技能:哈希算法,OpenCV相关的图像知识,python爬虫基础库的运用

网上关于此网站破解的文章很多,但是基本都过时了。不过基于此网站衍生出来的第三方网站却很多,比如需要开会员才能看的站长工具等。那我们何不自己来破解一下呢?

先看首页

 输入要查询的单位名称,点击搜索,会弹出一个滑块的验证码。

不要慌,此验证码既不是某验的,也不是某盾的。

验证通过,得到所有信息。

step1:  打开浏览器调试功能中的xhr选项,找到最终的结果页和请求URL

打开详情页可以看到该条请求的实际URL和所需参数:

先看请求方式是POST,data里面需要pageNum, pageSize, unitName三个参数,如果你是业内老手不难猜到:

pageNum指的是页数,

pageSize指的是每页显示的条数,

unitName就是你要查询的企业名称了。

很显然,三个简单的参数不是重点。

step2:  重点来了,就是headers里面的三个参数 sign,token,uuid

首先先来翻一下前面几个xhr链接,你会惊奇(喜)的发现:

尾号为checkImage的请求,返回的一个字段"params"正好是sign的值;

尾号为getCheckImage的请求,返回的一个字段"uuid"是我们需要的uuid;

尾号为auth的请求,返回的一个字段"bussiness"是我们需要的token;

路子有了,目标明确了,接下来就是挨个分析了。我们先来token

step2.1

token的生成需要两个参数,timeStamp和authKey

第一个是时间戳,很明显。第二个呢?

简单点,全局搜一下,结果也只有一个:

 通过图中几处标记,可以大致看出,authKey是某三个参数经过md5加密后的一个字符串。

此时需要在261行处打一个断点看下,这三个参数到底是什么

 由此我们可以大胆的猜测(得到),A和g都是字符串"test",而I是赋的t的值,那便是timeStamp。

此时,两个参数齐活,可以发起第一个请求了。token的值拿到。

step2.2 获取uuid的值

要想拿到uuid的值很简单,cookie里带上token的值就可以了

需要特别注意的是,这一步发生在获取验证码图片的过程中,所以同时得到了bigImage和smallImage这两个参数。

凭着你的经验,就可以猜到,这应该是两张图片经过base64编码以后的字符串。

大的是有缺口的背景图,小的是滑块。

既然是验证码,肯定是这个过程会产生某个我们需要的参数,比如轨迹,坐标或者距离之类的,我们暂时按下不表。

step2.3  我们先来看下一步,验证通过的这一步,也就是产生sign(params)值的这一步。

请求的参数有两个,key就是前一步得到uuid,那么value是什么呢?

结合之前我们对验证码部分的假设,看着最像的应该是距离吧(轨迹和坐标的数据格式看着不像)

提出假设,就正面论证一下吧。

这里主要用到图像方面的知识,计算这种缺口距离的方法,百度一搜一大把,我就不展开讲了,直接上代码了

 

 step3:

至此,三个参数就都拿到了,剩下的就是传参,发请求,拿到我们需要的数据了。

总结:

此网站相对来说还是中规中矩的,没有什么js混淆和烧脑的验证码,重在平时js逆向时的一些知识积累。比如对整个请求过程的宏观分析,对图片验证码可能出现的格式及验证后的结果处理,对常见算法的敏感,还有对一些参数的大胆假设。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

young_kp

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

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

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

打赏作者

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

抵扣说明:

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

余额充值