吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4858|回复: 37
上一主题 下一主题
收起左侧

[Web逆向] 某图获取图片链接--JS逆向

[复制链接]
跳转到指定楼层
楼主
Timelessyu 发表于 2021-10-25 14:52 回帖奖励
本帖最后由 18113529297 于 2021-10-25 15:44 编辑

目标:aHR0cHM6Ly9tbXp6dHQuY29tLw==
遇到debugger:


对于这个站点有两种方法:
  • 在dubugger处打个短点, 右键编辑改为false
  • 注入js:
  • [JavaScript] 纯文本查看 复制代码
    var _con = Function.prototype.constructor;
    Function.prototype.constructor = function(val){
      if(val = "debugger"){
        return 0;
      }
      return _con(val);
    } 

这样debugger就没有了


接着对获取图片的url进行分析

分析过程:
  • 查看之前的请求的url都返回值,有没有
  • 查看网页源代码发现

发现都没有这相关的内容那就可能是js生成的了, 直接跟栈:


点进去, 下个短断, 然后在点击下一张图, 让网站断在这里



然后跟栈, 找到定位点






头部_0x49be5e就存在我们需要的信息, 继续跟, 找到它生成的位置或者加密方法




最后跟到这里, 查看整个函数体, 一个平坦流, 然后在每个_0x106295所在都case下断



然后跟值:
第一个断点: 大致看出这个创建了这个对象, 然后又对一系列赋值


第二个断点: 就是创建用于存放图片的数组




第三个断点:

  


这里就进行赋值操作了, 把整个代码都翻译成我们看得懂的



这样大致就看得懂了, forEach, 整个代码块就是把_0x34dc1d里的内容遍历赋值给images数组, _0x34dc1d就是我们需要找到内容了, 直接看它赋值处

发现在第一个断点这里, 把它翻译一下就是这个样子
[JavaScript] 纯文本查看 复制代码
_0x51a6be["auFiA"](decrypt, _0x2a3ba0)["split"](',')
//decrypt是一个函数



然后寻找函数所在位置_0x51a6be["auFiA"]:点击跳转到函数位置

看到这里, 基本上就能构造出来它的整个流程了:


总的来说就是decrypt(_0x2a3ba0);继续查找decrypt函数位置




看不懂, 没关系, 把它的翻译成我们看得懂的

[JavaScript] 纯文本查看 复制代码
function decrypt(_0x486268) {
    var _0x4e1e01 = _0x5765
      , _0x2d0d51 = {};
_0x2d0d51["WvNOs"] = "0809020607" + "070303",
_0x2d0d51["XfCDz"] = function(_0x53680c, _0x56563e) {
        return _0x53680c % _0x56563e;
    },
_0x2d0d51["sppdK"] = "oeir",
_0x2d0d51["pTmCH"] = function(_0x5c2378, _0x5788d3) {
        return _0x5c2378 + _0x5788d3;
    };
    ;
var _0x559c2e = _0x2d0d51,
_0x94c48 = _0x559c2e["WvNOs"],
_0x202045 = _0x559c2e["XfCDz"](id, -0xa * 0x3ac + 0x1 * 0x1fe9 + 0x4d1) ? "oeir" :"dafx";
return HexStr = CryptoJS["enc"]["Hex"]["parse"](_0x486268),
Base64Str = CryptoJS["enc"]["Base64"]["stringify"](HexStr),
key = CryptoJS["MD5"](CryptoJS["enc"]["Utf8"]["parse"](_0x559c2e["pTmCH"](id, _0x202045)))["toString"]()["substr"](0xfff + 0xf2 + -0x6f * 0x27, -0x1 * 0x255f + 0x1f44 + 0x62b),
key = CryptoJS["enc"]["Utf8"]["parse"](key),
decrypt = CryptoJS["AES"]['decrypt'](Base64Str, key, {
        'iv': CryptoJS["enc"]["Utf8"]["parse"](_0x94c48), 
        'mode': CryptoJS["mode"]["CBC"],
        'padding': CryptoJS["pad"]["Pkcs7"]
    }),
decrypt["toString"](CryptoJS["enc"]["Utf8"]);
}

这个就很明显了, 直接扣代码进行调试传入缺少参数:
  • 由于我们前面已经吧一些固定值写好, _0x4e1e01就不需要了
  • id就是url后的id数字

使用nodejs运行



接下来就最后的传入参数的值了参数值由它生产




看到这个参数:



这种就有点像html对应的html都结果树了,而且里面的data,不就是我们最后传入参数值嘛, 直接去看看网页源代码


果不其然。换个页面再试一下。




成功!





免费评分

参与人数 17吾爱币 +12 热心值 +17 收起 理由
1saltedfish + 1 大佬厉害,学习学习
Lshannon + 1 + 1 我很赞同!
suyuewen + 1 热心回复!
onlyclxy + 1 + 1 我很赞同!
asas246 + 1 我很赞同!
shadowzpl + 1 + 1 热心回复!
Ouyang520 + 1 用心讨论,共获提升!
剑来…… + 1 + 1 我很赞同!
wuaiwu77 + 1 + 1 用心讨论,共获提升!
52pojie666z + 1 + 1 用心讨论,共获提升!
人家故里 + 1 + 1 热心回复!
lgc81034 + 1 谢谢@Thanks!
lxwen + 1 + 1 用心讨论,共获提升!
yuren0 + 1 + 1 我在大庭广众之下打开了你给的某图……
huiye123 + 1 oh,你真棒
小小宇6 + 1 + 1 用心讨论,共获提升!
wkfy + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
Kaiter_Plus 发表于 2021-10-25 15:14
好帖,学习了!
3#
我今天是大佬 发表于 2021-10-25 15:40
4#
aliya0416 发表于 2021-10-25 16:01
5#
3404071 发表于 2021-10-25 16:16
请问这是什么编辑器
6#
uav 发表于 2021-10-25 20:01
学习一下,要是有视频就更好了
7#
 楼主| Timelessyu 发表于 2021-10-25 20:51 |楼主
3404071 发表于 2021-10-25 16:16
请问这是什么编辑器

vscode
8#
涛之雨 发表于 2021-10-25 22:12
403了。。。
此外那个构造debugger的骚操作学到了ohhhhhhhhhhhhhhhhhh
9#
afti 发表于 2021-10-25 22:43
学习获取图片真实地址!
10#
想不出名字 发表于 2021-10-26 07:47
MK,学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 00:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表