代理截断工具有burpsuite、fiddler都是比较知名的,功能强大,此类工具有一个特性,就是必须设置代理服务器和端口才可以,burpsuite需要手工设置,fiddler是自动设置8080端口,自动设置比较方便,但是如果8080端口用了,会存在问题也要手工配置代理信息,现在很多移动端的app和web网站都对代理做了判断,通过获取客户端的HTTP_X_FORWARDED_FOR信息可以晓得是否是本地代理访问的。判断使用本地代理则忽略动态请求,从而增加了安全性,因为正常访问是不会配置本地代理的,几乎不会影响用户体验,火车站订票网站也用了此措施,不然更多的问题都暴露出来了,做了也不代表就安全了。
怎么绕过服务端判断了客户端是否使用本地代理访问呢,有两种思路,一种是通过底层截获本地数据包,再重新发数据包,如果这个会话存在Token令牌,又会增加嗅探的难度,只是在外面加了一层防火墙,增加难度,如果增加了Token,则需要通过CURL抓到网页的Token隐藏域再次提交,如果没有的话,直接记录下RAW requests,修改RAW Request再次发请求就好了。这种方式完全可以实现的,只是复杂一些,咨询一个资深逆向分析的朋友,通过驱动层可以直接截断实现不用代理直接改数据包发送请求,也可以做那些代理截断一样的篡改提交,这是大神级别玩的了,以后这类工具肯定会有大神去搞的。我说的这种方式是正常的获取请求,提交请求。
以前一直想下载ik123.com里面的dj舞曲,超好听,无奈要花钱办会员才可以下载,因为在线可以听,就在线听了,想下载下来放到手机上去,之前通过js请求,看到发送到一个swf扩展名的flash文件去处理的,下载了没用,不是真实的歌曲,今天忽然想起了,用burpsuite代理监听,html,js,css,div都可以正常响应,就是js请求的资源无法正常返回,这样嗅探不到资源了,服务端肯定也是判断了本地代理访问了。这类工具的嗅探分析就失效了。然后就用火狐浏览器,打开Firebug,换首歌看到只发出1个请求,就是dj歌曲的请求了,返回的信息为:
此 URL 的资源不是文本: http://fv.ik123.com/Dj_www.ik123.com/2010/201208%2F1.%C9%EE%B8%DBdj%B4%F2%D4%EC%D5%E4%B2%D8%BE%AB%C6%B7%B3%B5%D4%D8dj%B4%AE%C9%D5.ik?vsid=982e248b918ece004598d5247191bec3&name=www.ik123.com
直接访问这个url会下载到一个ik扩展名的文件,28.5M,文件名为201208%2F1.%C9%EE%B8%DBdj%B4%F2%D4%EC%D5%E4%B2%D8%BE%AB%C6%B7%B3%B5%D4%D8dj%B4%AE%C9%D5.IK 看这个文件名就好像是在缓存里面的歌曲文件了,一般在线歌曲都是采用的WMA扩展名的,体积小,不是高清音质的,然后把IK扩展名改为WMA本地就可以直接打开播放了。曾经一直想下载,请教各种人,各种技术分析,最后都没下载下来,看来搞东东没有难不难,关键是思路对了,事半功倍。