打开数据库连接之后怎么让 select查询的 内容在页面 显示出来啊??
SubConnectionDatabaseDimConnStrConnStr="Provider=Sqloledb;UserID="&SqlUsername&";Pass...
Sub ConnectionDatabase
Dim ConnStr
ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";"
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串!"
Response.End
End If
End Sub
'默认打开数据库连接
call ConnectionDatabase() 之后怎么让 select查询的 内容在页面 显示出来啊?? 展开
Dim ConnStr
ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";"
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串!"
Response.End
End If
End Sub
'默认打开数据库连接
call ConnectionDatabase() 之后怎么让 select查询的 内容在页面 显示出来啊?? 展开
1个回答
展开全部
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造(或者影响)动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。 注入大致方法: 先猜表名And (Select count(*) from 表名)0猜列名And (Select count(列名) from 表名)0或者也可以这样 and exists (select * from 表名) and exists (select 列名 from 表名) 返回正确的,那么写的表名或列名就是正确 这里要注意的是,exists这个不能应用于猜内容上,例如and exists (select len(user) from admin)3 这样是不信的 现在很多人都是喜欢查询里面的内容,一旦iis没有关闭错误提示的,那么就可以利用报错方法轻松获得库里面的内容获得数据库连接用户名:;and user0这个是小竹提出来的,我这里引用《SQL注入天书》里面的一段话来讲解:---------------------------------------------------------------------------------------------------------- 重点在and user0,我们知道,user是SQLServer的一个内置变量,它的值是当前连接的用户名,类型为nvarchar。拿一个 nvarchar的值跟int的数0比较,系统会先试图将nvarchar的值转成int型,当然,转的过程中肯定会出错,SQLServer 的出错提示是:将nvarch-----------------------------------------------------------------------------------------------------------看到这里大家明白了吧,报错的原理就是利用SQLserver内置的系统表进行转换查询,转换过程会出错,然后就会显示出在网页上,另外还有类似的and 1=(selet top 1 user from admin),这种语句也是可以爆出来的。;and db_name()0 则 是暴数据库名。一旦关闭了IIS报错,那么还可以用union(联合查询)来查内容,主要语句就是Order by 10And 1=2 union select 1,2,3,4,5,6,7,8,9,10 from adminAnd 1=2 union select 1,2,3,user,5,passwd,7,8,9,10 from admin上面的order by 10主要就是查字段数目,admin就是表名,可以自己猜,user,passwd是列名反正就是返回正确即对,返回异常即错 另外还有十分常用的ascll码拆半法先要知道指定列名,例如user里的内容的长度 and (select len(user) from admin)=2 就是查询长度为不为2位,返回错误的增加或减少数字,一般这个数字不会太大,太大的就要放弃了,猜也多余 后面的逻辑符
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |