网址:aHR0cDovL3d3dy5wYmMuZ292LmNuLw==
目标:抓取首页任一栏目内容
1.难点一
进入网址打开开发者工具,简单过掉无限debugger后,页面直接跳转到首页,没有进入到我们希望见到的vm位置,点击堆栈,格式化后打断点,点击启动器都无反应。这就厉害了,我还是第一次见到。
2.难点二
访问逻辑,js代码分析
一.抓包分析
使用fiddler抓包可以发现总共请求了四次,第一次请求首页返回了一份js文件,叠词请求携带了参数,并且设置了cookie,第三次请求则是返回了html,通过解析就可以得到我们想要的数据了。
二.分析js文件
查看返回的js,发现就是原生成无限debugger的内容,不难看出这是动态生成的,由于禁用了调试,那我们就直接从网页复制一份到本地去看看。
重点来了!!!先不要格式化!
直接运行,出现了一些小问题,补上之后继续运行
ok,完美运行。那么这时候有人就会问了,就这啊,你在搞什么!接下去看我操作。
前面,我们知道了这段js是生成了什么东西的,既然这段代码没有报错,说明运行之后肯定产生了什么变化,有经验的小伙伴就知道cookie是放在document中的,params是放在window的变量中的,当然不排除有的代码会删除document或者window,不过这是另外一种情况了。所以,我们直接打印window!!!
破案了啊,兄弟们,这是啥!
ok,问题解决!
下班!
想多了,你以为就这么简单吗?
多次运行后,发现location中的值没有变化,说明我们还没有找到其中的变量,或者说穿进去的参数是什么,这才是最关键。
那么有的小伙伴就会说了,搞了半天还是要找到加密函数,还是要一步一步分析,或者ast解混淆后再分析,no,no,no!
注意!骚操作来了!
咋回事儿?小老弟,你复制一份干啥嘞?
别急,等我再多复制几份...
四份应该够用了,这可不是复制上面的啊,这是重新请求来的!
ok,前面我们说了,这个是动态生成的,现在看起来好像不是啊,这不是一抹一样吗,哈哈哈,聪明的小伙伴现在应该已经明白我的目的了。
往后拉,慢慢看...
哟!开始变化了,仔细观察,发现m和t变了!现在我们删除变化的再看一眼,记住千万不能多一眼啊。。。
嗨嗨哎呀~,至此,变化的参数就解决了,然后我们验证一下,随便更改m和t,发现location中的参数雀氏是在 变化,接下来就可以从本地发起请求,从返回的text中匹配出我们需要的m和t进行替换就行了。
a~magi