工控安全职业证书技能实践:工控网络中的数据库漏洞挖掘.docxVIP

  • 12
  • 0
  • 约1.71千字
  • 约 5页
  • 2022-07-12 发布于江西
  • 举报

工控安全职业证书技能实践:工控网络中的数据库漏洞挖掘.docx

工控网络漏洞修复 课程级别 信息安全专业工业互联网安全方向 实验概述 此实验目的是能够挖掘工控网络中存在的漏洞,并对发现的漏洞提出修复方法。 实验目标 实现工控网络中的数据库漏洞挖掘 提出数据库漏洞修复方案 预备知识 熟悉漏洞挖掘的基础知识和漏洞修复的基础方法 建议课时数、 4个课时 实验环境准备 1. PHP study(php5,mysql5.7,apache2.4) 2.sqli-labs 3. windows 10 实验步骤 某电力监控系统的网络系统中,管理网站使用的数据库为Mysql数据库。近日,工作人员发现数据库中的信息遭到篡改,因此邀请你对其进行渗透测试。要求你能通过测试发掘漏洞,并针对数据库漏洞提出修复方案。 任务一 搭建模拟环境 ①搭建数据库环境,以此模拟工控网络中的Mysql数据库 把下载好的sqli-labs放入PHP study安装目录下的WWW文件夹中,打开PHP study,在首页中启动apache、MySQL,如下图: 进入网站页面中,单击操作下的管理更改PHP的版本,如图: 配置好后,即可进入主页: /sqli-labs/。 任务二 对数据库进行漏洞检测 ①安装好环境后,在浏览器进入网站: /sqli-labs/Less-24/index.php 该环境中已有一个账号:admin,密码是admin。登录后如图 退出当前账号,新建一个账号:admin’#,密码是123456。 登录admin’#后如图。 在下方可以更改密码,现将admin’#的密码改为456789。然后再登录admin账号。用原来的密码登录如图: 修改后的密码:456789登录如图: 更改密码时,SQL语句如下: UPDATE users SET PASSWORD=’$pass’ where username=’$username’ and password=’$curr_pass’ UPDATE users SET PASSWORD=’123456’ where username=’admin’#’ and password=’$curr_pass’ UPDATE users SET PASSWORD=’123456’ where username=’admin’ 如表中,#会将后面的语句注释掉,and password=’$curr_pass’被注释掉了,变成修改账号admin的密码。UPDATE是更新命令,SET设置列PASSWORD的内容,where是根据username和password。 任务三 漏洞修复方案 通过以上测试可以发现该数据库存在sql二次注入漏洞。 二次注入可以概括为一下两步: 第一步:插入恶意数据。进行数据库插入数据时,对其中的特殊字符进行了转义处理,在写入数据库的时候有保留了原来的数据。 第二步:引用恶意数据。开发者默认存入数据库的数据都是安全的,在进行查询时,直接取出恶意数据,没有进一步的检验。 为保证数据库安全防止数据再次受到窃取、篡改,除了需要及时对数据库系统进行更新升级外,此处针对sql注入漏洞提出以下修复方法: 1 所有查询语句都使用数据库提供的参数化查询接口,并且参数化语句使用参数,而不是将用户输入变量嵌入SQL语句中。几乎所有当前的数据库系统都提供参数化的SQL语句执行接口。使用此接口可以有效地防止SQL注入攻击。 2 对进入数据库的特殊字符(’”*;等)进行转义处理,或编码转换。 3 严格限制网站用户数据库的操作权限,并向该用户提供只能满足其工作要求的权限,从而最大程度减少注入攻击对数据库的危害。 4 阻止网站显示SQL错误消息,例如类型错误,字段不匹配等,以防止攻击者使用这些错误消息进行判断 5 设置防注入的帐号。将防注入的账号设置的很象管理员,如 admin,以制造假象吸引软件的检测,将密码设置成大于千字以上的中文字符,迫使软件分析账号的时候进入全负荷状态甚至资源耗尽而死机。

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档