zoukankan      html  css  js  c++  java
  • SQL注入攻击

    常见漏洞

     1. 转义字符处理

      $sql = "select * from table where field='$_GET["input"]'";

      $result = mysql_query($sql);

          检测方法:输入加入单引号'

    2.  类型处理不当 

         $sql = "select * from table where field = $_GET["userid"]"

      $result =  mysql_query

         常用手段: 1 Union all select load_file('/etc/passwd')

    3. 查询语句组装不当

         $sql = "select ".$_GET["column1"].",".GET["column2"]."from".$_GET[table];        

         $result = mysql_query($SQL);

         检测方法:table = user & column1=user&column2=password

        

    4. 错误处理不当

      $getid = "select first_name,last_name from users where user_id ='$id'" ;

      $result = mysql_query($getid) or die('<pre>'. mysql_error().'</pre>');  

         检测方法: 1 ' UNION SELECT 1,CONCAT_WS(CHAR(32,58,32),user(),databse(),version()))#

    5. 多个提交处理不当

      if($_GET[form1] == "form1"){}

      if(is_string($_GET["param"])){}

      if(strlen($_GET["param"]))<$max{}

      手段:直接调用第二个表单

    6. other

    常用注入方法  (fiddle)

     1. GET请求

     2. POST请求

     3. 其他(cookie,主机头 站点头)

    常用工具

    1. HP WebInspect

    2. IBM Appscan

    3. WVS

    简单演示

    SQL盲注

      booleanbase

        相关函数: left() right()

        timebase

            相关函数:sleep()

            $sql = .... where if(condition,sleep(2),1) ....   
        Errorbase

          相关函数:

            $sql =  .... and 2*3=7 .....

                 

    场景

    mysql常用函数

    select left('1234567',3)             //123

    select right('1234567',3)          //567

    select version()                         // 3.3.27-log

    select database()                    //db name

  • 相关阅读:
    html position定位
    设置input标签的placeholder的样式
    由于html元素加载导致的问题
    js setInterval参数设置
    .mht文件转换为html
    js异步导致的错误
    Premiere入门1 —— PR的下载、安装与优化
    Photoshop入门1 —— PS的下载、安装与优化
    Python正课25 —— 文件处理
    Python问题集
  • 原文地址:https://www.cnblogs.com/olenji/p/5015080.html
Copyright © 2011-2022 走看看