コード例 #1
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
        internal static string SourceName(RequestSource Source)
        {
            string StringSource = "";

            switch (Source)
            {
            case RequestSource.Test:
                StringSource = "Test";
                break;

            case RequestSource.Scan:
                StringSource = "Scan";
                break;

            case RequestSource.Shell:
                StringSource = "Shell";
                break;

            case RequestSource.Probe:
                StringSource = "Probe";
                break;

            case RequestSource.Proxy:
                StringSource = "Proxy";
                break;
            }
            return(StringSource);
        }
コード例 #2
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
        static void CopyResponse(object Details)
        {
            try
            {
                object[]      DetailsArray = (object[])Details;
                RequestSource Source       = (RequestSource)DetailsArray[0];
                int           ID           = (int)DetailsArray[1];

                Session IrSe = GetLog(Source, ID);
                if (IrSe == null)
                {
                    IronUI.ShowLogStatus("Unable to read Response from log", true);
                    return;
                }
                if (IrSe.Response == null)
                {
                    IronUI.ShowLogStatus("Unable to read Response from log", true);
                    return;
                }
                IronUI.SetClipBoard(IrSe.Response.ToString());
            }
            catch (Exception Exp)
            {
                IronUI.ShowLogStatus("Unable to read Request from Log", true);
                IronException.Report("Error reading from log", Exp.Message, Exp.StackTrace);
            }
        }
コード例 #3
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
        static void MarkForScanning(object Details)
        {
            try
            {
                object[]      DetailsArray = (object[])Details;
                RequestSource Source       = (RequestSource)DetailsArray[0];
                int           ID           = (int)DetailsArray[1];

                Session IrSe = GetLog(Source, ID);
                if (IrSe == null)
                {
                    IronUI.ShowLogStatus("Unable to read Request from log", true);
                    return;
                }
                if (IrSe.Request == null)
                {
                    IronUI.ShowLogStatus("Unable to read Request from log", true);
                    return;
                }
                int ScanID = Interlocked.Increment(ref Config.ScanCount);
                IronDB.CreateScan(ScanID, IrSe.Request);
                IronUI.CreateScan(ScanID, "Not Started", IrSe.Request.Method, IrSe.Request.FullUrl);
                IronUI.ShowScanJobsQueue();
            }
            catch (Exception Exp)
            {
                IronUI.ShowLogStatus("Unable to read Request from Log", true);
                IronException.Report("Error reading from log", Exp.Message, Exp.StackTrace);
            }
        }
コード例 #4
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
        static void MarkForJavaScriptTesting(object Details)
        {
            try
            {
                object[]      DetailsArray = (object[])Details;
                RequestSource Source       = (RequestSource)DetailsArray[0];
                int           ID           = (int)DetailsArray[1];

                Session IrSe = GetLog(Source, ID);
                if (IrSe == null)
                {
                    IronUI.ShowLogStatus("Unable to read Response from log", true);
                    return;
                }
                if (IrSe.Response == null)
                {
                    IronUI.ShowLogStatus("Unable to read Response from log", true);
                    return;
                }
                IronUI.FillAndShowJavaScriptTester(IrSe.Response.BodyString);
            }
            catch (Exception Exp)
            {
                IronUI.ShowLogStatus("Unable to read Response from Log", true);
                IronException.Report("Error reading from log", Exp.Message, Exp.StackTrace);
            }
        }
コード例 #5
0
ファイル: IronLog.cs プロジェクト: welias/IronWASP
        internal static void CopyResponse(RequestSource Source, int ID)
        {
            object[] Details = new object[] { Source, ID };

            Thread Worker = new Thread(CopyResponse);
            Worker.Start(Details);
        }
コード例 #6
0
ファイル: Request.cs プロジェクト: melagiri/IronWASP
 internal Request(Fiddler.Session Sess)
 {
     this.InitiateParameters();
     if (Sess.oFlags.ContainsKey("IronFlag-ID"))
     {
         this.ID = Int32.Parse(Sess.oFlags["IronFlag-ID"]);
     }
     if (Sess.oFlags.ContainsKey("IronFlag-ScanID"))
     {
         this.ScanID = Int32.Parse(Sess.oFlags["IronFlag-ScanID"]);
     }
     if (Sess.oFlags.ContainsKey("IronFlag-Ticks"))
     {
         this.TimeObject = new DateTime(long.Parse(Sess.oFlags["IronFlag-Ticks"]));
     }
     if (Sess.oFlags.ContainsKey("IronFlag-BuiltBy"))
     {
         if (Sess.oFlags["IronFlag-BuiltBy"] == "ManualTestingSection")
         {
             this.Source = RequestSource.Test;
         }
     }
     this.AbsorbFullURL(Sess.fullUrl);
     this.Method = Sess.oRequest.headers.HTTPMethod;
     foreach (Fiddler.HTTPHeaderItem HHI in Sess.oRequest.headers)
     {
         this.Headers.Add(HHI.Name, HHI.Value);
     }
     this.SetBody(Sess.requestBodyBytes);
 }
コード例 #7
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
        internal static void CopyResponse(RequestSource Source, int ID)
        {
            object[] Details = new object[] { Source, ID };

            Thread Worker = new Thread(CopyResponse);

            Worker.Start(Details);
        }
コード例 #8
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
        internal static void MarkForJavaScriptTesting(RequestSource Source, int ID)
        {
            object[] Details = new object[] { Source, ID };

            Thread Worker = new Thread(MarkForJavaScriptTesting);

            Worker.Start(Details);
        }
コード例 #9
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
        internal static void MarkForTesting(RequestSource Source, int ID, string Group)
        {
            object[] Details = new object[] { Source, ID, Group };

            Thread Worker = new Thread(MarkForTesting);

            Worker.Start(Details);
        }
コード例 #10
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
 internal static void ShowLog(RequestSource Source, int ID)
 {
     CurrentSource = Source;
     CurrentID     = ID;
     PrepareToShowLog();
     CurrentThread = new Thread(ShowLog);
     CurrentThread.Start();
 }
コード例 #11
0
ファイル: IronLog.cs プロジェクト: welias/IronWASP
 internal static void CopyResponse(RequestSource Source, string ID)
 {
     try
     {
         int IntID = Int32.Parse(ID);
         CopyResponse(Source, IntID);
     }
     catch { return; }
 }
コード例 #12
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
 internal static void CopyResponse(RequestSource Source, string ID)
 {
     try
     {
         int IntID = Int32.Parse(ID);
         CopyResponse(Source, IntID);
     }
     catch { return; }
 }
コード例 #13
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
 internal static void MarkForJavaScriptTesting(RequestSource Source, string ID)
 {
     try
     {
         int IntID = Int32.Parse(ID);
         MarkForJavaScriptTesting(Source, IntID);
     }
     catch { return; }
 }
コード例 #14
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
 internal static void MarkForTesting(RequestSource Source, string ID, string Group)
 {
     try
     {
         int IntID = Int32.Parse(ID);
         MarkForTesting(Source, IntID, Group);
     }
     catch { return; }
 }
コード例 #15
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
 internal static void ShowLog(RequestSource Source, string ID, int RowID, bool IsSiteMapSelected)
 {
     try
     {
         int IntID = Int32.Parse(ID);
         CurrentRowID = RowID;
         IsSiteMap    = IsSiteMapSelected;
         ShowLog(Source, IntID);
     }
     catch { return; }
 }
コード例 #16
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
        static void MarkForTesting(object Details)
        {
            try
            {
                object[]      DetailsArray = (object[])Details;
                RequestSource Source       = (RequestSource)DetailsArray[0];
                int           ID           = (int)DetailsArray[1];
                string        Group        = DetailsArray[2].ToString();

                Session IrSe = GetLog(Source, ID);
                if (IrSe == null)
                {
                    IronUI.ShowLogStatus("Unable to read Request from log", true);
                    return;
                }
                if (IrSe.Request == null)
                {
                    IronUI.ShowLogStatus("Unable to read Request from log", true);
                    return;
                }
                int TestID = Interlocked.Increment(ref Config.TestRequestsCount);
                IrSe.Request.ID = TestID;
                IronDB.LogMTRequest(IrSe.Request);
                IronDB.ClearGroup(Group);
                ManualTesting.CurrentRequestID = TestID;
                ManualTesting.CurrentGroup     = Group;
                ManualTesting.ClearGroup(Group, TestID);
                ManualTesting.StoreInGroupList(IrSe.Request);
                IronUI.SetNewTestRequest(IrSe.Request, Group);
            }
            catch (Exception Exp)
            {
                IronUI.ShowLogStatus("Unable to read Request from Log", true);
                IronException.Report("Error reading from log", Exp.Message, Exp.StackTrace);
            }
        }
コード例 #17
0
ファイル: Request.cs プロジェクト: moon2l/IronWASP
 internal Request(Fiddler.Session Sess)
 {
     this.InitiateParameters();
     if (Sess.oFlags.ContainsKey("IronFlag-ID"))
     {
         this.ID = Int32.Parse(Sess.oFlags["IronFlag-ID"]);
     }
     if (Sess.oFlags.ContainsKey("IronFlag-ScanID"))
     {
         this.ScanID = Int32.Parse(Sess.oFlags["IronFlag-ScanID"]);
     }
     if (Sess.oFlags.ContainsKey("IronFlag-Ticks"))
     {
         this.TimeObject = new DateTime(long.Parse(Sess.oFlags["IronFlag-Ticks"]));
     }
     if (Sess.oFlags.ContainsKey("IronFlag-BuiltBy"))
     {
         if (Sess.oFlags["IronFlag-BuiltBy"] == "ManualTestingSection")
             this.Source = RequestSource.Test;
     }
     this.AbsorbFullURL(Sess.fullUrl);
     this.Method = Sess.oRequest.headers.HTTPMethod;
     foreach (Fiddler.HTTPHeaderItem HHI in Sess.oRequest.headers)
     {
         this.Headers.Add(HHI.Name, HHI.Value);
     }
     this.SetBody(Sess.requestBodyBytes);
 }
コード例 #18
0
ファイル: IronLog.cs プロジェクト: welias/IronWASP
 internal static void MarkForJavaScriptTesting(RequestSource Source, string ID)
 {
     try
     {
         int IntID = Int32.Parse(ID);
         MarkForJavaScriptTesting(Source, IntID);
     }
     catch { return; }
 }
コード例 #19
0
ファイル: IronLog.cs プロジェクト: welias/IronWASP
 static Session GetLog(RequestSource Source, int ID)
 {
     Session IrSe = null;
     switch (Source)
     {
         case RequestSource.Proxy:
             IrSe = Session.FromProxyLog(ID);
             break;
         case RequestSource.Scan:
             IrSe = Session.FromScanLog(ID);
             break;
         case RequestSource.Shell:
             IrSe = Session.FromShellLog(ID);
             break;
         case RequestSource.Test:
             IrSe = Session.FromTestLog(ID);
             break;
         case RequestSource.Probe:
             IrSe = Session.FromProbeLog(ID);
             break;
         case RequestSource.Trigger:
             Trigger SelectedTrigger = PluginResult.CurrentPluginResult.Triggers.GetTrigger(ID -1);
             if (SelectedTrigger.Request != null)
             {
                 if (SelectedTrigger.Response == null)
                     IrSe = new Session(SelectedTrigger.Request);
                 else
                     IrSe = new Session(SelectedTrigger.Request, SelectedTrigger.Response);
             }
             break;
         case RequestSource.TestGroup:
             if (ManualTesting.RedGroupSessions.ContainsKey(ID)) return ManualTesting.RedGroupSessions[ID].GetClone();
             if (ManualTesting.BlueGroupSessions.ContainsKey(ID)) return ManualTesting.BlueGroupSessions[ID].GetClone();
             if (ManualTesting.GreenGroupSessions.ContainsKey(ID)) return ManualTesting.GreenGroupSessions[ID].GetClone();
             if (ManualTesting.GrayGroupSessions.ContainsKey(ID)) return ManualTesting.GrayGroupSessions[ID].GetClone();
             if (ManualTesting.BrownGroupSessions.ContainsKey(ID)) return ManualTesting.BrownGroupSessions[ID].GetClone();
             break;
         case RequestSource.SelectedLogEntry:
             return IronLog.CurrentSession.GetClone();
         case RequestSource.CurrentProxyInterception:
             return IronProxy.CurrentSession.GetClone();
     }
     return IrSe;
 }
コード例 #20
0
ファイル: IronLog.cs プロジェクト: melagiri/IronWASP
        static Session GetLog(RequestSource Source, int ID)
        {
            Session IrSe = null;

            switch (Source)
            {
            case RequestSource.Proxy:
                IrSe = Session.FromProxyLog(ID);
                break;

            case RequestSource.Scan:
                IrSe = Session.FromScanLog(ID);
                break;

            case RequestSource.Shell:
                IrSe = Session.FromShellLog(ID);
                break;

            case RequestSource.Test:
                IrSe = Session.FromTestLog(ID);
                break;

            case RequestSource.Probe:
                IrSe = Session.FromProbeLog(ID);
                break;

            case RequestSource.Trigger:
                Trigger SelectedTrigger = PluginResult.CurrentPluginResult.Triggers.GetTrigger(ID - 1);
                if (SelectedTrigger.Request != null)
                {
                    if (SelectedTrigger.Response == null)
                    {
                        IrSe = new Session(SelectedTrigger.Request);
                    }
                    else
                    {
                        IrSe = new Session(SelectedTrigger.Request, SelectedTrigger.Response);
                    }
                }
                break;

            case RequestSource.TestGroup:
                if (ManualTesting.RedGroupSessions.ContainsKey(ID))
                {
                    return(ManualTesting.RedGroupSessions[ID].GetClone());
                }
                if (ManualTesting.BlueGroupSessions.ContainsKey(ID))
                {
                    return(ManualTesting.BlueGroupSessions[ID].GetClone());
                }
                if (ManualTesting.GreenGroupSessions.ContainsKey(ID))
                {
                    return(ManualTesting.GreenGroupSessions[ID].GetClone());
                }
                if (ManualTesting.GrayGroupSessions.ContainsKey(ID))
                {
                    return(ManualTesting.GrayGroupSessions[ID].GetClone());
                }
                if (ManualTesting.BrownGroupSessions.ContainsKey(ID))
                {
                    return(ManualTesting.BrownGroupSessions[ID].GetClone());
                }
                break;

            case RequestSource.SelectedLogEntry:
                return(IronLog.CurrentSession.GetClone());

            case RequestSource.CurrentProxyInterception:
                return(IronProxy.CurrentSession.GetClone());
            }
            return(IrSe);
        }
コード例 #21
0
ファイル: IronLog.cs プロジェクト: welias/IronWASP
 internal static void ShowLog(RequestSource Source, int ID)
 {
     CurrentSource = Source;
     CurrentID = ID;
     PrepareToShowLog();
     CurrentThread = new Thread(ShowLog);
     CurrentThread.Start();
 }
コード例 #22
0
ファイル: IronLog.cs プロジェクト: welias/IronWASP
 internal static string SourceName(RequestSource Source)
 {
     string StringSource = "";
     switch (Source)
     {
         case RequestSource.Test:
             StringSource = "Test";
             break;
         case RequestSource.Scan:
             StringSource = "Scan";
             break;
         case RequestSource.Shell:
             StringSource = "Shell";
             break;
         case RequestSource.Probe:
             StringSource = "Probe";
             break;
         case RequestSource.Proxy:
             StringSource = "Proxy";
             break;
     }
     return StringSource;
 }
コード例 #23
0
ファイル: IronLog.cs プロジェクト: welias/IronWASP
 internal static void ShowLog(RequestSource Source, string ID)
 {
     try
     {
         int IntID = Int32.Parse(ID);
         ShowLog(Source, IntID);
     }
     catch { return; }
 }
コード例 #24
0
ファイル: IronLog.cs プロジェクト: welias/IronWASP
        internal static void MarkForTesting(RequestSource Source, int ID, string Group)
        {
            object[] Details = new object[] { Source, ID, Group };

            Thread Worker = new Thread(MarkForTesting);
            Worker.Start(Details);
        }
コード例 #25
0
ファイル: IronLog.cs プロジェクト: welias/IronWASP
 internal static void MarkForTesting(RequestSource Source, string ID, string Group)
 {
     try
     {
         int IntID = Int32.Parse(ID);
         MarkForTesting(Source, IntID, Group);
     }
     catch { return; }
 }
コード例 #26
0
ファイル: IronLog.cs プロジェクト: welias/IronWASP
        internal static void MarkForScanning(RequestSource Source, int ID)
        {
            object[] Details = new object[] { Source, ID};

            Thread Worker = new Thread(MarkForScanning);
            Worker.Start(Details);
        }
コード例 #27
0
ファイル: IronLog.cs プロジェクト: mskr30/IronWASP
 internal static void ShowLog(RequestSource Source, string ID, int RowID, bool IsSiteMapSelected)
 {
     try
     {
         int IntID = Int32.Parse(ID);
         CurrentRowID = RowID;
         IsSiteMap = IsSiteMapSelected;
         ShowLog(Source, IntID);
     }
     catch { return; }
 }