吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

[Web逆向] 某某房产逆向---------小白讲解04

  [复制链接]
跳转到指定楼层
楼主
Aircraftcomman5 发表于 2025-1-10 12:55 回帖奖励
本帖最后由 Aircraftcomman5 于 2025-1-10 12:59 编辑

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关.本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责。


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
目标网址:aHR0cHM6Ly96Yy1wYWltYWkudGFvYmFvLmNvbS93b3cvcG0vZGVmYXVsdC9wYy80YjgwZmE/JnNjbT0yMDE0MDY0Ny5qdWxhbmcucG0uc2VtJmFfa2V5d29yZGlkPTUyNjExNjA1OTc0NCZiZF92aWQ9MTA4MzkwMzg4MTY4NzEzMDIwODcmcGFnZT0y
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------




---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
操作步骤:
1. 定位参数
2. 分析参数
3. 分析包
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                                                                                                          跟栈
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
前言
     此次,逆向中,所需参数有三个,cookie , 时间戳 ,sign

第一步:
1.1 打开目标网址,分页发包,查看所需的数据包,根据图片里的步骤,我们就可以找到 我们所要逆向的 sign

1.2 点击启动器,进入最上面,第二个栈,我们开始跟栈找寻sign
          (第一个栈断不下来,不过也没必要非要在第一个栈下断,目的是要找到所需参数)

1.3 进入之后,下断点,根据1.1进行一个分页发包,
       在根据图片里的步骤,找寻到目标,虽然找到了,目标参数但是,
          周围给予的信息太不明显,所以我们向上跟栈

第二步:
2.1 根据图中步骤依次进行操作,到达指定位置,在这个过程中,可能会有一些干扰信息但,
       经过多次调试,发现,sign到图中所在的栈就消失了,所以猜测sign值可能就是在此处某一步跳转之后完成加密,按照图中步骤,只保留这个断点其余断点释放掉

        2.1.1 分析第上图第四步到第五步的理由,
                    从图中我们看到,4.1n = this,(this是指当前作用域下,而他里面的值,猜测是某个函数,或变量,或原型,之类赋值给他),
                        但四处找寻却找不到在哪里,但我们将鼠标放在this上面,看到 步骤1 此时this里面指向了c,然后再根据步骤2-4 可以看到sign 存放在了c里面,
                           所以就猜测sign就是 c 里面生成的 但是此时我们所处的位置是在 c.prototype.__processRequest 也就是c的原型里,但是在这这文件里有没有生成sign
                              我们不知道,尽管this里面有sign,但他会不会是在另一个文件里导入进来的,所以就保持怀疑的心继续向上跟栈,到了第五步



2.2  言归正传(第五步处)    保留断点之后进行一次分页发包将断点,
       断在此处,加以分析2.2.1我们这次单步调试一步一步走,
        参数就在这走的过程中自己就会一一展示出来



---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                                                                                           单步调试
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第三步:     
     根据 2.2 在此处一直单步调试,不要怕麻烦,因为很快就会看到第一个参数的生成
3.1 单步执行到这里,就是其中一个参数token,他的流程我们可以大概知道,
          先将this.options赋值给e ,在return中进行一个三元表达式,将最终的值给予e.token在返回

3.2 我们继续单步调试到return看他做了那些操作,
           可以看到第一次判断给了一个undefiend,也就是false,然后就走的步骤2,a方法处,
                  传入了S,是一个字符串,然后我们继续单步调试,就走进了a里面




3.3 分析a可以知道,a里面是个正则表达式,他将浏览器cookie传入进行了某个操作,
           选中之后可以看到,是取出了指定的值,在往下就可以看到return处又一个三元表达,
              那肯定就是返回了t[1]


3.4 然后我们继续单步执行,就到了 3.2 处看到了他将返回的数据进行切分又赋值给了e.token
          最后就是我们要的参数之一


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第四步:
4.1我们还是继续单步调试,虽然速度有点慢,但可以清晰的看到每一步
4.2 单步调试一直到这里c.prototype.__processRequestUrl在这里面一直执行就会到sign的加密处,
所以我们可以试试向下看,因为这是多次调试出来的,并且,它们都在同一个地方所以直接看到这个地方的结尾


4.3 上图有些我给它折叠起来了,看着不杂乱,所以我们现在,直接在sign处下段,
            然后移动到此断点,查看内容,然后我们将这个包执行完,将此处的sign与发送完毕的包的sign对比,  
               可以看到内容一致,那么我们就可以确定 p 就是我们需要的密文,那么接下来我们就开始,扣取代码,
                     打印出sign




---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

                                                                                                         代码的扣取和调用
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第五步:
5.1 这里我们还会继续分析代码参数组成以及代码扣取、调用
5.2 我们找到了sign ,它是由p 生成的,那么就可以知道,p是在某处定义了,所以我们向上找,
         因为肯定是先定义后使用,步骤2就是我们要找的p,这得多亏作用域,因为p步骤3里只有一个,
             超出步骤3,就无法使用了,那么可以知道sign使用的就是这个p

5.3 我们扣取出p放到Code里进行对p的分析,扣取完毕后我们返回浏览器,对这个函数p尾部下断点,查看值的生成


5.4 下完断点后我们重新分页发包,让断点到此处,我们从内往外看,先看函数的返回值,
         然后与 sign:p 的值进行对比,之后再看传入p的参数,可以看到函数的返回值,与sign:p的值是一致的,
               而返回值,所加密的参数已经用红色箭头标记出来

5.5 我们在来看传入的参数,token我们在单步调试第三步已经说明了它的生成,
          这里的token和 第三步的token是一样的,大家有兴趣的可以自己对比对比,
            a是时间戳,s多次调试时一个固定的字符串,n.data就是我们的表单数据里面的page就是我们当前所在的页数,
                  他们用“&”连接之后传入到5.3的头部

5.6 扣取的代码会报错是因为参数的缺少,
        而我们在5.5已经分析完毕,所以我们可以自己创建,
            也可以回到浏览器扣取,这里我扣取的是浏览器器的小小改动一下就可以用


5.7 我们来看一下最终的效果,显然结果是对的,那么到此sign的加密就结束了

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------




---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                                                                                                          数据包Cookie分析
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第六步:
6.1 对于这个站虽然扣取出了代码和加密参数,但如果不是多次调试,和猜想实践,就会造成少扣取,打击信心,命名代码扣了很多,但最后组合,结果不是很理想
6.2 在单步调试第三步我们看到token是由Cookie里面取的,那么我们就知道,在最终代码Cookie是必不可少的
6.3 那么多次调试发现问题出在数据包,我们回到开发者工具,网络界面,在左上角我们清楚当前站的Cookie来看看是不是少东西了,有没有不一样的数据包



6.4 发现又出现了很多不一样的包,我们直接点击第二个来看他的载荷、响应、Cookie
            前两个基本不是很重要,重点就是Cookie发现他返回了Cookie
                我们直接再看第五个数据包也就是我们的目标数据包



                  6.4.1  发现在第五个目标数据包中Cookie携带了6.4响应的Cookie并且响应成功,所以就可以知道,在组合代码时,
6.3响应的Cookie必不可少,既是请求的组成也是加密sign必不可少的参数






                  6.4.2 而可以看到6.3因为没有携带响应的的cookie,获取的数据是令牌为空






---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

                                                                                                      总结
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

           所有的参数都已经分析完毕关键就在于Cookie的获取,sign加密需要,且,请求时也需要携带不然会获取不到数据,从而让我们抓耳挠腮

             同时,在sign加密时要看清载荷的表单数据的格式,不然加密的密文也是不正确
                  另外,还有荷载里面的时间戳也需要放到请求里,不然也会获取数据失败
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



最后,感谢大家的观看,内容如果有哪里说的不对。
请各位大佬给我纠正,给我建议,谢谢大家。

免费评分

参与人数 15威望 +1 吾爱币 +36 热心值 +14 收起 理由
阳明呀 + 1 我很赞同!
ghs114514 + 1 + 1 用心讨论,共获提升!
df123 + 1 + 1 谢谢@Thanks!
景可一试 + 1 + 1 谢谢@Thanks!
allspark + 1 + 1 用心讨论,共获提升!
beihai1314 + 1 + 1 我很赞同!
xinqi77 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
pgasd + 1 + 1 我很赞同!
lj0822 + 1 + 1 我很赞同!
ioyr5995 + 1 + 1 我很赞同!
liuxuming3303 + 1 + 1 谢谢@Thanks!
helian147 + 1 + 1 热心回复!
涛之雨 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
杨辣子 + 1 + 1 谢谢@Thanks!
Arcticlyc + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

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

推荐
pzx521521 发表于 2025-1-14 00:47
一直有个疑问:  
为什么会有前端加密/混淆这种东西?
是为了防爬虫吗?
js这种语言就意味着前端防不住啊,搞什么sign什么的除了浪费服务器的解密 没什么用
为什么不放在后端,类似一个jwt的放后端验证不就好了,防爬虫后端限制就好了啊
沙发
yellowspider 发表于 2025-1-10 18:14
3#
S7947 发表于 2025-1-10 18:23
4#
jamescookers988 发表于 2025-1-10 18:28
链家吧?看着像是,
5#
8787520 发表于 2025-1-10 18:54
加油,奥利给!
6#
linix 发表于 2025-1-10 19:30
写的这么详细,感谢大佬分享
7#
dwade 发表于 2025-1-10 21:00
感谢分享
8#
zhuzx 发表于 2025-1-10 21:17
加油,感谢🙏!
9#
486353 发表于 2025-1-10 23:06
谢谢分享
10#
rnaapp 发表于 2025-1-10 23:47
谢谢大佬分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-1-20 18:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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