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

  • 相关阅读:
    python的进程与线程
    推荐一个GOLANG入门很好的网址
    为什么Python 3.6以后字典有序并且效率更高?
    git实用指南
    常用正则总结
    简单小结密码学入门知识点
    什么是k8s
    win10下apache superset的使用
    Maven工作记录
    JDK下载地址和安装
  • 原文地址:https://www.cnblogs.com/cbryge/p/6217834.html
Copyright © 2011-2022 走看看