SQL注入准备(MySQL查询语句、URL编码)

MySQL常用查询语句

select user();          	 	当前MySQL 登录用户名
select database();      	 	当前MySQL 数据库名
select version();       	 	当前MySQL 版本
select @@version; 	    	 	当前MySQL 版本
select @@basedir;	    	 	当前MySQL 安装路径(MySQL安装目录)

select(length("abc")); 			字符串长度
select concat("ab","cd");	    连接字符串

select substring(str,pos,len);  pos可以是负值,表示倒数取
select substring("hello",3);    返回llo,截取从第三个字符开始之后的所有字符
select substring("hello",2,2);  返回el,只截取从第2个字符开始之后的2个字符
select mid("hello",2,2);        返回el,只截取从第2个字符开始之后的2个字符 

select ord("a"); 			 	返回ASCII码值,用单引号也可
select sleep(4);       			睡眠4秒,睡眠指定描述
select * from biao limit m,n;   从表的m行(位置,行从0开始算)开始,取到m+n行(取n条记录)
SELECT * FROM biao LIMIT 5,10;  检索记录行 6-15

注释

在url中,如果是get请求(也就是在浏览器中输入的url) 解释执行的时候,url中#号是用来指导浏览器动作的,对服务器端无用。

所以,HTTP请求中不包括#,使用#闭合无法注释,会报错;而使用--(有个空格),在传输过程中空格会被忽略,同样导致无法注释。

所以在get请求传参注入时才会使用--+(或者--%20)的方式来闭合,因为+会被解释成空格。

--%20把空格转换为urlencode编码格式。同理把#变成%23,也不报错。

urlencode是一个函数,可将字符串以URL编码,用于编码处理。

如果是post请求,则可以直接使用#来进行闭合。常见的就是表单注入,如我们在后台登录框中进行注入。

URL编码

URL(Uniform Resource Locator,统一资源定位器),是WWW的统一资源定位标志,指网络地址。
URL由4部分组成:协议、主机、端口、路径。

URL编码(URL encoding),也称作百分号编码(Percent-encoding), 是特定上下文的统一资源定位符 (URL)的编码机制。

编码原理:
将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。
例如:
空格ASCII码是32,对应16进制是20,那么urlencode编码结果是:%20,但在新标准中空格对应的是+

部分转换规则如下:

空格	!		"		#		$		%		&		'		(		)		0		1
%20		%21		%22		%23		%24		%25		%26		%27		%28		%29		%30		%31

+		@		:		;		<		=		>		?		z		{		}		~	
%2B		%40		%3A		%3B		%3C		%3D		%3E		%3F		%7A		%7B		%7D		%7E

UrlEncode编码/解码在线网站:
http://tool.chinaz.com/tools/urlencode.aspx

posted @ 2022-02-06 18:51  Hardworking666  阅读(408)  评论(0编辑  收藏  举报