zoukankan      html  css  js  c++  java
  • SQL Injection(SQL注入漏洞)

    审计前准备:

    1、安�php程序(推荐phpStudy)

    2、高亮编辑器(推荐 Sublimetext Notepad++)

    3、新建一个文本,复制以下变量,这些变量是审计中需要在源码中寻找的

    ######################

    $_SERVER 
    $_GET 
    $_POST 
    $_COOKIE 
    $_REQUEST 
    $_FILES 
    $_ENV 
    $_HTTP_COOKIE_VARS 
    $_HTTP_ENV_VARS 
    $_HTTP_GET_VARS 
    $_HTTP_POST_FILES 
    $_HTTP_POST_VARS 
    $_HTTP_SERVER_VARS 
    ######################
    **********************************************************************************************

    审计方法:

    1、SQL Injection(SQL注入漏洞)

    作为危害和严重性都身居第一的漏洞不得不先说说它的审计方法;


    Example 1:

    #index.php

    <?php 
    $id= $_GET['id']; 
    $query= "SELECT * FROM users WHERE id= ' “ .$id." ;" 
    ... 
    ?> 

    上面一段代码翻译过来等同于下面这句话:

    index.php?id=1+UNION+SELECT+1,@@version,3,4,5+from+users/* 

    Example 2:

    #login.php
    <?
    #Login.php(hacklele)#
    $user = $_POST['user'];
    $pass = $_POST['pass']; 
    $link = mysql_connect('localhost', 'root', 'pass') or die('Error: '.mysql_e rror()); 
    mysql_select_db2881064151("sql_inj", $link); 
    $query = mysql_query("SELECT * FROM sql_inj WHERE user ='".$user."' AND pas s ='" .$pass. "'",$link);
    if (mysql_num_rows($query) == 0) {
    echo"<scripttype="text/javascript">window.location.href='index.html';</sc
    ript>";
    exit; 

    $logged = 1;
    ?>
    当用户(可能为攻击者)发送$_POST['user'] , $_POST['pass']给 login.php时,这 些变量直接存储在SQL请求命令中。如果攻击者发送:

    $user = 1' OR '1' = '1

    $pass = 1' OR '1' = '1

    将会绕过login.php的登陆验证,读者当注意此类代码。

  • 相关阅读:
    前端页面存取数据
    jquery获取元素内容-text()和val()
    jquery选择器的一些处理
    Js判断一个字符串是否包含一个子串
    防止重复点击:
    Juery实现选项卡
    行间事件传this的问题:
    从数据库中导出数据到.csv文件
    表单限制只能填入正整数
    WAMP环境配置-Mysql安装
  • 原文地址:https://www.cnblogs.com/cbryge/p/6217834.html
Copyright © 2011-2022 走看看