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的登陆验证,读者当注意此类代码。

  • 相关阅读:
    Java中的静态方法
    捕获异常代码
    重载与重写的区别
    继承代码
    Android Studio 快捷键一览
    android两种基本联网方式与一种第三方开源项目的使用
    Android Studio导入github下载的project和module
    SlidingMenu 侧滑菜单的用法
    显示图片的(自定义)吐司Toast
    用volley在Genymotion上获取网页源码
  • 原文地址:https://www.cnblogs.com/cbryge/p/6217834.html
Copyright © 2011-2022 走看看