zoukankan      html  css  js  c++  java
  • DVWA演练平台之SQL注入(全新认识)

    1.开启平台,打开页面(low)。

    2.测试id参数。

    加单引号试试:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1''' at line 1

    闭合了前面的单引号,所以后面的就需要注释掉。SQL语句注释:①“#”  ②“-- ”
    3.分析源码。
     1 <?php    
     2 
     3 if(isset($_GET['Submit'])){
     4     
     5     // Retrieve data
     6     
     7     $id = $_GET['id'];
     8 
     9     $getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";
    10     $result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' );
    11 
    12     $num = mysql_numrows($result);
    13 
    14     $i = 0;
    15 
    16     while ($i < $num) {
    17 
    18         $first = mysql_result($result,$i,"first_name");
    19         $last = mysql_result($result,$i,"last_name");
    20         
    21         $html .= '<pre>';
    22         $html .= 'ID: ' . $id . '<br>名字: ' . $first . '<br>姓氏: ' . $last;
    23         $html .= '</pre>';
    24 
    25         $i++;
    26     }
    27 }
    28 ?>

    找到其中在数据库执行的SQL语句:

    SELECT first_name, last_name FROM users WHERE user_id = '$id'

     

    
    
    4.字段数查询。
    order by 语句  用于根据指定的列对结果集进行排序。
    在数据库中操作:

     order by 后面的数字就是我们猜测的在这个表中的列数,上图表明此表的列数为2。

    5.获取显示位

    跟数据库一样的:

    6.查询关键信息

    即是让内置查询函数代替当前的显示位。

    version()  user()  database()  @@version_compile_os

     7.获取当前表的其他内容(密码)

    其实在我们的数据库中还有一个information_schema数据库,这时候就要利用它啦!

    information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。

    SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。

    TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。

    COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。

    SQL语句查找表名,

    SELECT first_name, last_name FROM users WHERE user_id =1
     union select table_name,2 from information_schema.tables where table_schema='dvwa';

    所以在页面中:

    选择users表吧!  二营长,开炮。

    SELECT first_name, last_name FROM users WHERE user_id =1 union select column_name,2 from information_schema.columns where table_name='users';

    嘻嘻!  现在肯定开打user,password这两列咯。

    9.解密

    http://www.cmd5.com/

    完工!!!

  • 相关阅读:
    9月22日 又上锁妖塔
    1396. 【2014年鄞州区】挖掘机(d.pas/c/cpp)
    栓奶牛——二分解法
    P6188 [NOI Online 入门组]文具订购 题解
    HDC.Cloud | 基于IoT Studio自助生成10万行代码的奥秘
    华为云API Explorer开发者生态平台正式上线
    【华为云技术分享】揭秘华为云DLI背后的核心计算引擎
    【华为云技术分享】ARM体系结构基础(2)
    【华为云技术分享】HDC.Cloud | 以数字资产模型为核心驱动的一站式IoT数据分析实践
    【华为云技术分享】数据赋能,如何精细化保障企业大数据安全
  • 原文地址:https://www.cnblogs.com/Risk2S/p/6916145.html
Copyright © 2011-2022 走看看