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日
    浏览(40)
  • WEB安全之XSS漏洞与SQL注入漏洞介绍及解决方案

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年02月08日
    浏览(31)
  • 亿赛通电子文档安全管理系统 SQL注入漏洞复现

    亿赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能加

    2024年02月03日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包