web安全漏洞-SQL注入攻击实验

这篇具有很好参考价值的文章主要介绍了web安全漏洞-SQL注入攻击实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验目的

  • 学习sql显注的漏洞判断原理
  • 掌握sqlmap工具的使用
  • 分析SQL注入漏洞的成因

实验工具

  • sqlmap是用python写的开源的测试框架,支持MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,Firebird,Sybase,SAP,MAXDB并支持6种SQL注入手段。

    实验内容

SQL注入(SQL Injection )

  • SQL注入攻击的产生 当应用程序使用输入内容来构造动态SQL语句以访问数据库时,会发生SQL注入攻击。 如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生SQL注入。

  • SQL注入漏洞的本质是把用户输入的数据当做代码来执行,违背了数据与代码分离的原则。

  • SQL注入漏洞有两个关键条件,理解这两个条件可以帮助我们理解并防御SQL注入漏洞:

    • 用户能控制输入的内容

    • Web应用执行的代码中,拼接了用户输入的内容

实验步骤

本次实验中,我们先手工发现注入点,再使用sqlmap工具来注入。

步骤1:SQL注入漏洞验证

本步利用手工发现sql显注

什么是sql显注:在sql注入的漏洞分类中,如果程序员没有对数据库的报错进行过滤,那么数据库所以产生的错误信息将呈现给前台的用户。当我们进行测试时,通过报错信息来证明用户的输入传递至数据库,此种漏洞的类型即为sql显注。

首先我们输入在浏览器中打开目标机网址172.16.12.2进入漏洞验证平台,登录用户名为admin,密码 password,是个典型的弱密码。

在右侧下方的DVWA Secruty设置中,将DVWA漏洞演示环境的安全级别设置为Low级别。

来到SQL Injection 显注的页面。

步骤2 :手工判断注入点

看到他的user ID 是可以随意输入的

输入1的情况下返回的页面情况(网站正常的访问策略)

sql注入漏洞攻击实验,渗透测试学习,web安全,sql,安全

如果尝试输入1‘的情况下返回错误页面

sql注入漏洞攻击实验,渗透测试学习,web安全,sql,安全

我们发现页面中报错是直接返回数据库的报错信息,至此可以断定此页面存在sql注入,并且为显注模式。

步骤3:使用sqlmap

本步骤将使用sqlmap对目标注入点进行扫描

sqlmap简介: sqlmap是一个开源的渗透测试工具,可以自动检测和利用SQL注入漏洞。并且它拥有一个强大的检测引擎,在安全人士眼中,这是一款必备的安全工具。

sqlmap常用选项:

  • -u "url" 指定要测试的网页URL,常用于get类型的url测试。
  • --cookie="cookie值“ 指定测试链接时所使用的cookie,常用于需登录后方能访问的页面。
  • -p 指定存在注入点的参数,可提高sqlmap的检测效率。
  • -r 从文件读取数据

准备工作1:我们需要启动burpsuite工具

准备工作2:我们需要将浏览器的代码配置为 127.0.0.1 端口 8080

  • 浏览器 “首选项”---->“高级” ---->“网络”---->"连接" “设置” ---->填入代理地址后保存退出即可。

    如果配置成功,我们DVWA页面,我们将看到burpsuite的proxy选项卡中,成功的抓取到HTTP请求。 并且我们能看到一行对本次试验非常重要地方:PHPSESSID=xxxxx,security=low

sql注入漏洞攻击实验,渗透测试学习,web安全,sql,安全

至此准备工作已经全部完成,开启我们的攻击之旅啦

在burpsuite的intercept中右键,将截获的信息保存到文件中。

开启终端,使用sqlmap攻击,使用-r参数:

sql注入漏洞攻击实验,渗透测试学习,web安全,sql,安全

我们所使用的sql语句为: sqlmap -r /root/2

至此我们成功使用sqlmap对URL进行了注入测试,我们可以清晰的看到sqlmap成功的对URL进行了测试。

在输出中,成功的检测到目标主机的数据库版本、操作系统版本,PHP版本以及Apache的版本。

sql注入漏洞攻击实验,渗透测试学习,web安全,sql,安全

实验分析

  • 本步骤将针对源代码进行审计,探寻漏洞产生的原因。

<?php 
if(isset($_GET['Submit'])){
 // Retrieve data
 $id = $_GET['id'];
 $getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";
 $result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' );
 $num = mysql_numrows($result);
 $i = 0;
 while ($i < $num) {
  $first = mysql_result($result,$i,"first_name");
  $last = mysql_result($result,$i,"last_name");
  $html .= '<pre>';
  $html .= 'ID: ' . $id . '<br>First name: ' . $first . '<br>Surname: ' . $last;
  $html .= '</pre>';
  $i++;
 }
}
?>

当代码获取用户所传入的参数后,直接带入sql进行查询

在正常情况下,传输至数据库的语句为:select first_name,last_name from users where user_id='1';

而当攻击者输入1‘后,传输至数据库的语句则变成:select first_name,last_name from users where user_id='1'';

当出现了2个‘后,则前面的一个闭合了代码中的’,但多出的一个‘则会导致sql产生错误,并且直接传回至web页面。

这也是为何我们使用1’测试显注的方式。文章来源地址https://www.toymoban.com/news/detail-740556.html

到了这里,关于web安全漏洞-SQL注入攻击实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web安全 SQL注入漏洞测试.(可以 防止恶意用户利用漏洞)

    SQL注入就是 有些 恶意用户在提交查询请求的过程中 将SQL语句插入到请求内容 中,同时程序的本身对用户输入的内容过于相信, 没有对用户插入的SQL语句进行任何的过滤 ,从而 直接被SQL语句直接被服务端执行 ,导致数据库的原有信息泄露,篡改,甚至被删除等风险。 SQL注

    2023年04月20日
    浏览(51)
  • WEB安全之XSS漏洞与SQL注入漏洞介绍及解决方案

    这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,比较适合初学者观看。 对于防止sql注入发生,我在这里用简单拼接字符串的注入及参数化查询,如果大家对这个系列的内容感兴趣,可以在评论区告诉我! XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者

    2024年02月07日
    浏览(49)
  • 常见web安全漏洞-暴力破解,xss,SQL注入,csrf

    1,暴力破解 原理:         使用大量的认证信息在认证接口进行登录认证,知道正确为止。为提高效率一般使用带有字典的工具自动化操作         基于表单的暴力破解 --- 若用户没有安全认证,直接进行抓包破解。 验证码绕过                           on s

    2023年04月12日
    浏览(53)
  • 小迪安全25WEB 攻防-通用漏洞&SQL 读写注入&MYSQL&MSSQL&PostgreSQL

       #知识点:  1、SQL 注入-MYSQL 数据库  2、SQL 注入-MSSQL(SQL server) 数据库  3、SQL 注入-PostgreSQL 数据库  #详细点:  Access 无高权限注入点-只能猜解,还是暴力猜解           因为access的数据库是独立存在的,不存在统一管理 对账号密码进行猜解,此时只是获取到后台的操

    2024年02月20日
    浏览(58)
  • 【网络安全】初探SQL注入漏洞

    要想玩SQL注入,一个简单的数据交互页面是需要的,故我们用PHP做一个简易网页,有登录、注册和首页三块内容。 登录需要输入账号密码,等待提交后进入系统; 注册需要输入名字,密码,手机号,照片,等待提交后进入系统; 首页需要利用PHP和数据库联动后的查询语句,

    2024年02月16日
    浏览(43)
  • 【网络安全】「漏洞原理」(一)SQL 注入漏洞之概念介绍

    严正声明:本博文所讨论的技术仅用于研究学习,旨在增强读者的信息安全意识,提高信息安全防护技能,严禁用于非法活动。任何个人、团体、组织不得用于非法目的,违法犯罪必将受到法律的严厉制裁。 SQL 注入(SQL Injection) 是一种常见的网络攻击技术,它利用应用程序

    2024年02月06日
    浏览(50)
  • 【网络安全】「漏洞原理」(二)SQL 注入漏洞之理论讲解

    严正声明:本博文所讨论的技术仅用于研究学习,旨在增强读者的信息安全意识,提高信息安全防护技能,严禁用于非法活动。任何个人、团体、组织不得用于非法目的,违法犯罪必将受到法律的严厉制裁。 【点击此处即可获取282G网络安全零基础入门学习资源】 信息搜集在

    2024年02月06日
    浏览(50)
  • 【网络安全】SQL注入漏洞的修复建议

    SQL注入是Web应用程序常见的安全漏洞之一,攻击者通过恶意构造的SQL查询语句,成功在应用程序的数据库中执行任意操作,导致数据泄露、篡改或其他安全问题。 本篇技术博客将详细介绍SQL注入漏洞的修复建议,包括过滤危险字符和使用预编译语句,通过具体的代码案例帮助

    2024年02月06日
    浏览(52)
  • 金山终端安全系统V9.0 SQL注入漏洞复现

         金山终端安全系统是一款为企业提供终端防护的安全产品,针对恶意软件、病毒和外部攻击提供防范措施,帮助维护企业数据和网络。     金山终端安全系统V9.0 /inter/update_software_info_v2.php页面存在sql注入漏洞,该漏洞是由于金山终端安全系统未对用户的输入进行有效的

    2024年02月08日
    浏览(37)
  • 天擎终端安全管理系统clientinfobymid存在SQL注入漏洞

    产品简介 奇安信天擎终端安全管理系统是面向政企单位推出的一体化终端安全产品解决方案。该产品集防病毒、终端安全管控、终端准入、终端审计、外设管控、EDR等功能于一体,兼容不同操作系统和计算平台,帮助客户实现平台一体化、功能一体化、数据一体化的终端安全

    2024年02月03日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包