查询某关键词在MSSQL数据库位置的ASP脚本

2018-09-06 12:13

阅读:495

  晚上皇子丢给我一段SQL语句,功能是:以一个关键字为索引,搜索整个数据库,然后返回那个关键字所在的表名和列名。(很赞...特别是入侵的时候找不到用户名与密码所在的表的时候,如果能直接通过输入admin这个关键词找出字段...省得一个表一个表的看了。)于是根据那段语句,写了个asp的脚本,方便大家以后搜寻数据库。

  整体而言,这段SQL只适宜用在小型数据库上,ASP中的循环也没效率,大库还是别用了,小库可以考虑。如果是大库的话,请联系皇子要另外一份牛人写的SQL查询语句。

  代码如下:

  <%

  Confirm a keywords position of a database(which table which column)
By oldjun(
Based on huangzi(

  Server.ScriptTimeout=999999999
Response.Buffer =true
On Error Resume Next
keyword=request(keyword)
if keyword= then
response.write Need keyword!
response.End
End if
dim conn
Dim ConnStr
ConnectionString,Pls change!
ConnStr=Driver={SQL SERVER};Server=localhost;UID=sa;PWD=sa;Database=master
Conn.open ConnStr
conn.execute(CREATE TABLE huangzi_table(id int identity(1,1),biaoid int,biaoname nvarchar(1000)))
conn.execute(insert huangzi_table select [id],[name] from sysobjects where xtype=U)

  set rs =conn.execute(select count(id) as tnum from huangzi_table)
tnum=rs(tnum)
rs.close
set rs=nothing
for i=1 to tnum

  set rsbiao =conn.execute(select biaoid from huangzi_table where id=i)
biaoid=rsbiao(biaoid)
set rst =conn.execute(select [biaoname] from huangzi_table where biaoid=biaoid)
tname=rst(biaoname)

  set rsl=conn.execute(select count([name]) as lnum from syscolumns where id=biaoid)
lnum=rsl(lnum)

  for j=1 to lnum

  topnum=j-1
set rslie=conn.execute(select top 1 [name] from syscolumns where id=biaoid and [name] not in
(select top topnum [name] from syscolumns where id=biaoid))
liename=rslie(name)
set rsresult=conn.execute(select top 1 [liename] from [tname] where CAST([liename] AS NVARCHAR(1000))=keyword)

  if rsresult.bof or rsresult.eof then
response.write Nothing-tname:liename
response.write <br>
else
result=rsresult(liename)
response.write result(tname:liename)
response.write <br>
End if

  rslie.close
set rslie=nothing
rsresult.close
set rsresult=nothing
next

  rsbiao.close
set rsbiao=nothing
rst.close
set rst=nothing
rsl.close
set rsl=nothing
next

  conn.execute(DROP TABLE huangzi_table)
%>
注:效率很差,使用时可能出现假死, 请耐心等待,大库还是别用了;代码简单,实现的简单功能,没技术含量,留着以后备用;换连接语句的时候有个缓存问题,建议重启下浏览器!


评论


亲,登录后才可以留言!