欢迎光临
未来你我一起携手

另类解决PHP授权的一个小案例-某雀寄生虫授权Patch 笨鸟先飞

背景:

1:舍不得花钱[86RMB*7]

2:穷[86RMB*7]

3:确实很费劲[如果您知道如何快速处理魔方二代加密请留下您的联系方式]

前面开个玩笑,其实一来是确实不值得花这个冤枉钱,其次也是想多找几种办法来解决这个问题。起因是朋友给了一套寄生虫程序,某雀寄生虫。早些时候也整过,不过当时并没有这样令人头疼的混淆。所以当时也是很轻松就解密了,不过这次混淆的有点头疼,当然。也是想尝试用一种新方法解决。可能很多前辈已经知道如何更好处理。不过这里还是分享一下我的操作,毕竟好记性不如烂笔头,如果哪天那什么,还可以拿出来看看。

我的做法很简单,归结于以下几点:

1:抓包

2:URL重定向

第一个是抓包:

一般来说,一般的授权验证都是基于一个HTTP请求,对远程服务器发起一个请求来进行网址验证的。当然,还有很多衍生的,比如基于本地dll啊(也就是算上机器码,类似于注册机一样)。虽然我没有做过该类授权验证,不过个人觉得还是写PHP模块,然后具体的计算就是dll的事情了。不过今天这个东西还是比较简单。所以我还是比较幸运。

第二个是本地的URL重定向:

期初我以为会用域名来做处理,不过我还是too young too simple了。这里作者很“聪明”也很无奈。作者并没有采用域名。而是选择了IP。其实这里怎么弄都是没用的了。

在之前是酱紫的

然后我们开启wireshark进行抓包,用规则http.request.method来过滤了HTTP请求。然后我们刷新页面,就可以正常捕获该验证的请求包 图如下:

然后我们请求该URL,页面返回了一个No,这里其实要碰运气的。因为代码是加密的,我们根本无从得知正确的返回值是什么。比如失败的时候是返回NO。但是正确的时候也许会返回一个授权时间啊之类的东西。针对这一点,我想了以下几种办法:

1:潜入地方内部,骗取一个被授权的域名。然后用这个请求来获取非常Nice的返回值

2:利用搜索引擎,其实和上个方法类似

3:暴力尝试 比如说上述返回no 那么我们就尝试yes 一般的程序员我感觉都是比较有逻辑的,应该是不存在 错误返回no 正确的时候返回一个 nishishabi 诸如此类的字符串了

废话不多说,进入第二阶段。我使用的是代理的方式 大家可以参考我这一篇文章《nodejs-MITM,基于代理形式的中间人套件

调试好的代码如下:

module.exports = {
    sslConnectInterceptor: (req, cltSocket, head) => true,
    requestInterceptor: (rOptions, req, res, ssl, next) => {
    var url=rOptions.path;
	if(url.indexOf("chaxun.php?url=")>0
	res.end('yes');
        next();
    }
};

运行如图:

最终结果:

Bingo!!

这里有一个误区!!!!

设置代理并非是给IE设置一个代理,因为这里其实跟这个毫无关系。在设置代理方面,我们需要用到一个ProxyCap。给特定的程序设置代理才可以实现这样的效果。总的来说  也算草草搞定,但还需要很多调整的地方,最简单的就是 根据情况来进行代理,只有在特定请求时才做处理,否则在实际过程中,如果需要采集,那么这个时候。代理负担过重就会导致整个WEB不可访问!!

 

未经允许不得转载:卧栏听雨 » 另类解决PHP授权的一个小案例-某雀寄生虫授权Patch
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址