简单介绍下常用SQL注入函数和中文处理方法

本文介绍了SQL注入中常用的函数及其在不同数据库中的应用,包括ASCII码转换、子字符串获取等,并探讨了针对MS-SQL和Access数据库中中文字符的特殊处理方法。

一、常用SQL注入函数

有SQL语言基础的人,在SQL注入的时候成功率比不熟悉的人高很多。我们有必要提高一下自己的SQL水平,特别是一些常用的函数及命令。

Access:asc(字符) SQLServer:unicode(字符)

作用:返回某字符的ASCII码

Access:chr(数字) SQLServer:nchar(数字)

作用:与asc相反,根据ASCII码返回字符

Access:mid(字符串,N,L) SQLServer:substring(字符串,N,L)

作用:返回字符串从N个字符起长度为L的子字符串,即N到N+L之间的字符串

Access:abc(数字) SQLServer:abc (数字)

作用:返回数字的绝对值(在猜解汉字的时候会用到)

Access:A between B And C SQLServer:A between B And C

作用:判断A是否界于B与C之间

补充:
1.注入参数是字符
‘and [查询条件] and ‘’=’

2.搜索时没过滤参数的
‘and [查询条件] and ‘%25’=’

3.猜字段的ascii值(access)
;and (select top 1 asc(mid(字段名,1,1)) from 数据库名)>0

4.猜字段的ascii值(mssql)
;and (select top 1 unicode(substring(字段名,1,1)) from 数据库名)>0

二、中文处理方法

1、MS-SQL中的汉字猜测
可以说MS-SQL下的汉字是不用猜测的,你只要构造的条件足够的好,可以直接让对方在报错的时候将数据内容直接显示出来。

2、ACCESS中汉字字符的猜测

●汉字字符的确定

●间接的猜测法

●直接的猜测法

注意两点:

Access中,中文的ASCII码可能会出现负数,取出该负数后用abs()取绝对值,汉字字符不变。

SQLServer中,中文的ASCII为正数,但由于是UNICODE的双位编码,不能用函数ascii()取得ASCII码,必须用函数unicode ()返回unicode值,再用nchar函数取得对应的中文字符。

PS: 中文猜解和英文差不多,除了使用的函数要注意、猜解范围大一点外,其它的都差不多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三朝看客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值