low security dvwa--SQL Injection
登录dvwa后,点击左边的"SQL Injection",出现以下界面:
下面做一些学习总结。
第一步:用 "order by n" 获得表中的属性列数,它的意思是用表中的第n个属性列对返回的结果进行排序。我们将n从1开始,然后逐渐递增,直到数据库返回错误,下面是n = 1,2的结果:
当 n = 3 时出现了"Unknown column '3' in 'order clause'"的错误,说明当前的表中没有第3个属性列。至于这个表是什么,我还没有研究过,有待进一步学习,下面我假设这个表是tb。
当注入语句
' order by 1; --
时,在后台被转换成下面的形式:
select * from tb where user_id = '' order by ; -- '
这里要注意几个点:第一,后台在转换SQL语句时,会自动添加一对单引号;第二,'--'是mysql数据库的单行注释符,而且第二个'-'后面一定要有一个空格(下面构造的SQL语句也是如此),这里它把后台添加的单引号注释掉了,所以数据库只执行了分号前面的SQL语句。
第二步:union 查询
现在已经知道了tb中有2个属性列,那么我们可以利用union来获得关于数据库的一些基本信息,比如
(1)查询当前用户和数据库名称
' and 1=2 union select user(),database(); --
结果如下
(2)查询数据库的版本信息和操作系统信息
' and 1=2 union select @@version,@@version_compile_os; --
这里要注意的是,必须保证union左右两边的select语句所查询的属性列数目相同,从前面我们知道,当前表中有2个属性列,所以在右边的select语句中,我们只能选择两个属性来查询,或多或少都会导致查询失败。另外,有几个关于查询的常用函数,分别是:@@version查询mysql的版本信息,user()查询用户名,database()查询数据库名称,@@datadir查询数据库路径,@@version_compile_os查询操作系统版本......可以根据自己感兴趣的信息来选择。
第三步:爆库爆表爆列
当mysql的版本大于5.0时,有个默认的数据库information_schema,里面存放着所有数据库的信息,比如数据库名、表名、列名等。
(1)爆库
' and 1=2 union select 1, schema_name from information_schema.schemata; --
上面的语句返回了information_schema数据库中schemata表的schema_name属性列,即是mysql中所有数据库的名称,结果如下
从结果中可以看到,目前的mysql有6个数据库。
(2)爆表
' and 1=2 union select table_schema,table_name from information_schema.tables; --
上面这条语句返回了各个数据库中的所有表名称,下面是部分截图的结果
现在我们知道了dvwa数据库中有两个表,分别是guestbook和users,下面我们构造SQL语句得到users表中的所有属性列。
(3)爆列
' and 1=2 union select table_name, column_name from information_schema.columns; --
上面的语句返回了各个表中的所有属性列,users表的结果如下:
现在我们知道了users表中的所有属性列名称了,我们可以查询自己感兴趣的东西,比如说用户的user_id和password
(4)爆密码
' and 1=2 union select user_id,password from dvwa.users; --
上面的语句返回了用户ID和其对应的密码,结果如下:
可惜密码被加密了,唉.....
因为我也是刚开始学习SQL注入,所以有错误是在所难免的,欢迎大家指正,谢谢!
2016-09-21
low security dvwa--SQL Injection的更多相关文章
- sqlmap dvwa SQL Injection使用小记
刚刚开始学习sql injection,初步使用sqlmap,使用 GET http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=1&Submi ...
- DVWA SQL Injection 通关教程
SQL Injection,即SQL注入,SQLi,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的.SQL注入漏洞的危害巨大,常常会导致整个数据库被“脱 ...
- DVWA SQL Injection(Blind) 通关教程
SQL Injection(Blind),即SQL盲注,与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是 ...
- DVWA SQL Injection LOW
最近在学习SQL注入,初出茅庐,就从dvwa开始吧 sql注入可以通过sqlmap工具实现,为了更好地了解原理,这里主要是手工注入 注入的一般流程为: 1,找到注入点,此步骤可通过工具 2,判断注入类 ...
- DVWA SQL Injection High
High 虽然是high等级,但是通过源码审计发现与low等级一样,没有对传入的值做任何过滤,唯一不同的就是点击连接后打开了另外一个对话框,用户在新打开的页面输入 其余的步骤与low级别的一样:htt ...
- DVWA SQL Injection Medium
Mdeium 基本的步骤及知识点在上节已经提到过这里不再赘述:https://blog.csdn.net/WQ_BCJ/article/details/84554777 1)与low级别不同,本次采用 ...
- 【DVWA】SQL Injection(SQL 注入)通关教程
日期:2019-07-28 20:43:48 更新: 作者:Bay0net 介绍: 0x00.基本信息 关于 mysql 相关的注入,传送门. SQL 注入漏洞之 mysql - Bay0net - ...
- SQL Injection (Blind) Low
SQL盲注分析 盲注较普通注入难度会有所增加,根据页面响应不同大概分为以下几种:布尔型盲注:时间盲注:报错注入 普通注入与盲注的对比: 普通注入: ...
- 使用sqlmap注入DVWA的SQL Injection菜单
1 使用sqlmap注入DVWA的SQL Injection菜单 本教程中的登陆地址:http://192.168.0.112/dvwa/login.php 1.1 获取cookie信息 1) 使用a ...
- 《11招玩转网络安全》之第四招:low级别的DVWA SQL注入
以DVWA为例,进行手工注入,帮助读者了解注入原理和过程. 1.启动docker,并在终端中执行命令: docker ps -a docker start LocalDVWA docker ps 执行 ...
随机推荐
- MONO x64 amd_x64
SharpPcap 是一个.NET 环境下的网络包捕获框架,基于著名的 pcap/WinPcap 库开发.提供了捕获.注入.分析和构建的功能,SharpPcap 还是一个跨平台的库,可以在Mono/. ...
- Mono+Jexus部署C# MVC的各种坑
如果你看到这篇文章,先别急着动手,过完一遍,确定是你要的再动手. 别人提到的这里不赘述,只说查了好久才知道的. 1号坑:System.IO.FileNotFoundException Could no ...
- 入园记------我的DBA之路
今天周一拖着疲惫的身躯 11点才离开公司,回到家估计写完这篇博客就要17号了. 一个人走在回家的路上,很黑,突然很多感触,一个人在北京拼搏,不敢停止学习的脚步,因为只要停下来就会感觉到孤独. 回顾一下 ...
- 当前端也拥有 Server 的能力
今天看了不少文章,比较感兴趣的是 Cache API.它是浏览器 Request/Response 的缓存管理工具,其使用风格和运用场景让我瞬间联想到了 ServiceWorker 和 Fetch A ...
- 检验你的前端基础——Sit the test
前端小学生向大家推荐一个网站:Sit the test.如果你是一名前端工程师或者立志于此,不妨试试此网站上面的测验题. 发现 十几天前,我在奇舞周刊的一篇文章中,发现了一个国外的技能测试网站:Sit ...
- Android动态改变布局
遇到这么个需求,先看图: 其实是一个软件的登录界面,初始是第一个图的样子,当软键盘弹出后变为第二个图的样子,因为登录界面有用户名.密码.登录按钮,不这样的话软键盘弹出后会遮住登录按钮(其实之 ...
- ios 常见问题解决
一,libxml/HTMLparser.h file not find 第一种方法: 点击左边项目的根目录,再点击右边的Build Settings,手工输入文字:“Header search pat ...
- spring mvc DispatcherServlet详解之前传---FrameworkServlet
做项目时碰到Controller不能使用aop进行拦截,从网上搜索得知:使用spring mvc 启动了两个context:applicationContext 和WebapplicationCont ...
- SpringMVC一路总结(一)
SpringMVC听闻已久,早在去年就被学长问到关于SpringMVC的基础知识,当时也没在意.主要是工作中也没有用到关于SpringMVC的技术,因此免于没有时间和精力的借口就没有接触和学习Spri ...
- 【分布式】Zookeeper客户端
一.前言 前篇博客分析了Zookeeper的序列化和通信协议,接着继续学习客户端,客户端是开发人员使用Zookeeper最主要的途径,很有必要弄懂客户端是如何与服务端通信的. 二.客户端 2.1 客户 ...