某客园目前对全平台做内容审核,怕哪一天给和谐了,所以来csdn作备份
声明
以下内容涉及的平台是我朋友的平台,另外也不存在攻击破解拿商业数据等行为,为了安全着想,部分信息已打码
前言
我朋友给了我一个网站,说他们内部测试用的,要我看下有没有办法爬数据,也就是他们的搜索接口能搞不,这已经是我做反爬开始的第n个爬虫等级测试了
分析
习以为常的打开网站,然后就看到下面的界面:
看到了嘛,我填入关键词搜索的时候,url直接就变成了https://xxxxxx.com/index/ioc?q=333630(注意这个网址,如果老手的话,一开始就从这里下手了,此时的话,我就从一开始的逻辑开始一步一步往下吧)
也就是说此时此刻,【360】被转成了【333630】,有点意思哈,其实这种的我之前就遇到过,不过为了阐述清楚,我还是从头开始展示我的思路,怎么发现,然后怎么解决的。当然,对于js逆向大佬看这篇文章可就太简单了,那可不,我朋友这平台连js代码混淆都没做的,我都还没用上AST呢
继续哈,看他的网站源码,
浏览器自带的抓包工具里也只是直接调用了一个异步请求拿到返回结果而已:
并没有发现很奇特的请求,也没有做重定向跳转去中间站获取该值再请求,
找到关键点
那么,多次测试后我得出结论,一定是js生成的。那既然是js生成的话,那就一定有一个触发时间去转输入框里输入的值,根据我上面分析的网站源码,那就只有一种了,当我点击【检索】按钮搜索的时候,触发了一个js事件去转译或者说编译我输入的值
js调试
那么就进入js调试了,先全文检索这个异步请求接口:
只有一个文件,点进去再格式化:
然后等了好半天才出来,发现js文件并未做混淆,那就好办了,打上断点,顿时发现,卧槽19万行代码,这文件有点大啊,难怪加载这么久:
换个词点击搜索再看看js的堆栈跳转: