作家
登录

MySQL注入攻击与防御

作者: 来源: 2017-05-08 16:02:58 阅读 我要评论

  •     } 
  • 这里过滤了很多关键词了,须要用到类型转换了,这里我们用+号

    1. uname=aa'+(ascii(mid((passwd)from(1)))>0)+'1 

    履行的SQL语句如下:

    1. xxxxxx where username = 'aa'+(ascii(mid((passwd)from(users)))>0)+'1' 

    如许就可以开端写脚本跑数据了

    除了+号,其他算术操作符号也会产生类型的类型转换,例如MOD,DIV,*,/,%,-,

    关于隐式类型转换的文┞仿可以看这里

    4. HTTP参数污染

    当我们传入的参数为

    http://sqlinjection.com/?par1=val1&par1=val2

    进入到不合的Web Server就可能获得不合的结不雅,这里借鉴一下国外大年夜佬一篇文┞仿的总结,如下:

    不合的Web Server就可能获得不合的结不雅

    不合的web server的处理结不雅截然不合

    不合的web server的处理结不雅截然不合

    这里也推荐一篇国外的文┞仿

    十一、拭魅战正则过滤绕过

    3. 查列名

    拭魅战正则过滤绕过

    十二、防御手段(代码以PHP为例)

    像WAF之类防御手段本身力所不及经常打补丁就好,这里重要提一下代码层面的问题

    推荐应用下面的方法进行萌芽:

    1. $stmt = $db->prepare('update name set name = ? where id = ?'); 
    2. $stmt->bind_param('si',$name,$id); 
    3. $stmt->execute(); 

    2. ODBC

    1. $stmt = odbc_prepare( $conn, 'SELECT * FROM users WHERE email = ?' ); 
    2. $success = odbc_execute( $stmt, array($email) ); 

    或者

    1. $dbh = odbc_exec($conn, 'SELECT * FROM users WHERE email = ?', array($email)); 
    2. $sth = $dbh->prepare('SELECT * FROM users WHERE email = :email'); 
    3. $sth->execute(array(':email' => $email)); 

    3. PDO

    或者

    1. $dbh = new PDO('mysql:dbname=testdb;host=127.0.0.1', $user, $password); 
    2. $stmt = $dbh->

        推荐阅读

        如何使用vCSA6.5监控CPU、内存和网络

      如不雅体系已经连接到互联网,那么进入“Update”标签页,选择“Installed Updates”,之后“Install All Updates”。 在vSphere 6.5中,VMware改换了 vCe>>>详细阅读


      本文标题:MySQL注入攻击与防御

      地址:http://www.17bianji.com/lsqh/35071.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)