【sqli】sqli环境搭建以及sql注入常用的sql语句

环境搭建

【方法1】
使用docker

// 命令
docker pull acgpiano/sqli-labs

请添加图片描述
请添加图片描述
在浏览器中输入IP:端口号 我上面设的端口号为88,所以输入的就是IP:88
在这里插入图片描述
点击Setup/reset Database for labs 显示下图所示的页面,则显示环境配置成功。
在这里插入图片描述
【方法2】在虚拟机windows server 2003中安装phpstudy
请添加图片描述
并将sqli.zip解压到phpstudy安装目录下的www中请添加图片描述
在浏览器中输入以下网址进行验证请添加图片描述
点击Setup/reset Database for labs 显示下图所示的页面,则显示环境配置成功。
请添加图片描述

phpstudy中mysql命令行的使用

在这里插入图片描述
默认密码为root
在这里插入图片描述

常用sql语句

1、注释符

单行注释:

– (后面有空格)
多行注释:
/**/
在sql注入中 一般在url中输入–+或者%23

2、显示全部数据库 show databases;

在这里插入图片描述

3、指定数据库 use xxx;

4、显示某数据库的全部表 show tables;

在这里插入图片描述

5、查看xx表全部信息 select * from xx;

在这里插入图片描述

6、union

union用于将多个select语句(两个或多个)的结果组合到一个结果集中,并删除结果集中的重复数据,语法为“select column,…from table1 union select column,…from table2”。
需要注意的是union中的每个查询必须拥有相同的列数。

在这里插入图片描述

7、order by

可以用来判断表的列数 (原理:二分法)
当你不知道某一个表的列数,可以对使用该语句进行测试,
orderby 8 (失败尝试orderby 4失败尝试 orderby 2成功 说明可能在2或者3 在尝试orderby 3 成功 那就是说明只有3列)

在这里插入图片描述

8、常用函数

8.1 user()

查看当前用户名

8.2 database()

查看当前数据库

8.3 current_user()

查看当前用户名

8.4 version()

查看数据库版本

8.5 load_file

读文件
假设读桌面上一个写着lisi的zhangsan.txt
注意这个路径用的/
在这里插入图片描述

8.6 Into outfile()/into dumpfile

写文件
select ‘111’ into outfile ‘c:/2.txt’;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.7字符串连接函数

1、concat(str1,str2…)函数直接连接
在这里插入图片描述

2、group_concat(str1,str2…)函数使用逗号做为分割符

在这里插入图片描述

3、concat_ws(sep,str1,str2…)函数使用第一个参数sep作为分隔符
在这里插入图片描述

8.8 count()

计算结果集的行数
1、COUNT(column_name)
函数返回指定列的值的数目(NULL不计入)
也就是说,传入某个列的名称,函数返回的是该列中存在值的行数。

在这里插入图片描述
2、COUNT(*)
函数返回表中所有的记录数
3、COUNT(DISTINCT column_name)
函数返回指定列含不同值的行数

8.9 length()

用于读列中值的长度
在这里插入图片描述

8.10 substr(str,pos,len)/substring(str,pos,len)

返回截取的子字符串
在这里插入图片描述

8.11 ascii

返回指定字符串最左侧字符的ascii值
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/SUSUYUA/article/details/129069322