SQL注入攻击的时候,为什么要在URL后面加上abc.asp?p=YY',为什么多要个单引号?

 我来答
ccppv
2015-01-29 · TA获得超过2994个赞
知道大有可为答主
回答量:5074
采纳率:40%
帮助的人:2929万
展开全部
有些人喜欢直接拼凑SQL语句
比如你说的这个。可以这么写
select * from table1 where column='"& Request.QueryString("p") &"'
这样你加个单引号,就可以跟前面的单引号形成一组,后面再加点其它的语句,也就可以一并执行了
追问
按你的意思,后台服务器会如下请求数据库:
select * from table1 where colum=' "&YY' &" '
对不?
可为什么这样能够测试SQL注入漏洞呢?
追答
本来它得到的数据是
select * from table1 where column='YY'

如果你多加了一个单引号,就变成了
select * from table1 where column='YY'' 注意后面是两个单引号。
这样的语句是会报错的。如果页面报错了。说明对于接收的参数是没有做过滤的。也就是存在注入
nelsontu_bd
2015-01-29 · TA获得超过557个赞
知道小有建树答主
回答量:484
采纳率:0%
帮助的人:275万
展开全部
SQL注入攻击的通常是程序中进行sql语句拼接
中间加单引号,是对SQL语句中的单引号进行转义
追问
就为了形成如下SQL语句嘛?
select * from table1 where column=yy'吗?
我还是不很理解。能劳烦举个例子吗?
追答
select * from [User] where username='"+name+"' and password='"+pwd+"'";  
假设name的值为student‘;--’,password任意
则,生成的sql为:
select * from [User] where username=‘student';--‘’and password=‘任意’;
这样就屏蔽了password
解决SQL注入的方法是不要用程序拼接SQL,而是通过预编译sql语句,通过参数传递。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式