[小记] 某不良网站逆向分析破解

admin 2023年10月17日11:54:59评论148 views字数 2142阅读7分8秒阅读模式

FBI WARNING



此站点由骚扰短信提供。

任何观看此文产生的非技术探讨面想法皆由读者自己负责。

帮助安全研究人员提供算法逆向思路参考,为扼制灰黑产发展贡献出自己的一份力量。

初探



“ 叮~” 的一声,收到了一条新短信。

现在能主动发信息给我的除了中国移动就是广告推销,这些广告中偶尔夹杂着注册某些平台被贩卖出去的信息。

“XXX先生,我在xxx.com等你。点击链接下载app和妲己一起来玩耍呀”。

在我准备长按信息进行删除时候,一只蚊子明目张胆停留在我的手指上。

想抖动手指进行驱之别院,却在不经意间让长按变成了点击~~

很多事情就是在这种极度巧合的情况下发生。

待我回过神来再次看向手机屏幕,映入眼帘的是

一个遵纪守法的好公民,还是第一次见过这种场面。实在唏嘘不已同时愤怒不已

这短信太过分了,平日里给我发些垃圾营销广告也就算了,现在居然还给我发付费的...

所以,平时能少注册一些网站就少注册,即便注册也不要用自己的手机号码。不要相信99%的平台,因为它们经常为了节省支出经常聘用临时工。所以每一次事故,都是临时工的错。俗语有言:死道友不死贫道。

再探



打开的网页中有个下载按钮,但是不等我点击。已经偷偷下载了个描述文件。

在好奇心的驱使下,打开看了下这个描述文件内容。

有了以往的经验,这次我花了几秒从中提取出了这个越过道德底线的恶意网站。

顺手掀开了久违的MBP(MacBookPro)屏幕,之后打开了Chrome浏览器,新建了一个无痕浏览标签粘贴这个恶意网站的网址,并以迅雷不及掩耳之势下回车

....

带着分析的目光欣赏了下,联想出的是一些技术名词。。诸如页面布局,数据结构设计此类的。

经过一番分析,得知这个网站的盈利模式是靠会员还有投放广告来挣钱。

前面也说了,要扼制灰黑产发展。到了这里也就是破了他的一些收费项,例如会员视频。这样可以让他的收入在一定程度减少从而有效延迟发展速度。

罢了,今天就来替天行道。于是喊来了我的好朋友 F12,与之一起并肩战斗!

分析 & 调试





[小记] 某不良网站逆向分析破解

可以看到这个ui界面是用canvas画出来的,但是没多大影响。

[小记] 某不良网站逆向分析破解

看到发送的请求数据是经过加密的。

[小记] 某不良网站逆向分析破解

返回的数据也是加密的。

[小记] 某不良网站逆向分析破解

看一下请求的堆栈信息,出现了 dart 关键字,结合刚刚看到的 html 标签结构确定了这个是由 flutter 编译出来的。

[小记] 某不良网站逆向分析破解

维基百科关于flutter的介绍

可以看到堆栈中的js文件地址带着随机参数,加了随机参数可以有效防止浏览器缓存。但同时也为我们的断点调试带来了一些不便,例如有些断点打在了变量初始化的位置如果不去掉参数,刚打上的断点就会在刷新完毕后消失,这一点以理解成对于chrome来说两个js的版本不一样了。

这个问题其实很好解决,有多种解决方法。我是利用chrome浏览器的 Override 功能来重写请求响应。

首先我们需要看看这个 main.dart.js 在哪里加载的

[小记] 某不良网站逆向分析破解

提示在 101 行,点进去看:

[小记] 某不良网站逆向分析破解

右键选择 Override content ,之后去掉 t 后面的参数即可。

[小记] 某不良网站逆向分析破解

记得保存之后刷新一下才能在 main.dart.js 这个文件中断点,否则打的断点不会生效。

再来看下这个数据是怎么加密的,得找到加密方法才能进行请求。

[小记] 某不良网站逆向分析破解

[小记] 某不良网站逆向分析破解

随便搜索一个字段,这里我选 sign 进行搜索。

运气还挺好的,一下子就找到了。看来没有使用除了flutter编译时候的混淆外其他混淆。

在第一行打个断点后触发一下,进入断点。

[小记] 某不良网站逆向分析破解

把参数放控制台去欣赏一下,得知:

a 变量是原始请求参数

B.fn 是加密方法,为 aes cbc

$.ben() 获得aes加密的 key 或者是 iv

$.bel() 获得aes加密的 key 或者是 iv

我们再随便找一个aes在线加密的工具,来验证下哪个是key、iv分别是哪个。

我们需要把key和iv从字节集转换成ASCII码,临时封装个转换函数:

asciiToString = asciis=>asciis.map(c=>String.fromCharCode(c)).join('')

[小记] 某不良网站逆向分析破解

[小记] 某不良网站逆向分析破解

再把网页上的加密结果打印出来,等下与我们找的在线加密工具得到的结果做对比。

[小记] 某不良网站逆向分析破解

[小记] 某不良网站逆向分析破解

可以看到加密结果一致的,经过鉴定得出 $.ben() 是 key 、$.bel() 是 iv。

现在可以把 key、iv 复制出来,顺手写一个加解密方法:

[小记] 某不良网站逆向分析破解

再来看下面的逻辑,顺手在这一行下断点

[小记] 某不良网站逆向分析破解

这个加密是计算签名的,j 的长度为64位,计算 j 值的方法又没有第二个参数。盲猜是sha256计算请求体哈西,再找一个计算sha256的在线工具:

[小记] 某不良网站逆向分析破解

结果都一样,证实了确实是 sha256,再次增加一个函数:[小记] 某不良网站逆向分析破解

再来看 n [小记] 某不良网站逆向分析破解

n 值是32位的,计算 n 值的方法传入经典的 123456 得到的是 e10adc 开头又验证了是个 md5。

所以请求体加密签名方法的代码应该是这样,再次顺手翻译成:[小记] 某不良网站逆向分析破解

[小记] 某不良网站逆向分析破解


获取 VIP 视频播放链接



原理其实很简单,就是利用未授权访问漏洞。

在这个网站上的应用就是:随便找一个限免的视频取得播放链接对比下收费视频的链接,改一下子域名即可完成。

由于时间关系,具体的我就不放出来了,其实还可以写更多内容。比如绕过广告之类的骚操作也是可以实现的!

文末结语



我已经写好了部分代码,如果需要可以在公众号内一起学习研究。

 黑灰产对抗之路漫漫其修远兮。先这样吧,见!


原文始发于微信公众号(随心记事):[小记] 某不良网站逆向分析破解

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月17日11:54:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   [小记] 某不良网站逆向分析破解https://cn-sec.com/archives/2117656.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息