Beispiel #1
0
        void TestLog(int LogId)
        {
            Session Sess = Session.FromProxyLog(LogId);

            if (Sess.Response != null)
            {
                Request ReqToTest = ModifyCsrfTokenInRequest(Sess.Request.GetClone());
                ReqToTest.SetSource("CsrfTester");
                if (LoginRecording != null)
                {
                    ReqToTest.SetCookie(LoginRecording.Cookies);
                    if (!LoginRecording.IsLoggedIn())
                    {
                        LoginRecording.DoLogin();
                        if (!LoginRecording.IsLoggedIn())
                        {
                            throw new Exception("Unable to login user!");
                        }
                        ReqToTest.SetCookie(LoginRecording.Cookies);
                    }
                }
                Response Res = ReqToTest.Send();

                int DiffPercent = Tools.DiffLevel(Sess.Response.ToString(), Res.ToString());

                AddTestResult(Sess.Request.ToBinaryString(), Sess.Response.ToBinaryString(), ReqToTest.ToBinaryString(), Res.ToBinaryString(), DiffPercent, Sess.Request, ReqToTest);
            }
        }
Beispiel #2
0
        void TestLog(int LogId)
        {
            Session Sess = Session.FromProxyLog(LogId);

            if (Sess.Response != null)
            {
                foreach (string Section in ParametersToAdd.Keys)
                {
                    foreach (string[] ParamVal in ParametersToAdd[Section])
                    {
                        Request ReqToTest = Sess.Request.GetClone();
                        switch (Section)
                        {
                        case ("Query"):
                            ReqToTest.Query.Set(ParamVal[0], ParamVal[1]);
                            break;

                        case ("Body"):
                            if (ReqToTest.IsNormal)
                            {
                                ReqToTest.Body.Set(ParamVal[0], ParamVal[1]);
                            }
                            break;

                        case ("Cookie"):
                            ReqToTest.Cookie.Set(ParamVal[0], ParamVal[1]);
                            break;

                        case ("Headers"):
                            if (ParamVal[0].Equals("Host"))
                            {
                                ReqToTest.OverrideHostTo = ParamVal[1];
                            }
                            else
                            {
                                ReqToTest.Headers.Set(ParamVal[0], ParamVal[1]);
                            }
                            break;
                        }
                        ReqToTest.SetSource("HiddenParameterGuesser");
                        if (LoginRecording != null)
                        {
                            ReqToTest.SetCookie(LoginRecording.Cookies);
                            if (!LoginRecording.IsLoggedIn())
                            {
                                LoginRecording.DoLogin();
                                if (!LoginRecording.IsLoggedIn())
                                {
                                    throw new Exception("Unable to login user!");
                                }
                                ReqToTest.SetCookie(LoginRecording.Cookies);
                            }
                        }
                        Response Res = ReqToTest.Send();

                        int DiffPercent = Tools.DiffLevel(Sess.Response.ToString(), Res.ToString());

                        AddTestResult(Sess.Request.ToBinaryString(), Sess.Response.ToBinaryString(), ReqToTest.ToBinaryString(), Res.ToBinaryString(), DiffPercent, Sess.Request, ReqToTest, Section, ParamVal[0], ParamVal[1]);
                    }
                }
            }
        }