本地搭建简单SQL注入环境

      首先本地要有一个wamp server,因为SQL注入涉及到与数据库交互,所以先从搭建测试数据库开始。
      打开mysql console,输入root账户密码登陆。创建一个数据库,并命名为fake,命令如下:

create database fake;

      因为我之前已经建立好了,这里直接配置fake数据库的用户权限,配置为leon用户访问,且leon用户的密码为leon,命令如下:

grant all privileges on fake.* to leon@localhost identified by 'leon' with grant option;

      如下图所示
《本地搭建简单SQL注入环境》
      使用phpmyadmin也可以配置用户权限,参考下面文章:
      phpmyadmin用户及权限管理
      配置用户权限主要是为了防止跨库,直接使用root用户来连接当然也是可以的。
      数据库的用户权限配置好了,接下来就是在数据库下建表,建字段等,同样可以使用mysql console命令来完成这些操作,但是使用phpmyadmin比较方便
      首先在fake这个数据库下建立一个user表,user表下包括3个字段,分别是id,username和password,设置id为主键。
《本地搭建简单SQL注入环境》
      然后向字段中插入内容
《本地搭建简单SQL注入环境》
      最终的内容如下
《本地搭建简单SQL注入环境》
      如果想要用mysql console来实现,我们可以新建一个fake2数据库来测试,create好数据库后,输入下面命令建立数据表和字段并简单配置:

create table `user`(`id` int(11) not null,`username` varchar(20) not null,`password` varchar(20) not null,primary key (`id`)) engine=myisam default charset=latin1;

      接着向数据库的字段里insert内容

insert into `user` (`id`,`username`,`password`) values (1,'leon','admin'),(2,'susan','test');

      操作过程如下图
《本地搭建简单SQL注入环境》
《本地搭建简单SQL注入环境》
      这里有个小细节,其实上面的这些建表、建字段和插入的语句我是利用导出的user.sql文件得到的,具体操作就是使用phpmyadmin进入下面的界面
《本地搭建简单SQL注入环境》
      全选所有字段并导出,跳转到下面的页面
《本地搭建简单SQL注入环境》
      点击执行就会导出一个user.sql文件,然后使用编辑器打开
《本地搭建简单SQL注入环境》
      怎么感觉跑题了。。。到了这里数据库方面就处理好了,然后就是注入文件的构造,代码如下:

<?php $id = $_GET['uid']; echo "您当前执行的sql语句为:" ; echo "select * from user where id=" . $id . "<br/>"; echo "<hr>"; $mysqli = new mysqli('127.0.0.1','leon','leon','fake'); if(mysqli_connect_errno()){ printf("连接失败:%s<br>",mysqli_connect_error()); exit(); } $result = $mysqli->query("select * from user where id=$id"); //print_r($result->fetch_array(MYSQLI_ASSOC)); while(list($id,$username,$password)=$result->fetch_row()){ echo "用户ID:" . $id . "<br/>"; echo "用户名:" . $username . "<br/>"; echo "用户密码:" . $password . "<br/>"; } $result->close(); $mysqli->close() ?>

      从SQL查询语句中可以看到这是数字型的注入,本地的访问效果:
《本地搭建简单SQL注入环境》
      手工注入,sqlmap注入都是可以的。
《本地搭建简单SQL注入环境》
《本地搭建简单SQL注入环境》
      比较怀旧的也可以使用下面的代码

<?php $id = $_GET['uid']; $conn = @mysql_connect('127.0.0.1','leon','leon'); //这里使用@符号屏蔽出错信息 mysql_select_db('fake',$conn); $sql = "select * from user where id=$id"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)){ echo "用户ID:" . $row['id'] . "<br/>"; echo "用户名:" . $row['username'] . "<br/>"; echo "用户密码:" . $row['password'] . "<br/>"; } mysql_close($conn); echo "<hr>"; echo "您当前执行的sql语句为:" ; echo $sql; ?>
    原文作者:endeav_or
    原文地址: https://blog.csdn.net/endeav_or/article/details/52170216
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞