飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2043|回复: 4

[其他内容] 某图床sign参数算法逆向分析

[复制链接]
  • TA的每日心情
    奋斗
    2023-5-13 09:25
  • 签到天数: 89 天

    [LV.6]常住居民II

    发表于 2023-1-14 09:59:03 | 显示全部楼层 |阅读模式
    一.前言
    网址:aHR0cHM6Ly93d3cuc3VwZXJiZWQuY24v
    技术:手扣去除花指令

    二:寻找sign值
    我们打开F12抓包,然后随便上传个图片,抓到一个post包。post包里面有好几个值,只有sign是加密的。

    1

    1

    通过关键词搜索sign并找不到我们想要的关键地方。所以我选择使用xhr断点。

    三:使用XHR断点寻找关键位置

    我们把网址添加到xhr断点位置之后上传图片。

    2

    2

    发现断点已经断了下来

    3

    3

    将混淆后的代码选中可以发现是一个send函数,那么小括号里面的数据应该就是发送的数据了。

    4

    4

    在本文件中搜索_0x568870,发现总共有12个。从第665行可以发现new FormData(),_0x568870是一个对象,从746到752行可以看出数据一个一个被append添加到_0x568870对象里面。

    5

    5

    但是我们要寻找的是sign,sign到底在哪里呢,混淆的代码我一个个查看了发现sign在749行,被混淆过了,所以通过关键词搜索不到。

    6

    6

    在749行下断点按F8,便可以查看到sign的数值_0x4e837a,_0x4e837a是从上面第745行传进来的。也可以看到很亮眼的记个大字MD5,便可以判断那便是sign加密的函数。但是那段代码是混淆过的,我们需要解混淆。

    7

    7

    四:手撕去除花指令

    将那一行加密代码扣下来。第一个函数_0x25869b['UFsia']调用了后面的参数(md5, _0x25869b[_0x1ee3('119', '@)]$')](_0x25869b[_0x1ee3('11a', 'a]$L')](_0x25869b['KWyrc'](_0x4fe853, '_'), _0x38facc['ts']), '_') + _0xd5726e);我们需要去查看_0x25869b['UFsia']究竟有什么用,做了什么功能。

    8

    8

    将断点下到第745行,然后便去控制台打印_0x25869b['UFsia']

    9

    9

    发现_0x25869b['UFsia']是一个函数,而且函数的作用是把第二个参数传进第一个参数里面然后返回。

    10

    10

    第一次代码改写:

    11

    11

    仔细观察改写后的代码可以发现是_0x25869b[_0x1ee3('119', '@)]$')]函数调用了后面的参数_0x25869b[_0x1ee3('11a', 'a]$L')](_0x25869b['KWyrc'](_0x4fe853, '_'), _0x38facc['ts']), '_'
    那我们便继续寻找_0x25869b[_0x1ee3('119', '@)]$')]函数,在控制台打印以后双击便可查看函数,发现这个函数的作用是第一个参数与第二个参数相加。继续改写这段代码

    12

    12

    第二次代码改写:

    13

    13

    仔细观察改写后的代码可以发现是_0x25869b[_0x1ee3('11a', 'a]$L')]函数调用了后面的参数_0x25869b['KWyrc'](_0x4fe853, '_'), _0x38facc['ts']
    那我们便继续寻找_0x25869b[_0x1ee3('11a', 'a]$L')]函数,在控制台打印以后双击便可查看函数,发现这个函数的作用是第一个参数与第二个参数相加。继续改写这段代码

    14

    14

    第三次代码改写:

    15

    15

    仔细观察改写后的代码可以发现是_0x25869b['KWyrc']函数调用了后面的参数_0x4fe853, '_'
    那我们便继续寻找_0x25869b['KWyrc']函数,在控制台打印以后双击便可查看函数,发现这个函数的作用是第一个参数与第二个参数相加。继续改写这段代码

    16

    16

    第四次代码改写:

    17

    17

    花指令已经清除的差不多了,只需要找剩下的值替换进去就可以拿到sign的值了。
    在控制台输出_0x4fe853,_0x38facc['ts']和 _0xd5726e的值

    18

    18

    第五次代码改写:

    19

    19

    解完混淆发现函数是一个md5里面传入一个未定义和两个下划线跟两段数字
    将值进行md5加密跟参数进行对比,未定义是token,因为我们没有登录所以没有token,登录之后就不是未定义了,中间那段数字是ts是段时间戳,第三段数字是参数nonce,而sign就是几个参数拼接起码md5加密的。

    20

    20

    六.结尾
    此教程仅供学习交流使用,如有侵犯权益,联系作者删除。

    评分

    参与人数 1威望 +1 飘云币 +1 收起 理由
    session + 1 + 1

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    难过
    昨天 08:57
  • 签到天数: 527 天

    [LV.9]以坛为家II

    发表于 2023-1-14 13:59:30 | 显示全部楼层
    过来学习,多谢
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-8 05:55
  • 签到天数: 133 天

    [LV.7]常住居民III

    发表于 2023-1-15 21:43:36 | 显示全部楼层
    谢谢楼主分享!谢谢
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-8 05:55
  • 签到天数: 133 天

    [LV.7]常住居民III

    发表于 2023-1-16 19:06:17 | 显示全部楼层
    谢谢楼主分享!下载看看
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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