SQL注入(dvwa环境)
首先登录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环境)的更多相关文章
- 搭建sql注入实验环境(基于windows)
搭建服务器环境 1.下载xampp包 地址:http://www.apachefriends.org/zh_cn/xampp.html 很多人觉得安装服务器是件不容易的事,特别是要想添加MySql, ...
- 2019-9-9:渗透测试,docker下载dvwa,使用报错型sql注入dvwa
docker下载dvwa镜像,报错型注入dvwa,low级 一,安装并配置docker 1,更新源,apt-get update && apt-get upgrade &&am ...
- PHP代码审计】 那些年我们一起挖掘SQL注入 - 1.什么都没过滤的入门情况
0x01 背景 首先恭喜Seay法师的力作<代码审计:企业级web代码安全架构>,读了两天后深有感触.想了想自己也做审计有2年了,决定写个PHP代码审计实例教程的系列,希望能够帮助到新人更 ...
- 【转载】sql注入之入门
原文在:https://smelond.com MySql基础语法 mysql无非就是增删改查 mysql数据库结构: 数据库 test,test1 表名 admin,manage 数据 id,use ...
- 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 1.什么都没过滤的入门情况
0x01 背景 首先恭喜Seay法师的力作<代码审计:企业级web代码安全架构>,读了两天后深有感触.想了想自己也做审计有2年了,决定写个PHP代码审计实例教程的系列,希望能够帮助到新人更 ...
- 基于dvwa环境下级别为low的SQL手工注入教程
基于dvwa环境下级别为low的SQL手工注入教程: 首先是进入已搭建好的dvwa环境中去(一定要搭建好dvwa环境才能进行下面的操作),这可能会是一些初学者所面临的的第一个问题,比如我,曾为了寻找这 ...
- 通过BurpSuite和sqlmap配合对dvwa进行sql注入测试和用户名密码暴力破解
0x1 工具和环境介绍 dvwa:渗透测试环境 BurpSuite:强大的WEB安全测试工具 sqlmap:强大的sql注入工具 以上工具和环境都在kali linux上安装和配置. 0x2 步骤说明 ...
- DVWA学习之SQL注入
DVWA学习之SQL注入 环境工具 dvwa 1.9 phpstudy firefox burpsuite 实验步骤 一.设置安全级别为LOW 1. 登录DVWA,并将安全级别设置为LOW 2. 进入 ...
- DVWA漏洞演练平台 - SQL注入
SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,具体来说,它是利用现有应用程序将(恶意的)SQL命令注入到后台数据库引擎执 ...
随机推荐
- Linux命令实例功能笔记
ls命令 ls对文件mtime时间进行排序 降序: ls -lt | grep '^-' 升序: ls -ltr | grep '^-' seq命令 求1000以内所有偶数的和 ech ...
- oracle sql 游标的简单用法(tip:sql中两个单引号表示一个单引号)
--游标遍历某个字段 (打印出来) declare res_sql varchar2(2000); cursor cur is select f_dcnam ...
- PHP类名获取的几种方式及单例模式实现
参考:https://www.cnblogs.com/water0729/p/5803217.html <?php class foo { static public function test ...
- vue作用域 this
设计到异步 function 回调的.this指向 需要用内部代替this 如果是箭头符号写法 就不需要 this永远是当前vue实例
- 《Java程序设计》第一周学习记录(1)
目录 Windows安装JDK.Git Linux下安装JDK.Git.IDEA 参考资料 Windows安装JDK.Git 到官网直接下载JDK,双击安装程序就正常安装就行了. 下载完以后,可以看到 ...
- visual studio Lua 调试
BabeLua是一款基于VS (简称VS)的免费开源的Lua集成开发环境,在Lua编辑和调试方面,具有如下功能和特性: ●Lua语法高亮 ●语法检查 ●自动补全 ●一键注释 ●格式化代码 ●自定义代码 ...
- 带下拉列表的TextBox
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- iOS 崩溃分析
崩溃统计分析,在APP中是非常常见一种优化APP,发现APP的BUG的方式. 1.异常处理 可通过try catch 方式处理,如果发生异常,会走catch ,最终走fianlly.对一些我们不想他崩 ...
- JAVA编程思想学习笔记3-chap7-9-斗之气3段
1.子类构造器会自动调用基类的默认构造器,如果为有参数构造器,则需要手动调用 ①this(args):调用本类中的其它构造器(只能调用一次) ②super(args):调用基类带参数的构造器 2.组合 ...
- export,import ,export default 彻底弄痛
ES6模块主要有两个功能:export和import 说白了就是一个淡出一个导入,就相当于以前的公共js样,哪个页面要用,就script 引入这个js ,然后 无耻的调用这个js中的方法了. ex ...