深度学习

fiddler 修改response

2018-08-06  本文已影响102人  领悟悟悟

我想在知乎主页执行我自己的js代码

使用fiddler针对知乎主页注入自己的js代码,浏览器会对script会对做安全验证(非主动),对于知乎(如果是手机UA,直接追加js即可,pc端ua需要做以下修改)


QQ图片20180806134204.png
删除 response headers中的 content-security-policy
修改网页源码中的meta标签
QQ图片20180806134204.png

修改fiddler rules中的 OnBeforeResponse 方法 让知乎主页滚动条每三秒跳转带底部

static function OnBeforeResponse(oSession: Session) {
        // 首先判断请求域名是否是自己感兴趣的,以及URL中是否含有自己感兴趣的特征字符串。如果是,则将该请求的URL和QueryString记录到日志文件 "c:/fiddler-token.log"中。  
        if (oSession.HostnameIs("mp.weixin.qq.com") && (oSession.uriContains("https://mp.weixin.qq.com/mp/appmsg_comment?action=getcomment") || oSession.uriContains("https://mp.weixin.qq.com/mp/getappmsgext?f=json"))){  
            var filename = "E:/fiddler-token.log";  
            var curDate = new Date();  
            var logContent =  "[" + curDate.toLocaleString() + "] " + oSession.PathAndQuery + "\r\n"+oSession.GetResponseBodyAsString()+"\r\n";  
            var sw : System.IO.StreamWriter;  
            if (System.IO.File.Exists(filename)){  
                sw = System.IO.File.AppendText(filename);  
                sw.Write(logContent);  
            }  
            else{  
                sw = System.IO.File.CreateText(filename);  
                sw.Write(logContent);  
            }  
            sw.Close();  
            sw.Dispose();  
        }else if (oSession.fullUrl == 'https://www.zhihu.com/') {
            var res = oSession.GetResponseBodyAsString();
            // 浏览器对js脚本做了不安全验证
            // 添加 js 脚本
            var js_str = '<meta charSet="utf-8"/><script type="text/javascript"> window.onload=function(){ var terval=setInterval(function(){myTimer()},3000);function myTimer(){var document_high = document.body.scrollHeight;window.scrollTo(0,document_high);}}</script>';
            var result_response = res.Replace('<meta charSet="utf-8"/>', js_str);
            result_response = result_response.replace(/<\/title><meta.*?<link/i,'</title><link');
            oSession.utilSetResponseBody(result_response);
            // 删除响应头信息
            if (oSession.oResponse.headers.Exists('Content-Security-Policy')){
                oSession.oResponse.headers.Remove('Content-Security-Policy');
            }
        }
        
        if (m_Hide304s && oSession.responseCode == 304) {
            oSession["ui-hide"] = "true";
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读