资讯详情

1-9DCL语言与提权逻辑

(1)DCL语言的数据控制

主要是DBA管理权限的使用,包括如何授权和回收权限。对于注入者来说,注入的目标之一是提高权限,从而扩大我们获取数据的能力和控制范围。此外,我们可以授权具有较高权限的临时账户或现有账户,但权限范围相对较小。我们可以提高它,这既隐藏又实现目标。

我们输入mysql hxf

在这里插入图片描述

首先,我们需要从数据库字典中找出哪些用户,哪些用户可以使用

mysql.user是mysql用户字典,select host,user,password from mysql.user;

我们可以看到当前的中,root没有密码,对root没有密码往往是我们忽略的一部分,这也是我们需要注意的。如果密码是空的,我们应该把它放在密码里。如果我们不放密码,我们应该删除它,

授权我们使用的超级管理用户grant,我们使用所有权限all privileges,是所有权限,授权限是针对所有权限的,所以使用on,星代表数据库,*.*在所有数据库下代表任或其他对象,授权给谁,to一个admin,admin它通常是管理员的账户,目前我们没有admin,使用admin比较隐秘,@目的是从那里登录,输入%,表示可以从任何地方登录,并验证密码identified,by ‘abc所以我们在任何数据库中创建了一个,在任何表对象下,都有所有权admin帐户,它可以从任何地方登录,密码是abc,回车,grant all privileges on *.* to admin@'%' identified by 'abc';

这样就成功了,我们也可以通过数据字典表找到并验证,select host,user,password from mysql.user;

我们看到它已经加入了,所以它成功地创造了一个任意的ip超级权限用户登录

让我们总结一下

授权:grant all privileges on *.* to admin@'%' identified by ‘abc’;

这种情况是授权所有权

验证:mysql -h 192.168.233.128 -uadmin -pabc

从任何地方登录意味着你可以从外网登录。当然,我们是没有外网的测试机,但我们可以验证我们打开用户窗口

在此刷新权限,flush privileges;

刷新后,我们使用它ifconfig看一下

假设inet addr是外网地址,所以我们mysql -h,h是指明登录的IP地址是那个,-u是admin,用户名是什么,-p指登录的密码是什么,abc,那么回车,mysql -h 192.168.248.137 -uadmin -pabc

登录失败,我想可能是我的系统问题,懒得做,我在这里放了几个视频的截图

我们发现它已经登录了,show databases;

我们看到了所有的数据库和表,这表明它有很高的权限

如何创建一个拥有少量权限的用户,有时我们不需要如此高权限的用户

例如,我们只输入一个select、insert水平用户,所以对于一些数据库表,我们只记录数据或查询数据,所以它不能修改和删除,因为我们的数据库操作,这是安全的

grant之后授予select、insert,on解释一下,在哪些数据库表对象中有这样的权限,*.*给谁所有的数据库,to admin2.我们仍然可以从任何地方登录密码abc,回车,grant select,insert on *.* to admin2@'%' identified by 'abc';

我们刷新权限,目的是在内存中刷新权限表,flush privileges;

好的,那么验证一下,它只是select和insert的权限,然后我们打开一个窗口验证一下,我们连接到hxf数据库,mysql -uadmin2 -pabc hxf

show tables;我们可以看到所有的表

我们也可以查询一下users2,select * from users2;

我们可以看到select,接下来,我们可以做一个insert操作,我们插入一个uid和uname,然后我们插入1和michael,insert into users2(uid,uname) select 1,‘michael’;

当我们看到它被插入时,我们也可以验证它,select * from users2;

这个是michael,但是我们想更新它,update users2 set password=123 where uid=1;

我们看到update由于没有权限,命令被拒绝了。

所以,我们总结一下

授权:grant select,insert on *.* to admin2@'%' identified by 'abc';

如果我们只授权授权,select、insert,给admin只有select、insert其他权限没有权限

验证:mysql -h 192.168.233.128 -uadmin2 -pabc

然后我们可以验证,但我们经常处理这个问题,所以有些应用程序只写日志表,只使用admin2.只有它select、insert但在成功注入我们之后,我们会发现admin它的权限相对较小,所以我们想使用它admin因为我们增加了现有账户,它可能会引起管理员的注意,而现有账户的权利,但更隐蔽

操作:insert,select,update,delete

如果我们注入成功后,我们的提权和授权操作是一致的,我们将拥有所有的权限,all privileges on *.*授权给admin我们不会修改密码,回车,grant all privileges on *.* to admin2@'%';

刷新权限,flush privileges;

我们在这里验证,update users2 set password=123 where uid=1;

exit,回出去

我们正在重新登录,mysql -uadmin2 -pabc hxf

我们正在更新一次,update users2 set password=123 where uid=1;

如果发现更新成功,说明提权后可以更新。这里可以证明我们提权的操作是成功的。

使用当前登录的管理员账户提高其他用户的权利

备用账户提权:grant all privileges on *.* to admin2@'%';(提权)

1.DCL语言与授权,注入提权应用

标签: dcl光伏电抗器三相功率电感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台