猿⼈学题库⼗九题——css加密-雪碧图数据⼲扰等——地毯式
采坑学习
猿⼈学题库⼗四题——
1. ⾸先进⼊浏览器的开发者⼯具,
打开就是 俩个⽆线debugg,正常的操作过掉
1. 到 debugg 对应的⾏数,右击选择 never pause here ,刷新 就不会再此处 停下了
虽然 这样过掉了,但是你会 发现 特别异常的卡,(我怀疑浏览器卡关闭重开,电脑卡了重启发现还是⼀样的),
这样根本不好调试 代码,就⽆法到 js 的逻辑,(后来发现 虽然⽤ never pause here过了,但这不是真真的跳过debug了,只是在debug处 不暂停⽽已,JS代码还是在⽆线执⾏消耗内存卡的吧,卡的导致⽆法调试)
以下俩种解决思路:
1.1 中间⼈攻击 fiddler ⾃⼰返回 数据
1.2 浏览器的 Override ⼯具(这⾥可以查阅资料看看,有时间我补⼀篇博客)
2. 中间⼈攻击 fiddler
可以参考 怎么
先做个测试 对⽐⼀下数据:
2.1 fiddler 修改后返回的数据 (这⾥我已经修改 代码了)
2.2 正常请求返回的数据
可以看到俩个数据是⼀样的,我改后的html代码没有页数了,这⾥页数这⾥不⽤关注,因为我我们只要看到数据对应上就OK了。
3. 分析 JS
看到源码的有⼤堆 JS 看不懂东西,
(这⾥我也不知道怎么区别是不是 ob混淆的,⽬前只知道这种,看不懂的JS丢进去就好了,)
ob解混淆后来看下对⽐,这代码好看程度⼤⼤提升,容易看懂很多
后⾯我就直接看 解混淆后的代码了,可以看到很多的⽅法,但是都是 定义JS⽅法,我们需要到 函数执⾏的地⽅
1. 函数⾃执⾏函数
2. 等待 函数执⾏
3. (function(){ })(window) 也是 ⾃执⾏函数
这⼀题 就这俩个地⽅,JS的只执⾏函数的⽅式很多,花⾥胡哨的有些可以看不懂。
然后 把 ajax 请求 返回 success 成功后⾯ { } ⼤括号⾥⾯ 的代码 全部 换成 解混淆后的代码
在 ⽤浏览器 请求,返回 fiddler ⾃定义修改后 数据(就是更换 解混淆JS的Html),请求还是会断在 ⽆线debug 那⾥
但是我们 出了,⾃执⾏函数的位置,就提前打断点,在⾃执⾏函数 ⾥⾯ 申明的JS⽅法,然后⼜⾃⼰执⾏,我们就在这⾥先打断点
调试 下⼀个断点 就出现了,开始的那俩个 ⽆线debug ,⼀直在有个⽅法⾥死循环(⾃⼰调⽤⾃⼰)
我们可以直接 重写这个 ⽅法的上⼀个 栈⽅法 ⽆线死循环的是 _0x1e51f8 我们重写 _0xde23e 函数
(这俩个函数是我静态保存的,每次请求是不⼀样的,你们要到你们保存数据的⽅法)
再次 刷新请求 ,除了断在⾃⼰打的断点上,⽆线debug已经没有了。
你会惊奇的发现,前⾯提到的 setInterval 定时⾥⾯也有这个函数 _0xde23e ,但是重写了就失效了
这⾥有个⼩问题,感觉上 setInterval的定时函数没有起到作⽤,我做测试的时候 在重写 _0xde23e ⽅法的上⼀层函数 _0x18be96,不重写 _0xde23e 函数,⾃执⾏函数的⽆线debug会过掉,但是 定时函数的_0xde23e⽅法的⽆线debug⽅法没有过掉,但是还是没有出现。
继续分析,
厉害的⼈ 可能会直接略过前⾯的步骤,直接看到 下⾯这部分代码就知道了,ajax 请求成功后,获取数据,然后通过JS添加到前端显⽰。
但是 这⾥有个主意的点,通过JS⽅法把⼀些多余⼲扰的图⽚隐藏了,不然会把⼲扰的数据也获取到。
把返回的 info 是HTML字符串,⾃⼰新建⼀个 HTML 可以打开看看
先 测试 ⼀下,把 JS隐藏样式的代码注释掉,把 要隐藏的class打印在控制台查看,
同时 在这⾥ 把 图⽚的base64编码的字符串 和 对应的 数字,纯⼿⼯ copy 到代码的 字典⾥吧,后⾯根据 图⽚到 对应的 数值
进⼀步 解析 隐藏class 的由来,主要有个 btoa 是个win⾃带的base64编码,
然后 其他的 就是 慢慢扣JS了,缺什么补什么,
var _0x20c24d = "." + _0x124e6b(btoa(data["key"] + data["value"])["replace"](/=/g, ""));
好看的css代码扣完请求后,模拟请求 ,发现 数据还是不对,数值的位置不对,这⾥⽤偏移了,这⾥植⼊ css 的知识
position :相对定位,当前元素 和 上⼀个元素的位置 关系
这⾥看到 img-number 的宽度是 9px 像素,数值框的 宽度是 69px 像素,(有些可能会遇到偏移出去了)
偏移量 [ 0 , 9 . -9 , 0 ]
数字 [ 1 , 6 1 7 ]
第⼀个偏移量 0 : 是第⼀个元素,偏移量还是0,那就是第⼀个值了
第⼆个偏移量 9∶ 正常第⼆个元素对应第⼀个元素的位置关系为 0,加9的偏移量,那就是是第三个位置了
第三个偏移量 -9∶ 第三个元素 对应 第⼆个元素的位置为 0 ,偏移量是 -9 就是往往前⾯移动,那就是第⼆个位置了
第四个偏移量 0∶ 没有偏移,那就是第四个位置设有变化
这⾥ 总结⼀下,四个元素 产⽣偏移量时,想要四个值都在 他们的 偏移求和 肯定等于 0,如果不等于 那就是 偏移到 外⾯的框或重叠了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论