From af33a89e05c67a53950811ca33067b64dcf29729 Mon Sep 17 00:00:00 2001 From: shack2 <1341413415@qq.com> Date: Mon, 27 Aug 2018 17:46:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B020180827?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新20180827 --- SuperSQLInjection/Main.Designer.cs | 376 +++++++++++------- SuperSQLInjection/Main.cs | 108 ++++- SuperSQLInjection/Main.resx | 12 +- SuperSQLInjection/bypass/StringReplace.cs | 9 +- SuperSQLInjection/model/Config.cs | 5 +- SuperSQLInjection/model/KeyType.cs | 9 +- SuperSQLInjection/tools/Tools.cs | 71 +++- SuperSQLInjection/tools/http/HTTP.cs | 9 + update.txt | 8 +- ...80422.docx => 超级SQL注入工具使用说明书V20180827.docx | Bin 532692 -> 534497 bytes 10 files changed, 430 insertions(+), 177 deletions(-) rename 超级SQL注入工具使用说明书V20180422.docx => 超级SQL注入工具使用说明书V20180827.docx (93%) diff --git a/SuperSQLInjection/Main.Designer.cs b/SuperSQLInjection/Main.Designer.cs index 58f8b26..6a65f75 100644 --- a/SuperSQLInjection/Main.Designer.cs +++ b/SuperSQLInjection/Main.Designer.cs @@ -159,12 +159,19 @@ this.token_txt_endStr = new System.Windows.Forms.TextBox(); this.token_txt_startStr = new System.Windows.Forms.TextBox(); this.token_btn_testGetToken = new System.Windows.Forms.Button(); + this.tab_sencond_inject = new System.Windows.Forms.TabPage(); + this.groupBox20 = new System.Windows.Forms.GroupBox(); + this.groupBox21 = new System.Windows.Forms.GroupBox(); + this.label28 = new System.Windows.Forms.Label(); + this.txt_sencond_request = new System.Windows.Forms.TextBox(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.groupBox16 = new System.Windows.Forms.GroupBox(); this.label4 = new System.Windows.Forms.Label(); this.txt_inject_showColumn = new System.Windows.Forms.TextBox(); this.label8 = new System.Windows.Forms.Label(); this.txt_inject_unionColumnsCount = new System.Windows.Forms.TextBox(); + this.btn_inject_sendData = new System.Windows.Forms.Button(); + this.btn_inject_clearRequest = new System.Windows.Forms.Button(); this.groupBox15 = new System.Windows.Forms.GroupBox(); this.cbox_inject_type = new System.Windows.Forms.ComboBox(); this.label29 = new System.Windows.Forms.Label(); @@ -177,9 +184,8 @@ this.btn_inject_setEncodingRange = new System.Windows.Forms.Button(); this.label13 = new System.Windows.Forms.Label(); this.label12 = new System.Windows.Forms.Label(); + this.btn_inject_randStr = new System.Windows.Forms.Button(); this.btn_inject_setTokenLocation = new System.Windows.Forms.Button(); - this.btn_inject_clearRequest = new System.Windows.Forms.Button(); - this.btn_inject_sendData = new System.Windows.Forms.Button(); this.chk_inject_foward_302 = new System.Windows.Forms.CheckBox(); this.btn_inject_setInject = new System.Windows.Forms.Button(); this.mytab = new System.Windows.Forms.TabControl(); @@ -200,12 +206,12 @@ this.chk_reaplaceBeforURLEncode = new System.Windows.Forms.CheckBox(); this.cob_keyRepalce = new System.Windows.Forms.ComboBox(); this.label10 = new System.Windows.Forms.Label(); - this.bypass_chk_base64 = new System.Windows.Forms.CheckBox(); this.bypass_cbox_randIPToHeader = new System.Windows.Forms.ComboBox(); this.label18 = new System.Windows.Forms.Label(); this.label17 = new System.Windows.Forms.Label(); this.bypass_cbox_sendHTTPSleepTime = new System.Windows.Forms.ComboBox(); this.bypass_chk_usebetween = new System.Windows.Forms.CheckBox(); + this.bypass_hex = new System.Windows.Forms.CheckBox(); this.bypass_chk_inculdeStr = new System.Windows.Forms.CheckBox(); this.label16 = new System.Windows.Forms.Label(); this.bypass_txt_replaceTo = new System.Windows.Forms.TextBox(); @@ -287,7 +293,7 @@ this.lbl_packsCount = new System.Windows.Forms.ToolStripStatusLabel(); this.timer_status = new System.Windows.Forms.Timer(this.components); this.timer_scanInjection = new System.Windows.Forms.Timer(this.components); - this.btn_inject_randStr = new System.Windows.Forms.Button(); + this.chk_sencondInject = new System.Windows.Forms.CheckBox(); this.gb_basic.SuspendLayout(); this.menuStrip_main.SuspendLayout(); this.gb_logo.SuspendLayout(); @@ -328,6 +334,9 @@ this.tab_tokenset.SuspendLayout(); this.groupBox17.SuspendLayout(); this.groupBox19.SuspendLayout(); + this.tab_sencond_inject.SuspendLayout(); + this.groupBox20.SuspendLayout(); + this.groupBox21.SuspendLayout(); this.groupBox3.SuspendLayout(); this.groupBox16.SuspendLayout(); this.groupBox15.SuspendLayout(); @@ -379,7 +388,7 @@ this.gb_basic.Controls.Add(this.label1); this.gb_basic.Location = new System.Drawing.Point(11, 30); this.gb_basic.Name = "gb_basic"; - this.gb_basic.Size = new System.Drawing.Size(810, 84); + this.gb_basic.Size = new System.Drawing.Size(836, 84); this.gb_basic.TabIndex = 0; this.gb_basic.TabStop = false; this.gb_basic.Text = "基础信息"; @@ -397,9 +406,9 @@ // // btn_exportConfig // - this.btn_exportConfig.Location = new System.Drawing.Point(720, 51); + this.btn_exportConfig.Location = new System.Drawing.Point(720, 50); this.btn_exportConfig.Name = "btn_exportConfig"; - this.btn_exportConfig.Size = new System.Drawing.Size(75, 23); + this.btn_exportConfig.Size = new System.Drawing.Size(100, 23); this.btn_exportConfig.TabIndex = 11; this.btn_exportConfig.Text = "导出配置"; this.btn_exportConfig.UseVisualStyleBackColor = true; @@ -510,9 +519,9 @@ // btn_autoInject // this.btn_autoInject.ImageKey = "(无)"; - this.btn_autoInject.Location = new System.Drawing.Point(720, 18); + this.btn_autoInject.Location = new System.Drawing.Point(720, 17); this.btn_autoInject.Name = "btn_autoInject"; - this.btn_autoInject.Size = new System.Drawing.Size(75, 23); + this.btn_autoInject.Size = new System.Drawing.Size(100, 23); this.btn_autoInject.TabIndex = 5; this.btn_autoInject.Text = "识别注入"; this.btn_autoInject.UseVisualStyleBackColor = true; @@ -621,7 +630,7 @@ this.tsmi_help}); this.menuStrip_main.Location = new System.Drawing.Point(0, 0); this.menuStrip_main.Name = "menuStrip_main"; - this.menuStrip_main.Size = new System.Drawing.Size(834, 25); + this.menuStrip_main.Size = new System.Drawing.Size(860, 25); this.menuStrip_main.TabIndex = 2; this.menuStrip_main.Text = "menuStrip1"; // @@ -739,7 +748,7 @@ this.gb_logo.Controls.Add(this.txt_log); this.gb_logo.Location = new System.Drawing.Point(8, 591); this.gb_logo.Name = "gb_logo"; - this.gb_logo.Size = new System.Drawing.Size(813, 87); + this.gb_logo.Size = new System.Drawing.Size(839, 87); this.gb_logo.TabIndex = 3; this.gb_logo.TabStop = false; this.gb_logo.Text = "日志"; @@ -751,7 +760,7 @@ this.txt_log.Multiline = true; this.txt_log.Name = "txt_log"; this.txt_log.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.txt_log.Size = new System.Drawing.Size(807, 67); + this.txt_log.Size = new System.Drawing.Size(833, 67); this.txt_log.TabIndex = 3; // // tab_logCenter @@ -760,7 +769,7 @@ this.tab_logCenter.ImageKey = "log.png"; this.tab_logCenter.Location = new System.Drawing.Point(4, 23); this.tab_logCenter.Name = "tab_logCenter"; - this.tab_logCenter.Size = new System.Drawing.Size(806, 440); + this.tab_logCenter.Size = new System.Drawing.Size(832, 440); this.tab_logCenter.TabIndex = 3; this.tab_logCenter.Text = "日志中心"; this.tab_logCenter.UseVisualStyleBackColor = true; @@ -779,7 +788,7 @@ // splitContainer1.Panel2 // this.splitContainer1.Panel2.Controls.Add(this.groupBox6); - this.splitContainer1.Size = new System.Drawing.Size(806, 440); + this.splitContainer1.Size = new System.Drawing.Size(832, 440); this.splitContainer1.SplitterDistance = 221; this.splitContainer1.TabIndex = 2; // @@ -789,7 +798,7 @@ this.groupBox5.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox5.Location = new System.Drawing.Point(0, 0); this.groupBox5.Name = "groupBox5"; - this.groupBox5.Size = new System.Drawing.Size(806, 221); + this.groupBox5.Size = new System.Drawing.Size(832, 221); this.groupBox5.TabIndex = 0; this.groupBox5.TabStop = false; this.groupBox5.Text = "数据包历史记录"; @@ -808,7 +817,7 @@ this.log_lvw_httpLog.FullRowSelect = true; this.log_lvw_httpLog.Location = new System.Drawing.Point(3, 17); this.log_lvw_httpLog.Name = "log_lvw_httpLog"; - this.log_lvw_httpLog.Size = new System.Drawing.Size(800, 201); + this.log_lvw_httpLog.Size = new System.Drawing.Size(826, 201); this.log_lvw_httpLog.TabIndex = 1; this.log_lvw_httpLog.UseCompatibleStateImageBehavior = false; this.log_lvw_httpLog.View = System.Windows.Forms.View.Details; @@ -866,7 +875,7 @@ this.groupBox6.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox6.Location = new System.Drawing.Point(0, 0); this.groupBox6.Name = "groupBox6"; - this.groupBox6.Size = new System.Drawing.Size(806, 215); + this.groupBox6.Size = new System.Drawing.Size(832, 215); this.groupBox6.TabIndex = 1; this.groupBox6.TabStop = false; this.groupBox6.Text = "数据包详情"; @@ -880,7 +889,7 @@ this.tabControl2.Location = new System.Drawing.Point(3, 17); this.tabControl2.Name = "tabControl2"; this.tabControl2.SelectedIndex = 0; - this.tabControl2.Size = new System.Drawing.Size(800, 195); + this.tabControl2.Size = new System.Drawing.Size(826, 195); this.tabControl2.TabIndex = 0; // // tabPage3 @@ -889,7 +898,7 @@ this.tabPage3.Location = new System.Drawing.Point(4, 22); this.tabPage3.Name = "tabPage3"; this.tabPage3.Padding = new System.Windows.Forms.Padding(3); - this.tabPage3.Size = new System.Drawing.Size(792, 169); + this.tabPage3.Size = new System.Drawing.Size(818, 169); this.tabPage3.TabIndex = 0; this.tabPage3.Text = "请 求"; this.tabPage3.UseVisualStyleBackColor = true; @@ -901,7 +910,7 @@ this.log_txt_request.Multiline = true; this.log_txt_request.Name = "log_txt_request"; this.log_txt_request.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.log_txt_request.Size = new System.Drawing.Size(786, 163); + this.log_txt_request.Size = new System.Drawing.Size(812, 163); this.log_txt_request.TabIndex = 0; // // tabPage4 @@ -952,7 +961,7 @@ this.tab_file.ImageKey = "editFile.png"; this.tab_file.Location = new System.Drawing.Point(4, 23); this.tab_file.Name = "tab_file"; - this.tab_file.Size = new System.Drawing.Size(806, 440); + this.tab_file.Size = new System.Drawing.Size(832, 440); this.tab_file.TabIndex = 4; this.tab_file.Text = "文件操作"; this.tab_file.UseVisualStyleBackColor = true; @@ -965,7 +974,7 @@ this.file_txt_result.Multiline = true; this.file_txt_result.Name = "file_txt_result"; this.file_txt_result.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.file_txt_result.Size = new System.Drawing.Size(806, 373); + this.file_txt_result.Size = new System.Drawing.Size(832, 373); this.file_txt_result.TabIndex = 0; this.file_txt_result.TextChanged += new System.EventHandler(this.file_txt_result_TextChanged); this.file_txt_result.KeyDown += new System.Windows.Forms.KeyEventHandler(this.file_txt_result_KeyDown); @@ -981,7 +990,7 @@ this.groupBox7.Dock = System.Windows.Forms.DockStyle.Top; this.groupBox7.Location = new System.Drawing.Point(0, 0); this.groupBox7.Name = "groupBox7"; - this.groupBox7.Size = new System.Drawing.Size(806, 67); + this.groupBox7.Size = new System.Drawing.Size(832, 67); this.groupBox7.TabIndex = 0; this.groupBox7.TabStop = false; this.groupBox7.Text = "文件操作"; @@ -1060,7 +1069,7 @@ this.tab_dataCenter.Location = new System.Drawing.Point(4, 23); this.tab_dataCenter.Name = "tab_dataCenter"; this.tab_dataCenter.Padding = new System.Windows.Forms.Padding(3); - this.tab_dataCenter.Size = new System.Drawing.Size(806, 440); + this.tab_dataCenter.Size = new System.Drawing.Size(832, 440); this.tab_dataCenter.TabIndex = 1; this.tab_dataCenter.Text = "数据中心"; this.tab_dataCenter.UseVisualStyleBackColor = true; @@ -1074,7 +1083,7 @@ this.tabC_dataCenter.Location = new System.Drawing.Point(3, 3); this.tabC_dataCenter.Name = "tabC_dataCenter"; this.tabC_dataCenter.SelectedIndex = 0; - this.tabC_dataCenter.Size = new System.Drawing.Size(800, 434); + this.tabC_dataCenter.Size = new System.Drawing.Size(826, 434); this.tabC_dataCenter.TabIndex = 2; // // tab_vers @@ -1083,7 +1092,7 @@ this.tab_vers.Location = new System.Drawing.Point(4, 23); this.tab_vers.Name = "tab_vers"; this.tab_vers.Padding = new System.Windows.Forms.Padding(3); - this.tab_vers.Size = new System.Drawing.Size(792, 407); + this.tab_vers.Size = new System.Drawing.Size(818, 407); this.tab_vers.TabIndex = 0; this.tab_vers.Text = "环境变量"; this.tab_vers.UseVisualStyleBackColor = true; @@ -1098,7 +1107,7 @@ this.data_lvw_ver.FullRowSelect = true; this.data_lvw_ver.Location = new System.Drawing.Point(3, 3); this.data_lvw_ver.Name = "data_lvw_ver"; - this.data_lvw_ver.Size = new System.Drawing.Size(786, 401); + this.data_lvw_ver.Size = new System.Drawing.Size(812, 401); this.data_lvw_ver.TabIndex = 0; this.data_lvw_ver.UseCompatibleStateImageBehavior = false; this.data_lvw_ver.View = System.Windows.Forms.View.Details; @@ -1495,7 +1504,7 @@ this.tab_injectCenter.Location = new System.Drawing.Point(4, 23); this.tab_injectCenter.Name = "tab_injectCenter"; this.tab_injectCenter.Padding = new System.Windows.Forms.Padding(3); - this.tab_injectCenter.Size = new System.Drawing.Size(806, 440); + this.tab_injectCenter.Size = new System.Drawing.Size(832, 440); this.tab_injectCenter.TabIndex = 0; this.tab_injectCenter.Text = "注入中心"; this.tab_injectCenter.UseVisualStyleBackColor = true; @@ -1507,7 +1516,7 @@ this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox1.Location = new System.Drawing.Point(3, 3); this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(800, 434); + this.groupBox1.Size = new System.Drawing.Size(826, 434); this.groupBox1.TabIndex = 1; this.groupBox1.TabStop = false; // @@ -1518,10 +1527,11 @@ | System.Windows.Forms.AnchorStyles.Right))); this.tabControl1.Controls.Add(this.tab_datapack); this.tabControl1.Controls.Add(this.tab_tokenset); + this.tabControl1.Controls.Add(this.tab_sencond_inject); this.tabControl1.Location = new System.Drawing.Point(6, 13); this.tabControl1.Name = "tabControl1"; this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(564, 415); + this.tabControl1.Size = new System.Drawing.Size(565, 415); this.tabControl1.TabIndex = 14; // // tab_datapack @@ -1530,7 +1540,7 @@ this.tab_datapack.Location = new System.Drawing.Point(4, 22); this.tab_datapack.Name = "tab_datapack"; this.tab_datapack.Padding = new System.Windows.Forms.Padding(3); - this.tab_datapack.Size = new System.Drawing.Size(556, 389); + this.tab_datapack.Size = new System.Drawing.Size(557, 389); this.tab_datapack.TabIndex = 0; this.tab_datapack.Text = "HTTP请求数据包"; this.tab_datapack.UseVisualStyleBackColor = true; @@ -1544,7 +1554,7 @@ this.txt_inject_request.Multiline = true; this.txt_inject_request.Name = "txt_inject_request"; this.txt_inject_request.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txt_inject_request.Size = new System.Drawing.Size(550, 383); + this.txt_inject_request.Size = new System.Drawing.Size(551, 383); this.txt_inject_request.TabIndex = 13; this.txt_inject_request.Text = resources.GetString("txt_inject_request.Text"); this.txt_inject_request.TextChanged += new System.EventHandler(this.txt_inject_request_TextChanged); @@ -1624,6 +1634,7 @@ this.token_txt_http_request.Size = new System.Drawing.Size(544, 230); this.token_txt_http_request.TabIndex = 8; this.token_txt_http_request.TextChanged += new System.EventHandler(this.token_txt_http_request_TextChanged); + this.token_txt_http_request.KeyDown += new System.Windows.Forms.KeyEventHandler(this.token_txt_http_request_KeyDown); // // groupBox19 // @@ -1688,6 +1699,63 @@ this.token_btn_testGetToken.UseVisualStyleBackColor = true; this.token_btn_testGetToken.Click += new System.EventHandler(this.token_btn_testGetToken_Click); // + // tab_sencond_inject + // + this.tab_sencond_inject.Controls.Add(this.groupBox20); + this.tab_sencond_inject.Location = new System.Drawing.Point(4, 22); + this.tab_sencond_inject.Name = "tab_sencond_inject"; + this.tab_sencond_inject.Size = new System.Drawing.Size(556, 389); + this.tab_sencond_inject.TabIndex = 2; + this.tab_sencond_inject.Text = "二次注入"; + this.tab_sencond_inject.UseVisualStyleBackColor = true; + // + // groupBox20 + // + this.groupBox20.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox20.Controls.Add(this.groupBox21); + this.groupBox20.Controls.Add(this.txt_sencond_request); + this.groupBox20.Location = new System.Drawing.Point(0, 3); + this.groupBox20.Name = "groupBox20"; + this.groupBox20.Size = new System.Drawing.Size(556, 386); + this.groupBox20.TabIndex = 26; + this.groupBox20.TabStop = false; + this.groupBox20.Text = "二次注入请求包"; + // + // groupBox21 + // + this.groupBox21.Controls.Add(this.label28); + this.groupBox21.Location = new System.Drawing.Point(6, 306); + this.groupBox21.Name = "groupBox21"; + this.groupBox21.Size = new System.Drawing.Size(544, 74); + this.groupBox21.TabIndex = 10; + this.groupBox21.TabStop = false; + this.groupBox21.Text = "说明"; + // + // label28 + // + this.label28.AutoSize = true; + this.label28.Location = new System.Drawing.Point(22, 38); + this.label28.Name = "label28"; + this.label28.Size = new System.Drawing.Size(425, 12); + this.label28.TabIndex = 9; + this.label28.Text = "此处可以放二次注入时第二次请求获取注入结果的页面,用与对付一些二次注入"; + // + // txt_sencond_request + // + this.txt_sencond_request.AcceptsReturn = true; + this.txt_sencond_request.Dock = System.Windows.Forms.DockStyle.Top; + this.txt_sencond_request.Location = new System.Drawing.Point(3, 17); + this.txt_sencond_request.MaxLength = 65535; + this.txt_sencond_request.Multiline = true; + this.txt_sencond_request.Name = "txt_sencond_request"; + this.txt_sencond_request.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txt_sencond_request.Size = new System.Drawing.Size(550, 283); + this.txt_sencond_request.TabIndex = 8; + this.txt_sencond_request.TextChanged += new System.EventHandler(this.txt_sencond_request_TextChanged); + this.txt_sencond_request.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txt_sencond_request_KeyDown); + // // groupBox3 // this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -1702,11 +1770,12 @@ this.groupBox3.Controls.Add(this.label12); this.groupBox3.Controls.Add(this.btn_inject_randStr); this.groupBox3.Controls.Add(this.btn_inject_setTokenLocation); + this.groupBox3.Controls.Add(this.chk_sencondInject); this.groupBox3.Controls.Add(this.chk_inject_foward_302); this.groupBox3.Controls.Add(this.btn_inject_setInject); - this.groupBox3.Location = new System.Drawing.Point(573, 13); + this.groupBox3.Location = new System.Drawing.Point(577, 13); this.groupBox3.Name = "groupBox3"; - this.groupBox3.Size = new System.Drawing.Size(225, 415); + this.groupBox3.Size = new System.Drawing.Size(247, 415); this.groupBox3.TabIndex = 12; this.groupBox3.TabStop = false; this.groupBox3.Text = "注入设置"; @@ -1721,7 +1790,7 @@ this.groupBox16.Controls.Add(this.txt_inject_unionColumnsCount); this.groupBox16.Location = new System.Drawing.Point(1, 157); this.groupBox16.Name = "groupBox16"; - this.groupBox16.Size = new System.Drawing.Size(228, 94); + this.groupBox16.Size = new System.Drawing.Size(250, 94); this.groupBox16.TabIndex = 14; this.groupBox16.TabStop = false; this.groupBox16.Text = "Union注入取数据配置"; @@ -1729,7 +1798,7 @@ // label4 // this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(15, 26); + this.label4.Location = new System.Drawing.Point(10, 26); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(65, 12); this.label4.TabIndex = 1; @@ -1737,10 +1806,10 @@ // // txt_inject_showColumn // - this.txt_inject_showColumn.Location = new System.Drawing.Point(86, 59); + this.txt_inject_showColumn.Location = new System.Drawing.Point(78, 59); this.txt_inject_showColumn.MaxLength = 3; this.txt_inject_showColumn.Name = "txt_inject_showColumn"; - this.txt_inject_showColumn.Size = new System.Drawing.Size(120, 21); + this.txt_inject_showColumn.Size = new System.Drawing.Size(159, 21); this.txt_inject_showColumn.TabIndex = 9; this.txt_inject_showColumn.Text = "2"; this.txt_inject_showColumn.TextChanged += new System.EventHandler(this.txt_inject_showColumn_TextChanged); @@ -1748,7 +1817,7 @@ // label8 // this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(15, 62); + this.label8.Location = new System.Drawing.Point(10, 62); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(65, 12); this.label8.TabIndex = 8; @@ -1756,14 +1825,34 @@ // // txt_inject_unionColumnsCount // - this.txt_inject_unionColumnsCount.Location = new System.Drawing.Point(86, 23); + this.txt_inject_unionColumnsCount.Location = new System.Drawing.Point(78, 23); this.txt_inject_unionColumnsCount.MaxLength = 3; this.txt_inject_unionColumnsCount.Name = "txt_inject_unionColumnsCount"; - this.txt_inject_unionColumnsCount.Size = new System.Drawing.Size(120, 21); + this.txt_inject_unionColumnsCount.Size = new System.Drawing.Size(159, 21); this.txt_inject_unionColumnsCount.TabIndex = 7; this.txt_inject_unionColumnsCount.Text = "3"; this.txt_inject_unionColumnsCount.TextChanged += new System.EventHandler(this.txt_inject_unionColumnsCount_TextChanged); // + // btn_inject_sendData + // + this.btn_inject_sendData.Location = new System.Drawing.Point(13, 122); + this.btn_inject_sendData.Name = "btn_inject_sendData"; + this.btn_inject_sendData.Size = new System.Drawing.Size(100, 23); + this.btn_inject_sendData.TabIndex = 14; + this.btn_inject_sendData.Text = "发送数据"; + this.btn_inject_sendData.UseVisualStyleBackColor = true; + this.btn_inject_sendData.Click += new System.EventHandler(this.btn_inject_sendData_Click); + // + // btn_inject_clearRequest + // + this.btn_inject_clearRequest.Location = new System.Drawing.Point(138, 122); + this.btn_inject_clearRequest.Name = "btn_inject_clearRequest"; + this.btn_inject_clearRequest.Size = new System.Drawing.Size(100, 23); + this.btn_inject_clearRequest.TabIndex = 10; + this.btn_inject_clearRequest.Text = "获取数据"; + this.btn_inject_clearRequest.UseVisualStyleBackColor = true; + this.btn_inject_clearRequest.Click += new System.EventHandler(this.btn_inject_clearRequest_Click); + // // groupBox15 // this.groupBox15.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -1778,7 +1867,7 @@ this.groupBox15.Controls.Add(this.chk_inject_reverseKey); this.groupBox15.Location = new System.Drawing.Point(0, 257); this.groupBox15.Name = "groupBox15"; - this.groupBox15.Size = new System.Drawing.Size(227, 158); + this.groupBox15.Size = new System.Drawing.Size(249, 158); this.groupBox15.TabIndex = 14; this.groupBox15.TabStop = false; this.groupBox15.Text = "Bool盲注取数据配置"; @@ -1789,19 +1878,22 @@ this.cbox_inject_type.FormattingEnabled = true; this.cbox_inject_type.Items.AddRange(new object[] { "关键字判断-Bool", + "正则匹配判断-Bool", "状态码判断-Bool", - "响应长度判断-Bool", - "时间判断-延时"}); - this.cbox_inject_type.Location = new System.Drawing.Point(83, 25); + "时间判断-延时Bool", + "响应长度等于-Bool", + "响应长度大于-Bool", + "响应长度小于-Bool"}); + this.cbox_inject_type.Location = new System.Drawing.Point(79, 25); this.cbox_inject_type.Name = "cbox_inject_type"; - this.cbox_inject_type.Size = new System.Drawing.Size(123, 20); + this.cbox_inject_type.Size = new System.Drawing.Size(159, 20); this.cbox_inject_type.TabIndex = 27; this.cbox_inject_type.SelectedIndexChanged += new System.EventHandler(this.cbox_inject_type_SelectedIndexChanged); // // label29 // this.label29.AutoSize = true; - this.label29.Location = new System.Drawing.Point(15, 93); + this.label29.Location = new System.Drawing.Point(10, 93); this.label29.Name = "label29"; this.label29.Size = new System.Drawing.Size(65, 12); this.label29.TabIndex = 26; @@ -1810,7 +1902,7 @@ // label27 // this.label27.AutoSize = true; - this.label27.Location = new System.Drawing.Point(15, 28); + this.label27.Location = new System.Drawing.Point(9, 28); this.label27.Name = "label27"; this.label27.Size = new System.Drawing.Size(65, 12); this.label27.TabIndex = 26; @@ -1818,9 +1910,9 @@ // // inject_btn_autoFindKey // - this.inject_btn_autoFindKey.Location = new System.Drawing.Point(17, 125); + this.inject_btn_autoFindKey.Location = new System.Drawing.Point(11, 125); this.inject_btn_autoFindKey.Name = "inject_btn_autoFindKey"; - this.inject_btn_autoFindKey.Size = new System.Drawing.Size(75, 23); + this.inject_btn_autoFindKey.Size = new System.Drawing.Size(100, 23); this.inject_btn_autoFindKey.TabIndex = 24; this.inject_btn_autoFindKey.Text = "查找关键字"; this.inject_btn_autoFindKey.UseVisualStyleBackColor = true; @@ -1828,9 +1920,9 @@ // // injectConfig_btn_checkKey // - this.injectConfig_btn_checkKey.Location = new System.Drawing.Point(133, 125); + this.injectConfig_btn_checkKey.Location = new System.Drawing.Point(138, 125); this.injectConfig_btn_checkKey.Name = "injectConfig_btn_checkKey"; - this.injectConfig_btn_checkKey.Size = new System.Drawing.Size(75, 23); + this.injectConfig_btn_checkKey.Size = new System.Drawing.Size(100, 23); this.injectConfig_btn_checkKey.TabIndex = 23; this.injectConfig_btn_checkKey.Text = "验证关键字是否设置正确"; this.injectConfig_btn_checkKey.UseVisualStyleBackColor = true; @@ -1838,10 +1930,10 @@ // // txt_inject_key // - this.txt_inject_key.Location = new System.Drawing.Point(83, 90); - this.txt_inject_key.MaxLength = 20; + this.txt_inject_key.Location = new System.Drawing.Point(79, 90); + this.txt_inject_key.MaxLength = 50; this.txt_inject_key.Name = "txt_inject_key"; - this.txt_inject_key.Size = new System.Drawing.Size(123, 21); + this.txt_inject_key.Size = new System.Drawing.Size(159, 21); this.txt_inject_key.TabIndex = 7; this.txt_inject_key.Text = "个"; this.txt_inject_key.TextChanged += new System.EventHandler(this.txt_inject_key_TextChanged); @@ -1849,7 +1941,7 @@ // chk_inject_reverseKey // this.chk_inject_reverseKey.AutoSize = true; - this.chk_inject_reverseKey.Location = new System.Drawing.Point(17, 61); + this.chk_inject_reverseKey.Location = new System.Drawing.Point(13, 60); this.chk_inject_reverseKey.Name = "chk_inject_reverseKey"; this.chk_inject_reverseKey.Size = new System.Drawing.Size(192, 16); this.chk_inject_reverseKey.TabIndex = 22; @@ -1862,19 +1954,19 @@ this.chk_openURLEncoding.AutoSize = true; this.chk_openURLEncoding.Checked = true; this.chk_openURLEncoding.CheckState = System.Windows.Forms.CheckState.Checked; - this.chk_openURLEncoding.Location = new System.Drawing.Point(17, 22); + this.chk_openURLEncoding.Location = new System.Drawing.Point(12, 22); this.chk_openURLEncoding.Name = "chk_openURLEncoding"; - this.chk_openURLEncoding.Size = new System.Drawing.Size(90, 16); + this.chk_openURLEncoding.Size = new System.Drawing.Size(66, 16); this.chk_openURLEncoding.TabIndex = 21; - this.chk_openURLEncoding.Text = "开启URL编码"; + this.chk_openURLEncoding.Text = "URL编码"; this.chk_openURLEncoding.UseVisualStyleBackColor = true; this.chk_openURLEncoding.CheckedChanged += new System.EventHandler(this.chk_openURLEncoding_CheckedChanged); // // btn_inject_setEncodingRange // - this.btn_inject_setEncodingRange.Location = new System.Drawing.Point(131, 51); + this.btn_inject_setEncodingRange.Location = new System.Drawing.Point(138, 51); this.btn_inject_setEncodingRange.Name = "btn_inject_setEncodingRange"; - this.btn_inject_setEncodingRange.Size = new System.Drawing.Size(75, 23); + this.btn_inject_setEncodingRange.Size = new System.Drawing.Size(100, 23); this.btn_inject_setEncodingRange.TabIndex = 19; this.btn_inject_setEncodingRange.Text = "编码标记"; this.btn_inject_setEncodingRange.UseVisualStyleBackColor = true; @@ -1896,40 +1988,30 @@ this.label12.Size = new System.Drawing.Size(0, 12); this.label12.TabIndex = 17; // + // btn_inject_randStr + // + this.btn_inject_randStr.Location = new System.Drawing.Point(138, 87); + this.btn_inject_randStr.Name = "btn_inject_randStr"; + this.btn_inject_randStr.Size = new System.Drawing.Size(100, 23); + this.btn_inject_randStr.TabIndex = 10; + this.btn_inject_randStr.Text = "Rand随机值"; + this.btn_inject_randStr.UseVisualStyleBackColor = true; + this.btn_inject_randStr.Click += new System.EventHandler(this.btn_inject_randStr_Click); + // // btn_inject_setTokenLocation // - this.btn_inject_setTokenLocation.Location = new System.Drawing.Point(17, 87); + this.btn_inject_setTokenLocation.Location = new System.Drawing.Point(12, 87); this.btn_inject_setTokenLocation.Name = "btn_inject_setTokenLocation"; - this.btn_inject_setTokenLocation.Size = new System.Drawing.Size(75, 23); + this.btn_inject_setTokenLocation.Size = new System.Drawing.Size(100, 23); this.btn_inject_setTokenLocation.TabIndex = 10; this.btn_inject_setTokenLocation.Text = "标记Token"; this.btn_inject_setTokenLocation.UseVisualStyleBackColor = true; this.btn_inject_setTokenLocation.Click += new System.EventHandler(this.btn_inject_setTokenLocation_Click); // - // btn_inject_clearRequest - // - this.btn_inject_clearRequest.Location = new System.Drawing.Point(131, 124); - this.btn_inject_clearRequest.Name = "btn_inject_clearRequest"; - this.btn_inject_clearRequest.Size = new System.Drawing.Size(75, 23); - this.btn_inject_clearRequest.TabIndex = 10; - this.btn_inject_clearRequest.Text = "获取数据"; - this.btn_inject_clearRequest.UseVisualStyleBackColor = true; - this.btn_inject_clearRequest.Click += new System.EventHandler(this.btn_inject_clearRequest_Click); - // - // btn_inject_sendData - // - this.btn_inject_sendData.Location = new System.Drawing.Point(17, 124); - this.btn_inject_sendData.Name = "btn_inject_sendData"; - this.btn_inject_sendData.Size = new System.Drawing.Size(75, 23); - this.btn_inject_sendData.TabIndex = 14; - this.btn_inject_sendData.Text = "发送数据"; - this.btn_inject_sendData.UseVisualStyleBackColor = true; - this.btn_inject_sendData.Click += new System.EventHandler(this.btn_inject_sendData_Click); - // // chk_inject_foward_302 // this.chk_inject_foward_302.AutoSize = true; - this.chk_inject_foward_302.Location = new System.Drawing.Point(133, 22); + this.chk_inject_foward_302.Location = new System.Drawing.Point(90, 22); this.chk_inject_foward_302.Name = "chk_inject_foward_302"; this.chk_inject_foward_302.Size = new System.Drawing.Size(66, 16); this.chk_inject_foward_302.TabIndex = 16; @@ -1939,9 +2021,9 @@ // // btn_inject_setInject // - this.btn_inject_setInject.Location = new System.Drawing.Point(17, 51); + this.btn_inject_setInject.Location = new System.Drawing.Point(12, 51); this.btn_inject_setInject.Name = "btn_inject_setInject"; - this.btn_inject_setInject.Size = new System.Drawing.Size(75, 23); + this.btn_inject_setInject.Size = new System.Drawing.Size(100, 23); this.btn_inject_setInject.TabIndex = 13; this.btn_inject_setInject.Text = "注入标记"; this.btn_inject_setInject.UseVisualStyleBackColor = true; @@ -1964,7 +2046,7 @@ this.mytab.Location = new System.Drawing.Point(9, 120); this.mytab.Name = "mytab"; this.mytab.SelectedIndex = 0; - this.mytab.Size = new System.Drawing.Size(814, 467); + this.mytab.Size = new System.Drawing.Size(840, 467); this.mytab.TabIndex = 1; // // tab_cmd @@ -1974,7 +2056,7 @@ this.tab_cmd.ImageKey = "cmd.png"; this.tab_cmd.Location = new System.Drawing.Point(4, 23); this.tab_cmd.Name = "tab_cmd"; - this.tab_cmd.Size = new System.Drawing.Size(806, 440); + this.tab_cmd.Size = new System.Drawing.Size(832, 440); this.tab_cmd.TabIndex = 6; this.tab_cmd.Text = "命令执行"; this.tab_cmd.UseVisualStyleBackColor = true; @@ -1987,7 +2069,7 @@ this.cmd_txt_result.Multiline = true; this.cmd_txt_result.Name = "cmd_txt_result"; this.cmd_txt_result.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.cmd_txt_result.Size = new System.Drawing.Size(806, 364); + this.cmd_txt_result.Size = new System.Drawing.Size(832, 364); this.cmd_txt_result.TabIndex = 2; this.cmd_txt_result.TextChanged += new System.EventHandler(this.cmd_txt_result_TextChanged); this.cmd_txt_result.KeyDown += new System.Windows.Forms.KeyEventHandler(this.cmd_txt_result_KeyDown); @@ -2001,7 +2083,7 @@ this.groupBox8.Dock = System.Windows.Forms.DockStyle.Top; this.groupBox8.Location = new System.Drawing.Point(0, 0); this.groupBox8.Name = "groupBox8"; - this.groupBox8.Size = new System.Drawing.Size(806, 76); + this.groupBox8.Size = new System.Drawing.Size(832, 76); this.groupBox8.TabIndex = 1; this.groupBox8.TabStop = false; this.groupBox8.Text = "命令执行"; @@ -2052,7 +2134,7 @@ this.tab_bypass.ImageKey = "codeChange.png"; this.tab_bypass.Location = new System.Drawing.Point(4, 23); this.tab_bypass.Name = "tab_bypass"; - this.tab_bypass.Size = new System.Drawing.Size(806, 440); + this.tab_bypass.Size = new System.Drawing.Size(832, 440); this.tab_bypass.TabIndex = 7; this.tab_bypass.Text = "注入绕过"; this.tab_bypass.UseVisualStyleBackColor = true; @@ -2065,12 +2147,12 @@ this.groupBox9.Controls.Add(this.chk_reaplaceBeforURLEncode); this.groupBox9.Controls.Add(this.cob_keyRepalce); this.groupBox9.Controls.Add(this.label10); - this.groupBox9.Controls.Add(this.bypass_chk_base64); this.groupBox9.Controls.Add(this.bypass_cbox_randIPToHeader); this.groupBox9.Controls.Add(this.label18); this.groupBox9.Controls.Add(this.label17); this.groupBox9.Controls.Add(this.bypass_cbox_sendHTTPSleepTime); this.groupBox9.Controls.Add(this.bypass_chk_usebetween); + this.groupBox9.Controls.Add(this.bypass_hex); this.groupBox9.Controls.Add(this.bypass_chk_inculdeStr); this.groupBox9.Controls.Add(this.label16); this.groupBox9.Controls.Add(this.bypass_txt_replaceTo); @@ -2081,7 +2163,7 @@ this.groupBox9.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox9.Location = new System.Drawing.Point(0, 0); this.groupBox9.Name = "groupBox9"; - this.groupBox9.Size = new System.Drawing.Size(806, 440); + this.groupBox9.Size = new System.Drawing.Size(832, 440); this.groupBox9.TabIndex = 1; this.groupBox9.TabStop = false; this.groupBox9.Text = "字符替换进行注入绕过"; @@ -2136,13 +2218,15 @@ this.cbox_base64Count.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cbox_base64Count.FormattingEnabled = true; this.cbox_base64Count.Items.AddRange(new object[] { - "一次", - "二次", - "三次"}); - this.cbox_base64Count.Location = new System.Drawing.Point(718, 23); + "选择Base64编码", + "Base64编码一次", + "Base64编码二次", + "Base64编码三次"}); + this.cbox_base64Count.Location = new System.Drawing.Point(671, 23); this.cbox_base64Count.Name = "cbox_base64Count"; - this.cbox_base64Count.Size = new System.Drawing.Size(75, 20); + this.cbox_base64Count.Size = new System.Drawing.Size(122, 20); this.cbox_base64Count.TabIndex = 22; + this.cbox_base64Count.SelectedIndexChanged += new System.EventHandler(this.cbox_base64Count_SelectedIndexChanged); this.cbox_base64Count.TextChanged += new System.EventHandler(this.cbox_base64Count_TextChanged); // // chk_reaplaceBeforURLEncode @@ -2165,32 +2249,21 @@ "随机大小写", "关键字大写", "关键字小写"}); - this.cob_keyRepalce.Location = new System.Drawing.Point(662, 58); + this.cob_keyRepalce.Location = new System.Drawing.Point(671, 58); this.cob_keyRepalce.Name = "cob_keyRepalce"; - this.cob_keyRepalce.Size = new System.Drawing.Size(131, 20); + this.cob_keyRepalce.Size = new System.Drawing.Size(122, 20); this.cob_keyRepalce.TabIndex = 17; this.cob_keyRepalce.SelectedIndexChanged += new System.EventHandler(this.cob_keyRepalce_SelectedIndexChanged); // // label10 // this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(591, 61); + this.label10.Location = new System.Drawing.Point(588, 61); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(65, 12); this.label10.TabIndex = 16; this.label10.Text = "关 键 字:"; // - // bypass_chk_base64 - // - this.bypass_chk_base64.AutoSize = true; - this.bypass_chk_base64.Location = new System.Drawing.Point(592, 25); - this.bypass_chk_base64.Name = "bypass_chk_base64"; - this.bypass_chk_base64.Size = new System.Drawing.Size(108, 16); - this.bypass_chk_base64.TabIndex = 15; - this.bypass_chk_base64.Text = "base64编码处理"; - this.bypass_chk_base64.UseVisualStyleBackColor = true; - this.bypass_chk_base64.CheckedChanged += new System.EventHandler(this.bypass_chk_base64_CheckedChanged); - // // bypass_cbox_randIPToHeader // this.bypass_cbox_randIPToHeader.FormattingEnabled = true; @@ -2199,16 +2272,16 @@ "X-Forwarded-For", "Remote-Addr", "Client_Ip"}); - this.bypass_cbox_randIPToHeader.Location = new System.Drawing.Point(662, 93); + this.bypass_cbox_randIPToHeader.Location = new System.Drawing.Point(671, 93); this.bypass_cbox_randIPToHeader.Name = "bypass_cbox_randIPToHeader"; - this.bypass_cbox_randIPToHeader.Size = new System.Drawing.Size(131, 20); + this.bypass_cbox_randIPToHeader.Size = new System.Drawing.Size(122, 20); this.bypass_cbox_randIPToHeader.TabIndex = 14; this.bypass_cbox_randIPToHeader.TextChanged += new System.EventHandler(this.bypass_cbox_randIPToHeader_TextChanged); // // label18 // this.label18.AutoSize = true; - this.label18.Location = new System.Drawing.Point(590, 96); + this.label18.Location = new System.Drawing.Point(588, 97); this.label18.Name = "label18"; this.label18.Size = new System.Drawing.Size(65, 12); this.label18.TabIndex = 13; @@ -2256,7 +2329,7 @@ // bypass_chk_usebetween // this.bypass_chk_usebetween.AutoSize = true; - this.bypass_chk_usebetween.Location = new System.Drawing.Point(422, 96); + this.bypass_chk_usebetween.Location = new System.Drawing.Point(426, 96); this.bypass_chk_usebetween.Name = "bypass_chk_usebetween"; this.bypass_chk_usebetween.Size = new System.Drawing.Size(138, 16); this.bypass_chk_usebetween.TabIndex = 3; @@ -2264,6 +2337,17 @@ this.bypass_chk_usebetween.UseVisualStyleBackColor = true; this.bypass_chk_usebetween.CheckedChanged += new System.EventHandler(this.bypass_chk_usebetween_CheckedChanged); // + // bypass_hex + // + this.bypass_hex.AutoSize = true; + this.bypass_hex.Location = new System.Drawing.Point(590, 27); + this.bypass_hex.Name = "bypass_hex"; + this.bypass_hex.Size = new System.Drawing.Size(66, 16); + this.bypass_hex.TabIndex = 3; + this.bypass_hex.Text = "Hex编码"; + this.bypass_hex.UseVisualStyleBackColor = true; + this.bypass_hex.CheckedChanged += new System.EventHandler(this.bypass_hex_CheckedChanged); + // // bypass_chk_inculdeStr // this.bypass_chk_inculdeStr.AutoSize = true; @@ -2368,7 +2452,7 @@ this.tab_encoding.ImageKey = "convert.png"; this.tab_encoding.Location = new System.Drawing.Point(4, 23); this.tab_encoding.Name = "tab_encoding"; - this.tab_encoding.Size = new System.Drawing.Size(806, 440); + this.tab_encoding.Size = new System.Drawing.Size(832, 440); this.tab_encoding.TabIndex = 5; this.tab_encoding.Text = "编码转换"; this.tab_encoding.UseVisualStyleBackColor = true; @@ -2382,7 +2466,7 @@ this.groupBox13.Dock = System.Windows.Forms.DockStyle.Bottom; this.groupBox13.Location = new System.Drawing.Point(0, 377); this.groupBox13.Name = "groupBox13"; - this.groupBox13.Size = new System.Drawing.Size(806, 63); + this.groupBox13.Size = new System.Drawing.Size(832, 63); this.groupBox13.TabIndex = 8; this.groupBox13.TabStop = false; this.groupBox13.Text = "操作:"; @@ -2455,7 +2539,7 @@ this.groupBox11.Controls.Add(this.encode_txt_result); this.groupBox11.Location = new System.Drawing.Point(0, 99); this.groupBox11.Name = "groupBox11"; - this.groupBox11.Size = new System.Drawing.Size(799, 256); + this.groupBox11.Size = new System.Drawing.Size(825, 256); this.groupBox11.TabIndex = 7; this.groupBox11.TabStop = false; this.groupBox11.Text = "结果:"; @@ -2468,7 +2552,7 @@ this.encode_txt_result.Multiline = true; this.encode_txt_result.Name = "encode_txt_result"; this.encode_txt_result.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.encode_txt_result.Size = new System.Drawing.Size(793, 236); + this.encode_txt_result.Size = new System.Drawing.Size(819, 236); this.encode_txt_result.TabIndex = 2; this.encode_txt_result.KeyDown += new System.Windows.Forms.KeyEventHandler(this.encode_txt_result_KeyDown); // @@ -2478,7 +2562,7 @@ this.groupBox10.Dock = System.Windows.Forms.DockStyle.Top; this.groupBox10.Location = new System.Drawing.Point(0, 0); this.groupBox10.Name = "groupBox10"; - this.groupBox10.Size = new System.Drawing.Size(806, 97); + this.groupBox10.Size = new System.Drawing.Size(832, 97); this.groupBox10.TabIndex = 6; this.groupBox10.TabStop = false; this.groupBox10.Text = "输入:"; @@ -2491,7 +2575,7 @@ this.encode_txt_input.Multiline = true; this.encode_txt_input.Name = "encode_txt_input"; this.encode_txt_input.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.encode_txt_input.Size = new System.Drawing.Size(800, 77); + this.encode_txt_input.Size = new System.Drawing.Size(826, 77); this.encode_txt_input.TabIndex = 1; this.encode_txt_input.TextChanged += new System.EventHandler(this.encode_txt_encode_TextChanged); this.encode_txt_input.KeyDown += new System.Windows.Forms.KeyEventHandler(this.encode_txt_input_KeyDown); @@ -2503,7 +2587,7 @@ this.tab_scanInjection.ImageKey = "scan.png"; this.tab_scanInjection.Location = new System.Drawing.Point(4, 23); this.tab_scanInjection.Name = "tab_scanInjection"; - this.tab_scanInjection.Size = new System.Drawing.Size(806, 440); + this.tab_scanInjection.Size = new System.Drawing.Size(832, 440); this.tab_scanInjection.TabIndex = 8; this.tab_scanInjection.Text = "注入扫描"; this.tab_scanInjection.UseVisualStyleBackColor = true; @@ -2514,7 +2598,7 @@ this.groupBox14.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox14.Location = new System.Drawing.Point(0, 95); this.groupBox14.Name = "groupBox14"; - this.groupBox14.Size = new System.Drawing.Size(806, 345); + this.groupBox14.Size = new System.Drawing.Size(832, 345); this.groupBox14.TabIndex = 21; this.groupBox14.TabStop = false; // @@ -2531,8 +2615,8 @@ // splitContainer2.Panel2 // this.splitContainer2.Panel2.Controls.Add(this.scanInjection_lvw_result); - this.splitContainer2.Size = new System.Drawing.Size(800, 325); - this.splitContainer2.SplitterDistance = 238; + this.splitContainer2.Size = new System.Drawing.Size(826, 325); + this.splitContainer2.SplitterDistance = 245; this.splitContainer2.TabIndex = 18; // // scanInject_lsb_links @@ -2544,7 +2628,7 @@ this.scanInject_lsb_links.Location = new System.Drawing.Point(0, 0); this.scanInject_lsb_links.Name = "scanInject_lsb_links"; this.scanInject_lsb_links.ScrollAlwaysVisible = true; - this.scanInject_lsb_links.Size = new System.Drawing.Size(238, 325); + this.scanInject_lsb_links.Size = new System.Drawing.Size(245, 325); this.scanInject_lsb_links.TabIndex = 0; // // scanInjectionURL_cms @@ -2585,7 +2669,7 @@ this.scanInjection_lvw_result.GridLines = true; this.scanInjection_lvw_result.Location = new System.Drawing.Point(0, 0); this.scanInjection_lvw_result.Name = "scanInjection_lvw_result"; - this.scanInjection_lvw_result.Size = new System.Drawing.Size(558, 325); + this.scanInjection_lvw_result.Size = new System.Drawing.Size(577, 325); this.scanInjection_lvw_result.TabIndex = 5; this.scanInjection_lvw_result.UseCompatibleStateImageBehavior = false; this.scanInjection_lvw_result.View = System.Windows.Forms.View.Details; @@ -2715,7 +2799,7 @@ this.groupBox12.Dock = System.Windows.Forms.DockStyle.Top; this.groupBox12.Location = new System.Drawing.Point(0, 0); this.groupBox12.Name = "groupBox12"; - this.groupBox12.Size = new System.Drawing.Size(806, 95); + this.groupBox12.Size = new System.Drawing.Size(832, 95); this.groupBox12.TabIndex = 21; this.groupBox12.TabStop = false; this.groupBox12.Text = " "; @@ -2882,7 +2966,7 @@ this.lbl_packsCount}); this.statusStrip1.Location = new System.Drawing.Point(0, 681); this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(834, 22); + this.statusStrip1.Size = new System.Drawing.Size(860, 22); this.statusStrip1.TabIndex = 4; this.statusStrip1.Text = "statusStrip1"; // @@ -2999,21 +3083,22 @@ this.timer_scanInjection.Interval = 1000; this.timer_scanInjection.Tick += new System.EventHandler(this.timer_scanInjection_Tick); // - // btn_inject_randStr + // chk_sencondInject // - this.btn_inject_randStr.Location = new System.Drawing.Point(131, 87); - this.btn_inject_randStr.Name = "btn_inject_randStr"; - this.btn_inject_randStr.Size = new System.Drawing.Size(75, 23); - this.btn_inject_randStr.TabIndex = 10; - this.btn_inject_randStr.Text = "Rand随机值"; - this.btn_inject_randStr.UseVisualStyleBackColor = true; - this.btn_inject_randStr.Click += new System.EventHandler(this.btn_inject_randStr_Click); + this.chk_sencondInject.AutoSize = true; + this.chk_sencondInject.Location = new System.Drawing.Point(166, 22); + this.chk_sencondInject.Name = "chk_sencondInject"; + this.chk_sencondInject.Size = new System.Drawing.Size(72, 16); + this.chk_sencondInject.TabIndex = 16; + this.chk_sencondInject.Text = "二次注入"; + this.chk_sencondInject.UseVisualStyleBackColor = true; + this.chk_sencondInject.CheckedChanged += new System.EventHandler(this.chk_sencondInject_CheckedChanged); // // Main // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(834, 703); + this.ClientSize = new System.Drawing.Size(860, 703); this.Controls.Add(this.statusStrip1); this.Controls.Add(this.gb_logo); this.Controls.Add(this.mytab); @@ -3079,6 +3164,11 @@ this.groupBox17.PerformLayout(); this.groupBox19.ResumeLayout(false); this.groupBox19.PerformLayout(); + this.tab_sencond_inject.ResumeLayout(false); + this.groupBox20.ResumeLayout(false); + this.groupBox20.PerformLayout(); + this.groupBox21.ResumeLayout(false); + this.groupBox21.PerformLayout(); this.groupBox3.ResumeLayout(false); this.groupBox3.PerformLayout(); this.groupBox16.ResumeLayout(false); @@ -3336,7 +3426,6 @@ private System.Windows.Forms.GroupBox groupBox9; private System.Windows.Forms.ComboBox cob_keyRepalce; private System.Windows.Forms.Label label10; - private System.Windows.Forms.CheckBox bypass_chk_base64; private System.Windows.Forms.ComboBox bypass_cbox_randIPToHeader; private System.Windows.Forms.Label label18; private System.Windows.Forms.Label label17; @@ -3379,6 +3468,13 @@ private System.Windows.Forms.TextBox token_txt_http_request; private System.Windows.Forms.Button btn_inject_setTokenLocation; private System.Windows.Forms.Button btn_inject_randStr; + private System.Windows.Forms.TabPage tab_sencond_inject; + private System.Windows.Forms.GroupBox groupBox20; + private System.Windows.Forms.TextBox txt_sencond_request; + private System.Windows.Forms.CheckBox bypass_hex; + private System.Windows.Forms.Label label28; + private System.Windows.Forms.GroupBox groupBox21; + private System.Windows.Forms.CheckBox chk_sencondInject; } } diff --git a/SuperSQLInjection/Main.cs b/SuperSQLInjection/Main.cs index 6a0d352..dc74a49 100644 --- a/SuperSQLInjection/Main.cs +++ b/SuperSQLInjection/Main.cs @@ -97,7 +97,6 @@ namespace SuperSQLInjection private void btn_inject_sendData_Click(object sender, EventArgs e) { - if (checkSendDataConfig()) { Thread t = new Thread(sendRequestAndShowResponseInvoke); @@ -117,6 +116,7 @@ namespace SuperSQLInjection this.file_cbox_readWrite.SelectedIndex = 0; this.bypass_cbox_sendHTTPSleepTime.SelectedIndex = 0; this.cbox_bypass_urlencode_count.SelectedIndex = 0; + this.cbox_base64Count.SelectedIndex = 0; HTTP.main = this; //清空日志 @@ -169,7 +169,7 @@ namespace SuperSQLInjection responseStream.Close(); } - public static int version = 20180809; + public static int version = 20180827; public static String versionURL = "http://www.shack2.org/soft/SSuperSQLInjection/version.txt"; //检查更新 public void checkUpdate() @@ -4567,6 +4567,8 @@ namespace SuperSQLInjection MessageBox.Show("自动识别网页编码为:“"+oserver.encoding+"”"); } } + //判断是否有编码设置 + //拆分参数 @@ -5374,7 +5376,7 @@ namespace SuperSQLInjection this.txt_basic_port.Text = config.port + ""; this.cbox_basic_timeOut.Text = config.timeOut + ""; this.cbox_basic_encoding.Text = config.encoding; - + this.chk_sencondInject.Checked=config.sencondInject; switch (config.injectType) { @@ -5428,16 +5430,26 @@ namespace SuperSQLInjection case KeyType.Key: this.cbox_inject_type.SelectedIndex = 0; break; - case KeyType.Code: + case KeyType.Reg: this.cbox_inject_type.SelectedIndex = 1; break; - case KeyType.Length: + case KeyType.Code: this.cbox_inject_type.SelectedIndex = 2; break; case KeyType.Time: this.cbox_inject_type.SelectedIndex = 3; config.maxTime = Tools.convertToInt(config.key); break; + case KeyType.EQLen: + this.cbox_inject_type.SelectedIndex = 4; + break; + case KeyType.MinLen: + this.cbox_inject_type.SelectedIndex = 5; + break; + case KeyType.MaxLen: + this.cbox_inject_type.SelectedIndex = 6; + break; + } this.chk_openURLEncoding.Checked = config.isOpenURLEncoding; @@ -5452,7 +5464,10 @@ namespace SuperSQLInjection this.token_txt_startStr.Text = config.token_startStr; this.token_txt_endStr.Text = config.token_endStr; - + + //二次注入 + this.txt_sencond_request.Text = config.sencondRequest; + //file @@ -5463,10 +5478,10 @@ namespace SuperSQLInjection //bypass this.bypass_chk_inculdeStr.Checked = config.inculdeStr; this.cob_keyRepalce.SelectedIndex = config.keyReplace; - this.bypass_chk_base64.Checked = config.base64; - this.cbox_base64Count.SelectedIndex = config.base64Count-1; + this.cbox_base64Count.SelectedIndex = config.base64Count; this.cbox_bypass_urlencode_count.SelectedIndex = config.urlencodeCount - 1; this.bypass_chk_usebetween.Checked = config.useBetweenByPass; + this.bypass_hex.Checked = config.usehex; //替换字符 this.chk_reaplaceBeforURLEncode.Checked = config.reaplaceBeforURLEncode; @@ -5521,15 +5536,18 @@ namespace SuperSQLInjection ((TextBox)sender).SelectAll(); } } + public void selectAll(object sender, KeyEventArgs e) { - private void txt_inject_request_KeyDown(object sender, KeyEventArgs e) - { - showFindString(sender, e, this.txt_inject_request); if (e.Modifiers == Keys.Control && e.KeyCode == Keys.A) { ((TextBox)sender).SelectAll(); } } + private void txt_inject_request_KeyDown(object sender, KeyEventArgs e) + { + showFindString(sender, e, this.txt_inject_request); + selectAll(sender,e); + } private void data_dbs_lvw_tsmi_copyLineData_Click(object sender, EventArgs e) { @@ -6267,7 +6285,22 @@ namespace SuperSQLInjection bool truep = findKeyInBody(Comm.truePayload); bool falsep = findKeyInBody(Comm.falsePayload); - if (truep == true && falsep == false) + + bool isok = false; + + if (!config.reverseKey) { + if (truep && !falsep) + { + isok = true; + } + } + else { + if ((!truep) && falsep) { + isok = true; + } + } + + if (isok) { MessageBox.Show("关键字设置正确!"); } @@ -7007,11 +7040,6 @@ namespace SuperSQLInjection } } - private void bypass_chk_base64_CheckedChanged(object sender, EventArgs e) - { - config.base64 = this.bypass_chk_base64.Checked; - } - private void data_dbs_tsmi_addDBS_Click(object sender, EventArgs e) { addNode(1); @@ -7328,14 +7356,24 @@ namespace SuperSQLInjection config.keyType = KeyType.Key; break; case 1: - config.keyType = KeyType.Code; + config.keyType = KeyType.Reg; break; + case 2: - config.keyType = KeyType.Length; + config.keyType = KeyType.Code; break; case 3: config.keyType = KeyType.Time; break; + case 4: + config.keyType = KeyType.EQLen; + break; + case 5: + config.keyType = KeyType.MaxLen; + break; + case 6: + config.keyType = KeyType.MinLen; + break; } } @@ -7426,8 +7464,8 @@ namespace SuperSQLInjection //bypass this.bypass_chk_inculdeStr.Checked = template.inculdeStr; + this.bypass_hex.Checked = config.usehex; this.cob_keyRepalce.SelectedIndex = template.keyReplace; - this.bypass_chk_base64.Checked = template.base64; this.cbox_base64Count.SelectedIndex = config.base64Count; this.bypass_chk_usebetween.Checked = config.useBetweenByPass; //替换字符 @@ -7552,5 +7590,35 @@ namespace SuperSQLInjection { this.txt_inject_request.SelectedText = "" + this.txt_inject_request.SelectedText + ""; } + + private void txt_sencond_request_TextChanged(object sender, EventArgs e) + { + config.sencondRequest = this.txt_sencond_request.Text; + } + + private void bypass_hex_CheckedChanged(object sender, EventArgs e) + { + config.usehex = this.bypass_hex.Checked; + } + + private void cbox_base64Count_SelectedIndexChanged(object sender, EventArgs e) + { + config.base64Count = this.cbox_base64Count.SelectedIndex; + } + + private void token_txt_http_request_KeyDown(object sender, KeyEventArgs e) + { + selectAll(sender, e); + } + + private void txt_sencond_request_KeyDown(object sender, KeyEventArgs e) + { + selectAll(sender, e); + } + + private void chk_sencondInject_CheckedChanged(object sender, EventArgs e) + { + config.sencondInject = this.chk_sencondInject.Checked; + } } } \ No newline at end of file diff --git a/SuperSQLInjection/Main.resx b/SuperSQLInjection/Main.resx index 6797de9..9a83ceb 100644 --- a/SuperSQLInjection/Main.resx +++ b/SuperSQLInjection/Main.resx @@ -123,6 +123,9 @@ 9, 6 + + 279, 9 + 531, 14 @@ -131,7 +134,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAC - EwAAAk1TRnQBSQFMAgEBCgEAAcABBgHAAQYBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + EwAAAk1TRnQBSQFMAgEBCgEAAegBBgHoAQYBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -215,9 +218,6 @@ BP8BwAEAAfwBPws= - - 279, 9 - 1218, 14 @@ -281,7 +281,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACq - DQAAAk1TRnQBSQFMAgEBBwEAAUABBgFAAQYBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + DQAAAk1TRnQBSQFMAgEBBwEAAWgBBgFoAQYBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -409,6 +409,6 @@ Cache-Control: no-cache,no-store 852, 52 - 99 + 86 \ No newline at end of file diff --git a/SuperSQLInjection/bypass/StringReplace.cs b/SuperSQLInjection/bypass/StringReplace.cs index 704fced..f22296a 100644 --- a/SuperSQLInjection/bypass/StringReplace.cs +++ b/SuperSQLInjection/bypass/StringReplace.cs @@ -68,9 +68,16 @@ namespace SuperSQLInjection.bypass str = toLowerOrUpperCase(str, splitstr, config.keyReplace); } //base64处理 - if (config.base64) { + if (config.base64Count>0) { str = base64Encoding(str,config.base64Count); } + + //hex处理 + if (config.usehex) + { + str = Tools.strToHex(str,"UTF-8"); + } + //替换request request = request.Replace("" + m.Value + "", str); } diff --git a/SuperSQLInjection/model/Config.cs b/SuperSQLInjection/model/Config.cs index 76c78f5..238b79f 100644 --- a/SuperSQLInjection/model/Config.cs +++ b/SuperSQLInjection/model/Config.cs @@ -21,10 +21,13 @@ namespace SuperSQLInjection.model public int reTry = 2; public String encoding = "UTF-8"; public String request = ""; + public String sencondRequest = ""; public String key = ""; public String db_encoding = ""; public Boolean useCode = false; public int columnsCount = 0; + + public Boolean sencondInject = false;//二次注入 public int showColumn = 0; public Boolean reverseKey = false;//反取关键字 public KeyType keyType = KeyType.Key;//判断类型,可以盲注以关键字或时间判断 @@ -60,9 +63,9 @@ namespace SuperSQLInjection.model public String randIPToHeader = ""; public int sendHTTPSleepTime = 0; public String replaceStrs="";//字符替换 - public Boolean base64 = false;//base64 public int base64Count = 0; public Boolean useBetweenByPass = false;//between绕过 + public Boolean usehex = false;//hex绕过 //scan public int level = 0; diff --git a/SuperSQLInjection/model/KeyType.cs b/SuperSQLInjection/model/KeyType.cs index 7484139..ccde562 100644 --- a/SuperSQLInjection/model/KeyType.cs +++ b/SuperSQLInjection/model/KeyType.cs @@ -8,8 +8,11 @@ namespace SuperSQLInjection.model public enum KeyType { Key=0, - Code=1, - Length=2, - Time = 3 + Reg = 1, + Code =2, + Time = 3, + EQLen = 4, + MaxLen =5, + MinLen =6 } } diff --git a/SuperSQLInjection/tools/Tools.cs b/SuperSQLInjection/tools/Tools.cs index e8fb87c..8cff28d 100644 --- a/SuperSQLInjection/tools/Tools.cs +++ b/SuperSQLInjection/tools/Tools.cs @@ -330,11 +330,13 @@ namespace tools public static Boolean isTrue(ServerInfo server,String key,Boolean reverKey,KeyType keyType) { switch (keyType) { + case KeyType.Key: //用关键字判断 - if (server.body.Length > 0 && server.body.IndexOf(key) != -1) + if (server.body.Length > 0 && server.body.IndexOf(key)==-1) { + ; if (reverKey) { return false; @@ -350,6 +352,26 @@ namespace tools return false; } + case KeyType.Reg: + + //用正则判断 + if (server.body.Length > 0 && Regex.IsMatch(server.body, key)) + { + ; + if (reverKey) + { + return false; + } + return true; + } + else + { + if (reverKey) + { + return true; + } + return false; + } case KeyType.Code: //用状态码判断 if (server.code > 0 && key.Equals(server.code + "")) @@ -368,7 +390,28 @@ namespace tools } return false; } - case KeyType.Length: + + + case KeyType.Time: + int time = Tools.convertToInt(key); + if (server.runTime > time*1000) + { + if (reverKey) + { + return false; + } + return true; + } + else + { + if (reverKey) + { + return true; + } + return false; + } + + case KeyType.EQLen: //用长度判断 if (key.Equals(server.length.ToString())) { @@ -387,9 +430,27 @@ namespace tools return false; } - case KeyType.Time: - int time = Tools.convertToInt(key); - if (server.runTime > time*1000) + case KeyType.MaxLen: + //用长度判断 + if (server.length>Tools.convertToInt(key)) + { + if (reverKey) + { + return false; + } + return true; + } + else + { + if (reverKey) + { + return true; + } + return false; + } + case KeyType.MinLen: + //用长度判断 + if (server.length < Tools.convertToInt(key)) { if (reverKey) { diff --git a/SuperSQLInjection/tools/http/HTTP.cs b/SuperSQLInjection/tools/http/HTTP.cs index fc40707..20577a1 100644 --- a/SuperSQLInjection/tools/http/HTTP.cs +++ b/SuperSQLInjection/tools/http/HTTP.cs @@ -75,15 +75,24 @@ namespace SuperSQLInjection.tools if (!isSSL) { server = sendHTTPRequest(count, host, port, payload, request, timeout, encoding, foward_302,redirectDoGet); + if (!String.IsNullOrEmpty(main.config.sencondRequest) && main.config.sencondInject) + { + server = sendHTTPRequest(count, host, port, "请求二次注入页面", main.config.sencondRequest, timeout, encoding, foward_302, redirectDoGet); + } return server; } else { server = sendHTTPSRequest(count, host, port, payload, request, timeout, encoding, foward_302, redirectDoGet); + if (!String.IsNullOrEmpty(main.config.sencondRequest)&& main.config.sencondInject) + { + server = sendHTTPSRequest(count, host, port, "请求二次注入页面", main.config.sencondRequest, timeout, encoding, foward_302, redirectDoGet); + } return server; } + } catch (Exception e) { diff --git a/update.txt b/update.txt index 94cc49c..452efdd 100644 --- a/update.txt +++ b/update.txt @@ -1,4 +1,10 @@ -20180809 V1.0 正式版--- +20180827 V1.0 正式版--- +新增支持二次注入,支持一些特殊的二次注入情况(注入发包一个页面,获取数据在另外一个页面的情况,只能在同一个应用下面的页面)。注意,线程的问题,因为多线程可能导致流程错乱,所以此模式下建议单线程。 +绕过处理新增Hex(16进制)编码,处理一些特殊的16进制的注入情况。 +修复验证关键字部分情况没考虑导致验证失败,Bool逻辑真假判断方式新增正则和长度大于和小于判断方式。 + + +20180809 V1.0 正式版--- 修复因为配置文件未变更,导致自动识别到的错误注入标记字符未更换的问题而无法获取数据的问题。 修改sqlserver执行命令时,部分情况下,因为标准导致插入执行命令的语句位置不正确导致无法正确执行命令。 diff --git a/超级SQL注入工具使用说明书V20180422.docx b/超级SQL注入工具使用说明书V20180827.docx similarity index 93% rename from 超级SQL注入工具使用说明书V20180422.docx rename to 超级SQL注入工具使用说明书V20180827.docx index cf9c5d06c2b422026192c5bf350c9003a85c4dde..52b40545e167925ceea1e66da80276e27f52738c 100644 GIT binary patch delta 30188 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 z zN>A+k{muiU*E<*dpmE6_r9eNyTmm#2G^c7CD`Oca{))z}1pCdvu_VvPre^a8>lbyH z%1BvW-G!M#Zzr$ywA z1M$-rGU3Unw}FC>=M#hPICugR6u(c1M@DGg@X$f5n}x$h0yHp9qP5Ex;n)7tL#Sw^SXSQ2*3b#R81cj& zf4{?tnf#^G!>8vx=QQ?~QUh~nG(F;uuL(S_2WeAN4DalCdsjK;okNM=OUCi>1j3%A zf^5me_<9zJiDQsVOkuh3QUb}Z(s?rR#*y>n5eQhNV&@ix{IZGOj=irT+P5-p(h^Q1 zK45|r4Z{=-zkCw-CqaA?4O-@qqSq)ULBfDB(r3Lt5XA@Y(Gc^=7Yzl8o;7;kpEl<} zU7ittx8=qr&hWEnT`QG&M`~@ea4WT2J74c?dA-tW{>#K1TD@L=BG+iGuP4aavq#+d z@^;bT+lHI&SYX)$m9U5eaIegjj)Xa`Zs;1Il!lq71`!li@i#{W46_qbZTiJUpdTTx(ehYVZYoUvzPx|rU zOtGtSAMyl%ggkJgvS7C`j(R)}wp;=4iUcCsKRXAHqs7^tpd67+v~M=+ zcdp*a1D3!h4?nQ1lH2BMaWO!gp0N51J9h#Qgr+ZQ6V&*=Ud@cyyAKW~9tRu}k z>tDGq>c5x={;1UbxT4tl$O`)C7pl#0d#7(+YXypYRnpT7B;gJkmrjdoYb+n^b*_uv zU)IvUU30ILwRhTkE$31a`^wlY+^_8@jZ;&9l;2Y#yuir)DW)F!sX;8l9lLh_X-pgN z^9`8Xy#x7)tMz)N0C0-Pxi+8)uT z#|kbNtOSBJ)N4>rygwa1Y54&$BF{#i_H^fOk`uKQ5A3X$%FvyN^n^`|CZY$*VK zCdbp~*oKu|;J>#o*2e;)Pamp)$I-*84>pDv+3TqgW(5gmaWu_9r2?TZ=iP(5NiH*K&6LiiQD_V46m*4)(s zj49zUsXp9>A0li6y4HWd>*z{&OLKucbmJLxWhskxfysF{WpfahlHhf1@XM)SNWug&i`1pDbjXN#fls_7UbVO zgef}8nB&fD2w|TiM>SX${*kh~KuRl1Jmyb z>C#eh{!5bgqh1wJV=CApj5i+m8|gu82{E3oN|*}oEQCyv+ipo2*xP1FPZy12$uXPx zN1M>xTyH7x#qdn5SFb*Hc3h~Gi~^S-s2IzOJu8`J@~=zHlp!)(X_eX$Lyr&I9XM^x zFhaN^PvY0aDtRQ%`p$lRWX$X5_t`TO-dVN!rRDF7Y8yqoT@;dAM z;QL8*BvW(-C3dw>nbGP*1J))U{cB;Y1^gE6q3`sXcJt5(Xa7`_o2&ikronH;cPM(W z6vA_u3k=A_87}ur{DbvHIL$XTSJp56AK+9Uj4L283lPFxiDWp^C$LXDg$OzlSR-^| z>a*&4vQ62Tn>M&Yq=^6;>ycvXpf;^>@L2m<8AqhI~i$!P9SToEC3%T)OgDe_pj?%Q1S2Zq3&ZB#^414RKtW}Rk) zsh$#Z>_sVEg;M}qaj+S|aS_=`A8xyHi>e1PT^T{$W90K?FdBaZGI_%$e9rO^RD`?2GEx2ZeK&!_ETkG0E=25bMNysKJSgf?YU|ha zw&SR?b}IGfe@9jAUShzgb%?`&zk`ZD;o*d4VHX3sFbsrLyXs|m*aN`OZN_ULAwJU7ho(%Bl3qx_*mJiLea2(cKo=TK=vC z3d#W>sO&I<9AkQQDFq{QPGnBY{YLTC)7Wu>h` zj10#j)A}27P&borwK`))SuEcjZgz80$BYJyID{nDGiW+%WuWGT{Io^za{?iuJf`re z{2llu$`xsXG9J3k`A0kp?fh@82?B1stTdyA5nUB4da-+GN-Dd;BNwyzaQfu7bDlAx zGQF&s?#-_w%x`U>2obG4BGuCWnp9{A45OGc`B;i)$S|Rl!;1^4n}RWPc`+DE9tXmK zgh!?p3wW|g{3s&?g_q&ma0qQoQUuRd974xa#(v1v5ams|CTV(gN1q_!!ERd*$8THG z#XLh-wGG>+-5FRT7nxYh-~7C575Cy^HqlkhG>f{hVhY(YO+4i4mW}b{Mz_){6=Bq? zRul8goJA@WCNI|-S2B*Gk~{BiDv#8F^QbdRv9d;YUmb(CtPZW_Y_runVv*L2tJeLF zlMLpBl~406eZ4GyBOQCL!b%Nx2i5!gM>oLgJg$@bQ#XENU%QDWimk|a`40Ty^d+3S z1&&*L-h&12@7`}C@4tnVs#I;P*R_7?Q&|IHJ!@xeRvHfq20~$L&y~b4`I$g=-;D>m zAjis1>AC&!K_!0r+FV@Y%*eQ$K(wF5i3aGqfNo!B=5FWmZR1SF^w^45=l6C8--qnZ zmQ~rx#~aHfNuc~wMZbz`eb|nUAg7XFyo&SUBup{O0lvjWc%DXiIuRvJm{<|1Oqh5P z%}kh>5wXuK_RMq~ai5*{lma6Y-;1tZ>}rpQGVV^yU$I50NfA-*I;4swBnP)!X8t|3 zCT?x-$lX{{2v@9JT^lbpp4h%c%=XK_op|2wKi>6B?8`55cz!s;pLmrWG>!uej}~{# z9%+L1TJ=Bk8WmPr58}i+cv(9v!>$^Z7JLQV-lE^O!W~^}&($}QoPSJJCS|eOF8MI_ z++BGmUp=x39KD6@3(ktx3Yy#~f36}@NuZ3bbX`iK+o3$GY7mlKN{?MiqS==pb-!WW znbleJa{fJO3J$aJ#}f=M3h=A%m+%b~7+9+?7#KPj7?``g(@$nQS6gFKCrdkXCJ$Si zQ=KuVQZAe|_dge#MpRKu=5I*aQDGVW#@Apes>Hv46OU95h4zA?yb=bY7;D|azuIp6iRuL6 z=aIwydx5FXWvuYS`H2~Sh$R+20$;9eQA2Uejl0S*;o&mhlu>L0$_SCE{L?Ke88HGt z0->XbzoQ_k4Iq_y`~enGF(#3cQN>WnPmN=`$^Wt#UXqVk8ICsyMT(Xz%}3G-tz;rh zm4>=fbJGuuq@(#Z!CdT-TstB=B%8a76B@Z}FpaEoqDblO^Qeo}5rwU+eHpEtJvUFYVuMgciXx(9#P(45^3=cB<=G}Ds)Xw-0q-{Yw3e&&4W zC>mSuQO(NE@w(0X(23wQP+&c7Rw*u#!nF}kn}ZOUs8wBuw6c%KXP{>$%`A1s4Km>C z=~U*-B+YfYQIlTthD9WW@U7~~%U)1mQ)(a`LIN4>p9n;PI34|Y3Yw4!WSRMNNbbLQL*&Mk zsKQ8AwYzFR>hRszMo01kG@F2zTRi`|iD%c?%)W=+Y(VCGsv`lr$uh2*X-$sWBxK#O zaW^!G*+sF3#^EZZQr@*^R+TT*BYKI%f`1`L1(+8kT6UMy^DuYWu4!NK zPXl==T1C7Zkt6DjT0`DXhX%oDPUva*b4^H zVF=6Hf6t^v$xmS-OM6+1nO9+Fu@$e24b$SDVE|b}x-Nf*YZ+6|F!gep4^@-Qbq*WV zT_Em%_aIs+p>Kpk1S*#h3_?U{@zS)gPErTa652F7h3jlgA*MT3radz#5rwHJYLKcj zeM$3$+f@g9@`+zz9|T9%mVaz=+935PbcxNM1{-jaQk0q*6|fsTaGqAp$QvTXN;i|9 zAOz%C+NaZohL!Ck;_%0%H0%@YnnxewaPg7Y_b16}Qj*jidw8WX#*#XY-Q(RmG1vEo z|F|AUlZ6vFrisP#sbk0~JtyN-`u?Wf84~K8sVOu4>SmZTy4&ilH`AP5)fZusmAl`k zBwpv8J%rYCC_tNRK1(?gJOXuGX4-uK<_fH^Z8-(B*rqu&3uV>IJ`&{G=}_r1DHbs% zwJ@RPYm?}ZwrV%!td5wlzrUjxrR^%@5KpmLrkhAGBy~&O?08YdsGOx(e!3>|^_VGe z?APOvd**F_1X$(p4%YN$3cegivxO7nrJBZ*%6t`_L&xp0PM4JxRgTso`-4n<`VZic zl1FsS5x9vt38dI+_Ix=Q$tk-LP2S(SCGef-g|{8Rh3nj2-yPdxiS6hq8EO2~U?guz zCMqT-GKlvd9Pow}x=IobS)WIro}xT`iCHbRWfZ3#@+e*RA>X<(bIBVNtl{W*qzJW) z24oB7(N!-C`D%J&wUo;#iw~V#O@IhO_U6wlUEC*w==^4B^(nc52nz|6ZlnIzEW**o zDZ5cxqv@f1{a*70ubzEnf;c$Gsug|#&tzsMf7b>F#M<q9F#AjjccTF^EY0V7HY6CK7jmyCNDquvDBKwpGP9?{lvLvu zZK6CY4vdul=Fc`{R_bfbu8_w)J-nVp*uL*;Ie?j%=9z_yLqg?xkQOYDPOey?$txKW zssx&b1mf}qh~3=YQ*H6>hXi1&Sg^Hjy{zG zONL{Qv9@3+u+2TZJXEPBP3WO5?7wT3FXc-fs7j#%O$JF|_89)4^u|7* z2xzds!J+njp;i1EYreu#egWhZdPz{*GaiZ4*Y%dwP9)4&&0?-LHEQ$(zNR+(fQOuH z`dBZS)7}|d8TB6B8G~r@xRARKCABiw@NA~JMl5%cUUBNE|H>##bzZYsMCAB|9pTbIXM0ds_LIaTRxVQMKgC*8? zDUhdDjQmQG8W(wBf7JPVc&N+3=dXMAEzj(tH#z$Ci_tVgvW!3#T*xw|k<}Xc_fIpM zRBaCoM)3{`hqBEjC`?Z+HO#8&P*>`}_z2})^8v9hHqieHAH-!6Xbk;|OdX~;X}up^ zvXH?4?MwJ`E#>+k@tpxYQe!$zb14j&nP2efov?r42VV?sJ5}-2S0!|BrYmp8u%HFJ zfmOM+W2ZnasU~d7tUfR6AqDuvyh59M3!co{w#Dz}F^uHrKMk`Za|QqYO-S|iD;W1J zR~I7pWSOm!Z_bkpBB@|ZPI96FMjz@mV*XgsM$h;E^JqZoSg9fXhjiEk<(gHMDAw}b%sn?PWLT5)0NAoda=Kx@&T+{b@7jWP(3!kzoPd# zAW#uMOZGq8YcI$i?^BTR1gQ2uD7OfD_z(K5g81=2@$eP|;KPc7PtbsR@jpwut_Xr5 zfE9*FQ-uK~$ira$|3abEVE%8R1UjIY&qUyT2B69RAch&}E8!=Kxq;OGgCpLcwEv(= z0BDu)^CaleAQGa_t0>Na0p+H_V1s;!KCd<8AE=nxHy^?!45qkztcVJQgy+jxBe13Lu&e}!se sf*46Yg(BjBY)C#+{`ZCYOga0R67_!teTFLVKxHJbWYEThu%F!j2TypN=>Px# delta 28352 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 z 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 i`>FXqt>sg5@lzA+|EPU(1(=|AS~vHh)?72z8I