什么是sql注入?如何注入的呢?
发布网友
发布时间:2022-04-21 21:21
我来回答
共7个回答
热心网友
时间:2022-04-07 16:52
SQL注入一定意义上可能是目前互联网上存在的最丰富的编程缺陷,是未经授权的人可以访问各种关键和私人数据的漏洞。 SQL注入不是Web或数据库服务器中的缺陷,而是由于编程实践较差且缺乏经验而导致的。 它是从远程位置执行的最致命和最容易的攻击之一。
from 树懒学堂
热心网友
时间:2022-04-07 18:10
这是因为有注入漏洞, 而且没有过滤敏感字体。
or 1=1
在login.asp中,接收用户输入的Userid和Password数据,并分别赋值给user和pwd,然后再用sql="select * from admin where username="&user&" and password="&pwd&"" 这句来对用户名和密码加以验证。
以常理来考虑的话,这是个很完整的程序了。而在实际的使用过程中,整套程序也的确可能正常使用。
但是如果Userid的值和password的值被赋于:safer or1=1 这时,sql="select * from admin where username="&user&" and password="&pwd&"" 就成了:
sql="select * from reg where user=safer or1=1 and pass=safer or1=1
怎么样?!我不说大家也明白了吧!
既然有这样的问题,接下来我们就来看看如何解决它。从上面的程序中各位也可以看出,只要对用户输入的数据进行严格过滤就可以了。具体可以参下面的程序:
<%
user=request.from("UserID")
pass=request.from("password")
for i=1 to len(UserID)
cl=mid(UserID,i,1)
if cl="" or us="%" or us="<" or us=">" then
response.redirect "54safer ..haha"
response.end
end if
next
%>
同样是先取得用户输入数据,然后分析用户输入的每一个字符,如发现异常,则转到错误页面。
if cl="" or us="%" or us="<" or us=">" then 这一句中可以加入任意的过滤字符,跟据具体情况而定。
热心网友
时间:2022-04-07 20:01
SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,这是SQL注入的标准释义。
热心网友
时间:2022-04-07 22:09
比如简单的登录:新手这样写就有问题
username = request("username")
password = request("password")
sql="select * from userlist where username = '" & username & "' and password = '" & password & "'"
遇到不安分的人就麻烦了,比方输入用户名是:admin 密码是: ' or 1 or '
sql就成了:
sql="select * from userlist where username = 'admin' and password = '' or 1 or ''"
这样就成功通过验证了 呵呵
热心网友
时间:2022-04-08 00:34
username = request("username") //获取用户名 这里是通过URL传值获取的
password = request("password") //获取密码 也是通过URL传值获取的
sql="select * from userlist where username = '" & username & "' and password = '" & password & "'" // 这边是拼接SQL字符串 ;之所会
//有注入问题 ,就是因为拼接的方式;如果你用参数的形式,就不会有注问
//题.
admin 密码应该这样写: ' 随便 or 1=1 ' (随便指你随便输点东西就可以)
后面解释了 怎么混过验证 还有更严重的情况,对方可以直接拼接删除库的SQL语句,直接把你的数据库给你干掉
因此在写此类SQL语句时,建议采用参数的方式
热心网友
时间:2022-04-08 03:15
参照
http://social.technet.microsoft.com/Forums/zh-TW/sqlservermanagementzhcht/thread/218aba6e-6315-40db-b2e3-687beb05915f
热心网友
时间:2022-04-08 06:13
通过程序的不严谨
比方可以找到程序的管理员密码,然后作恶