标题:sql注入


SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

 

以WEB后台登录验证程序为例,当用户输入用户名和密码之后,通过HTTP传输到WEB后台之后,一般会通过下面这条SQL来进行验证用户是否存在:
 
select * from users where user=‘xxx’ and pwd=‘yyy’

其中users是用来存放注册用户信息的数据库表。一般正常情况下,用户都会老实的输入自己的用户id和密码,所以一般不会存在问题。但是,假如,一个恶意攻击者在用户名输入框中:

输入:xxx#

select * from tablename where user=‘xxx’# and pwd=‘yyy’

输入:xxx;drop table users#

select * from tablename where user=‘xxx';drop table users#

输入:xxx or 1=1#

select * from tablename where user=‘xxx or 1=1#

那么第一种,第三种输入,可以轻易的绕过密码验证获得后台权限,而第二种输入甚至可能会把用户表直接给删除,造成SQL注入攻击。

如何判断一个网页有SQL注入漏洞呢?

http://www.mytest.com/showdetail.asp?name=‘xxx’

SELECT * FROM tablename WHERE field = ‘?’

xxx

xxx’ and 1=1#

xxxx’ and 1=2#


1,输入:xxx

2,输入:xxx and 1=1#

3,输入:xxx and 1=2#

漏洞存在时:1,2,正常显示,3提示找不到内容或者空白或提示BOF,EOF

漏洞不存在是:1正常显示,2,3提示错误信息



看文字不过瘾?点击我,进入腾讯课堂视频教学
麦洛科菲长期致力于IT安全技术的推广与普及,我们更专业!我们的学员已经广泛就职于BAT360等各大IT互联网公司。详情请参考我们的 业界反馈 《周哥教IT.C语言深学活用》视频

我们的微信公众号,敬请关注