SQL注入sqli-labs-master关卡一
创始人
2024-11-06 12:36:21
0

 本文环境搭建使用的是小皮,靶机压缩包:通过百度网盘分享的文件:sqli-labs-php7-master.zip
链接:https://pan.baidu.com/s/1xBfsi2lyrA1QgUWycRsHeQ?pwd=qwer 
提取码:qwer

下载解压至phpstudy的WWW目录下即可。

第一关如下:判断是否存在注入点。

页面提示我们输入ID作为数值参数,

我们查看该关卡的php源码进行分析:第一步是要连接MySQL,二这个MySQL进行了一个文件包含,将sql-connections/sqli-connect.php的文件代码参数用至index.php中,连接至数据库后的if(isset($_GET['id']))等代码就是进行数据库的一个查询。这里的isset($_GET['id']))代码不知道是什么意思的可以去PHP: PHP 手册 - Manual进行一个查询:

传参有GET和POST两种传参方式,GET传参一般在浏览器的地址栏中传参,POST传参一般在from表单中传参。然后我们传入id=1即输入?id=1,回车后页面显示如下我们的名字和密码为Dumb。传入id=2时返回的名字密码也不同,说明我们传入的值是被带进数据库中进行了一个查询并打印到前端页面中来。也就是说通过php源码我们可以看出该关卡的内容很简单,就是接收参数,查询数据库,前端显示的一个操作。

然后我们可以从中看出该代码存在的漏洞:首先没有对用户的输入进行一个过滤

因为没有对用户输入做过滤,我们进行一个联合查询,注意地址栏中的%20是空格符,因为编码先转ASCLL码再转十六进制,前面的0x变为%替代。但是查询结果依然是?id=1的结果。

在源码中我们可以看到查询语句是这一句。

我们union select 1,2,3就相当于

注意前面id的单引号,我们联合查询的语句并没有进入,在数据库中执行的语句依然为id = 1,没有我们要联合查询的语句,所以我们要逃离单引号,逃离单引号我们可以加一个单引号使之闭合。

union select 1,2,3'就像这种,注意单双引号要成对出现,不然会报错。所以我们需要给他闭合上单引号。但是我们已经逃脱了单引号的控制。

我们联合查询多的单引号就要想办法去给他搞掉。我们有两个办法去把这个单引号弄掉;1.加个单引号,给它闭合上。2.给这个单引号注释掉。MySQL的注释符有三个:-- 和# 和/***/ */这三个注释符。若是依然报错,地址栏中注释符存在,则我们可以转为ASCII编码再转十六进制再去尝试即可。

我们的最终目的是注入管理员的账号密码,首先我们就需要知道管理员表表名和列名。

我们不知道管理员的表名列名,但是我们可以知道MySQL自带的三个表, information_schema, mysql,performance_schema 这三个表。重点放在信息表information_schema它包含了数据库里的所有表。

我们通过order by检测它的列数,?id=1'order by 1 --+通过1,2,3,4一个一个去尝试,发现其列数为3列。

查询前端显示的是1,2,3列中的那一列?id=-1'union select 1,2,3--+得到显示的是2,3列。这里将id值作为-1是为了让前面的语句失效再使用union查询是否有回显位。

查找它的数据库名字和版本?id=-1'union select 1,database(),version()--+得到它的数据库名为security。

在information_schema中存在的columns表(列名)和table表(表名)是我们需要查看的地方。则通过

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+查询出表名。

在表名里我们看到了users用户表,再查看它的字段名?id=-1' union select 1,2,group_concat(column_name)from information_schema.columns where table_name='users'--+,

在里面我们看到了username表和password表。就直接进行查询这个users中的username和password。

?id=-1' union select 1,2,group_concat(username , password) from users--+

拿到账号密码这样看太抽象了,于是我又换了个代码查询。

?id=-1' union select 1,username,password from users where id=2 --+

?id=-1' union select 1,username,password from users where id=3 --+

?id=-1' union select 1,username,password from users where id=4 --+

上就是第一关的内容了。

相关内容

热门资讯

第6分钟辅助!hhpoker怎... 第6分钟辅助!hhpoker怎么开透视,werplan怎么作弊,演示教程(有挂工具)1、全新机制【h...
9分钟辅助!wepoker手机... 9分钟辅助!wepoker手机版透视脚本,wepoker怎么提高运气,诀窍教程(有挂透明挂)1、起透...
2分钟辅助!德扑圈透视,clo... 2分钟辅助!德扑圈透视,cloudpoker怎么开挂,法子教程(有挂解密)1)cloudpoker怎...
七分钟辅助!wepoker有没... 七分钟辅助!wepoker有没有挂,德扑圈有透视吗,诀窍教程(存在有挂)一、德扑圈有透视吗游戏安装教...
1分钟辅助!德普之星透视辅助插... 1分钟辅助!德普之星透视辅助插件,wpk真吗,绝活儿教程(有挂教程);一、德普之星透视辅助插件可以开...
五分钟辅助!佛手在线大菠萝智能... 五分钟辅助!佛手在线大菠萝智能辅助器,wepoker俱乐部辅助器,烘培教程(有挂技巧);1、佛手在线...
6分钟辅助!wepoker透视... 6分钟辅助!wepoker透视脚本免费,wpk系统是否存在作弊行为,练习教程(有挂教程)1、这是跨平...
第三分钟辅助!wpk透视辅助方... 第三分钟辅助!wpk透视辅助方法,hhpoker可以控制吗,诀窍教程(了解有挂)1、上手简单,内置详...
第十分钟辅助!德扑圈透视挂,红... 第十分钟辅助!德扑圈透视挂,红龙poker作弊指令,总结教程(了解有挂)小薇(辅助器软件下载)致您一...
第9分钟辅助!红龙poker辅... 第9分钟辅助!红龙poker辅助,we-poker软件,技法教程(讲解有挂)1、红龙poker辅助透...