sqli-labs-less-1

前言

靶场终终终于于搭完了,phpstudy版本太高,会影响靶场报错

字符型注入

通过在http://127.0.0.1/sqllib/Less-1/?id=1后直接添加 ‘ ,如果报错则为字符型注入,

报错如下:

此时构成语句:select ** where id=’1’

尝试用 or 1=1–+ 来消除 ‘

常用尝试语句

1
2
3
4
5
6
7
8
9
闭合引号   |  注释
----------------------
or 1=1 | --+
'or 1=1 | --+
"or 1=1 | --+
)or 1=1 | --+
')or 1=1 | --+
")or 1=1 | --+
"))or 1=1 | --+

那为什么这里能实现正常回显呢?

此时对应sql语句为 select ** where id=‘1’or 1=1–+‘ LIMIT 0,1

​ where id=’1’为假,1=1恒真,再运算or(一真即真),所以结果自然成立

通过order by进行排序

可知数据仅有三列

union联合注入

union操作符用于合并两个或多个select的语句结果集,其中union中的select语句必须要有相同的列以及相似的数据类型且列的顺序必须相同。

1
2
3
4
5
select column_name(s) from table_name1

union

select column_name(s) from table_name2

该语法下仅选取不同的值

若想取重复数值,则使用union all 操作符

1
2
3
4
5
select column_name(s) from table_name1

union all

select column_name(s) from table_name2

当id的数据不存在时,出现如下情况:

爆数据库

这里利用union操作符、group_concat(str1,str2…)字符串连接函数,来实现对数据库的爆破。

爆security数据库中的数据表

爆users表的列

爆数据