网络系统管理比赛,成都网站建设优化公司,怎样申请微信小程序开店,设计公司注册资金多少合适实验9 基于WebGoat平台的SQL注入攻击
1.实验目的 熟悉WebGoat平台#xff0c;在该平台上实现SQL注入攻击。 2.实验内容 #xff08;1#xff09;下载webgoat-server-8.2.2.jar。 #xff08;2#xff09;搭建java环境。 #xff08;3#xff09;运行webgoat。 #xf…实验9 基于WebGoat平台的SQL注入攻击
1.实验目的 熟悉WebGoat平台在该平台上实现SQL注入攻击。 2.实验内容 1下载webgoat-server-8.2.2.jar。 2搭建java环境。 3运行webgoat。 4实施SQL注入攻击。 3.实验步骤 将实验过程及运行结果截图放入实验报告中 启动webgoat 第九题
第十题
第十一题
第十二题
第十三题
4.实验思考 1举例说明SQL 注入攻击发生的原因。 SQL注入攻击发生的原因通常在于应用程序对用户输入的处理不当未能正确区分用户输入的数据和SQL代码。 假设有一个简单的Web应用程序它使用以下PHP代码来根据用户提供的用户名查询数据库中的用户信息 ?php $username $_GET[username]; // 从URL获取用户输入的用户名 $query SELECT * FROM users WHERE username $username; $result mysqli_query($connection, $query); ? 在这个例子中如果用户通过URL提供以下输入 http://example.com/search.php?username OR 11 那么拼接后的SQL查询将变成 SELECT * FROM users WHERE username OR 11 由于条件’1’1’总是为真这个查询将返回users表中的所有记录而不仅仅是具有指定用户名的记录。这就是一个典型的SQL注入攻击示例它利用了应用程序对用户输入处理不当的漏洞。
2从信息的CIA 三要素机密性、完整性、可用性出发举例说明SQL 注入攻击造成的破坏。 一、机密性破坏 案例攻击者可以通过构造恶意的SQL语句绕过正常的身份验证和授权机制获取到未经授权的数据。例如攻击者可能通过拼接字符串使得SQL语句中有条件永远为真从而无需判断其他条件就能查看数据库里全部人的信息。这些信息可能包括用户账号、密码、个人资料等敏感数据。 二、完整性破坏 案例攻击者可以通过修改查询条件或执行恶意的更新语句来篡改数据库中的数据。例如攻击者可以在SQL语句执行的时候更改其他数据如将某用户的salary修改为$100或者删除某些重要记录这将破坏数据的完整性并可能影响业务流程的正常运作。 三、可用性破坏 案例攻击者可以通过发送恶意的SQL查询或指令消耗数据库系统的资源导致其无法正常响应合法用户的请求。例如攻击者可以通过注入恶意的SQL代码来删除数据库中的重要表或数据或者通过注入恶意代码来使数据库服务器崩溃或拒绝服务。这将导致数据库系统的服务不可用从而影响系统的正常运行和用户的正常使用。
3通过表单输入用户名来查询特定用户信息写出获得表格中所有用户信息的SQL语句。
SELECT * FROM user_data WHERE first_name John AND last_name Smith or 11 ;4如果想修改“Bob”用户的salary为$100应该写怎样的SQL语句
SELECT * FROM employees WHERE last_name sadf AND auth_tan ;update employees set salary 100 where first_name ‘Bob’and last_name ‘Brant;5如果想破坏employees的可用性应该写怎样的SQL语句
SELECT * FROM user_data WHERE login_count ; drop table access_log; 6怎样预防和避免SQL 注入攻击。 严格输入验证对用户输入的数据进行严格验证确保其符合预期格式和范围。使用正则表达式或其他验证工具来检查输入数据的有效性。 输入过滤过滤掉用户输入中的特殊字符和潜在的危险字符如单引号、双引号、分号等。 预编译SQL语句使用预编译的SQL语句和参数绑定技术将用户输入作为参数传递给SQL语句而不是直接拼接到SQL语句中。 存储过程在可能的情况下使用存储过程来执行数据库操作。 限制数据库用户权限确保数据库用户只具有执行必要操作的最低权限。避免使用具有超级用户权限的数据库账户来运行应用程序。 应用程序与数据库分离将应用程序与数据库服务器分离通过中间层或API进行通信。