一、什么是SQL注入?
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
二、教务系统怎么sql注入?
有些高校教务系统含有找回密码页面,在学号处输入xxxxxx'or '1'='1#
xxxxxx是随便一学号,然后后面姓名,身份证号全部随便输,点击查询,xxxxxx学号的密码就会被查询出来。
三、sql注入原理
首先网页textbox返回的是字符串,xxxxxx'or '1'='1# 这里为输入的学号。
当sql语句为
select * from stuinfo where xh='+textbox1.text+' and sfid='+textbox2.text+'
加上刚刚输入的学号变成
select * from stuinfo where xh='xxxxxx'or '1'='1#' and sfid='+textbox2.text+'
注意!在sql语句中#的用来注释,所以sfid的条件被注释掉了,从而达到只需要学号就能查密码!
四、sql注入怎么修复?
客户端:利用js检测是否符合上述的神秘代码,是返回就false(不建议使用,可以通过自己编写网页POST达到屏蔽效果)
服务器:在点击查询后,服务器进行一个判断
C# ASP.NET修复代码:
if (textBox1.Text.Substring(textBox1.Text.Length - 1) == "#") { return "含有可疑字符"; }
PHP修复代码:
$str=$_POST["xh"]; if (substr($str, -1) == "#") { return "含有可疑字符"; }
VB ASP修复代码:
if (right(str,1)== "#") { return "含有可疑字符"; }
发表评论: