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

it2022-05-05  142

一、常用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 ‘%’=’

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: 中文猜解和英文差不多,除了使用的函数要注意、猜解范围大一点外,其它的都差不多。


最新回复(0)