Sql注入---基础

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结

一.Sql注入概述

        攻击者通过构造恶意的SQL查询语句,将其注入到应用程序的数据库查询中,以执行未经授权的操作或者获取敏感信息。

        假设如下场景,当你想要知道对方实际年龄时碍于某些原因无法直接询问对方实际年龄时,可以通过询问对方的学历,年级等信息倒推出对方的实际年龄,Sql注入原理类似。 

二.Sql注入原理 

        用户通过前端页面输入数据时不受限制(如:输入网址,账户/密码等);后端服务器程序会将前端输入的内容拼接成SQL语句并在数据库中执行;数据库会将SQL语句执行结果返回给后端程序,后端服务器再根据数据库返回结果返回给前端页面一个回显信息(如:密码错误,404等)

        若此时黑客在前端页面输入一些有目的的SQL语句,可能会导致后端程序拼接出一些危险的SQL语句(如:查询用户密码,删库等)在数据库中执行。

举个例子:

常见前端页面输入如下:

 后端拼接SQL语句如下:

 由于输入的用户密码不正确,数据库无法执行,后端会回显账号密码不正确

黑客前端页面输入:

后端拼接SQL语句:、

 上述恶意SQL语句能够查出数据,从而能够绕开登录限制成功登录。

三.Sql注入逆向分析

Sql注入分类

按照查询字段:

  • 字符型:当注入的参数为字符串时,称为字符型。
  • 数字型:当输入的参数为整型时,可以认为是数字型注入。
  • 判断标准:数字类型的sql语句可被运算后执行,而字符型不可、例如。id=1的sql查询结果是aa,id=2的查询结果是bb,设sql注入:id=2-1.若查询结果是aa即为数字型,反之是字符型       

按照注入方法:

  • Union注入,报错注入,布尔注入,时间注入

Sql注入点

        SQL注入点就像是一个漏洞,可以让坏人通过输入一些特殊的东西,像是代码或者指令,让数据库做一些不该做的事情。

        举个例子吧,假设你在一个网站上登录账户,输入用户名和密码来登录。但是如果这个网站没有做好安全措施,坏人可能会在登录框里输入一些奇怪的代码,这样就可以让数据库做一些坏事,比如获取其他用户的密码,甚至是删除一些重要的数据。

Sql 语句闭合方式判断

Sql 语句闭合方式分类:

  • 单引号:‘ /  ’)
  • 双引号:" " / " ")

我们可以通过在URL输入栏中使用布尔

举个例子:

#后端程序根据URL拼接出SQL语句在数据库中执行,报错原因如下
''2'' LIMIT 0,1' at line 1

报错原因分析:
URL中的2'使原先可被执行的SQL语句中两两对称四个单引号的变为5单个引号从而导致SQL语句执行失败,由此可到推出后端程序拼接出的SQL语句闭合方式是单引号闭合

 闭合的作用:

手工提交闭合符号,结束前一段查询语句,后面即可加入其它语句,查询需要的参数。不需要的语句可以使用"--+"注释掉

#使用--+注释多余语句:2'--+
报错SQL语句:''2'' LIMIT 0,1' at line 
使用--+后SQL语句变为:''2'' 即--+会将LIMIT 0,1'注释掉从而是恶意的SQL语句成功执行

Union联合注入

 sql注入中可以利用union查询需要前后列数一致的原则

#union联合查询语法
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;

Union联合注入案例: 

#SQL注入语句:
http://192.168.100.10/sql/Less-1/index.php?id=1' union select database()--+
#报错语句:
The used SELECT statements have a different number of columns
#报错语句分析:
由http://192.168.100.10/sql/Less-1/index.php?id=1'拼接出的SQL语句查询出的列数
和SQL注入union联合注入语句:union select database()--+ 查询出的列出不一致

SQL语句解析:select database():查询数据库的名字 -->该语句仅查询一列数据即数据库名字

 如何判断正常拼接出的SQL语句查询出的列数?

可以使用group by /order by 语句

#group by 语法:
SELECT grade, COUNT(*) as num_of_students
FROM students
GROUP BY grade;

#这个查询将会返回每个成绩分数段以及在该分数段内的学生人数。

​​​​​​​

#成功执行的sql注入语句:
http://192.168.100.10/sql/Less-1/index.php?id=1' group by 1--+
http://192.168.100.10/sql/Less-1/index.php?id=1' group by 2--+
http://192.168.100.10/sql/Less-1/index.php?id=1' group by 3--+
#未成功执行的SQL语句:
http://192.168.100.10/sql/Less-1/index.php?id=1' group by 4--+

逆向分析结果:
 group by 1--+:正常拼接SQL语句查询出的数据含有"1"这个列名
 group by 2--+:正常拼接SQL语句查询出的数据含有"2"这个列名
 group by 3--+:正常拼接SQL语句查询出的数据含有"3"这个列名

 group by 4--+:正常拼接SQL语句查询出的数据不含"4"这个列名

综上判断:正常拼接出的SQL语句共查出3列数据

总结

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

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

相关文章

双端队列的插入与删除操作的实现及其时间复杂度分析

双端队列(deque,全称为double-ended queue)是一种支持在两端插入和删除元素的数据结构。与栈和队列不同,双端队列提供了更加灵活的操作方式。在实现双端队列时,我们可以采用数组作为底层数据结构,以保证插入和删除操作的时间复杂度为O(1)。 一、双端队列的基本概念 双…

《QT实用小工具·四》屏幕拾色器

1、概述 源码放在文章末尾 该项目实现了屏幕拾色器的功能,可以根据鼠标指定的位置识别当前位置的颜色 项目功能包含: 鼠标按下实时采集鼠标处的颜色。 实时显示颜色值。 支持16进制格式和rgb格式。 实时显示预览颜色。 根据背景色自动计算合适的前景色…

Artplayer视频JSON解析播放器源码|支持弹幕|json数据模式

全开源Artplayer播放器视频解析源码,支持两种返回模式:网页播放模式、json数据模式,json数据模式支持限制ip每分钟访问次数UA限制key密钥,也可理解为防盗链 ,本播放器带弹幕库。 运行环境 推荐使用PHP8.0 redis扩展…

【每日跟读】常用英语500句(400~500)

【每日跟读】常用英语500句 Where can I buy a ticket? 在哪里能买到票? When is the next train? 下趟火车什么时候到? Thank you so much for helping me move yesterday. 非常感谢你昨天帮我搬家 I’m feeling a little under the weather toda…

专升本-信息安全

信息安全: 1.信息安全的基本属性:保密性,完整性,可用性 信息本身的安全是指保证信息的保密性(非授权用户不能访问信息),完整性(信息正确,完整,违背篡改&…

从0开始搭建基于VUE的前端项目

准备与版本 安装nodejs(v20.11.1)安装vue脚手架(vue/cli 5.0.8) ,参考(https://cli.vuejs.org/zh/)vue版本(2.7.16),vue2的最后一个版本 初始化项目 创建一个git项目(可以去gitee/github上创建&#xff…

CVE-2023-4427:Out-of-bounds access in ReduceJSLoadPropertyWithEnumeratedKey

文章目录 前言环境搭建for-in && enum cache漏洞分析漏洞利用总结参考 前言 之前分析调试漏洞时,几乎都是对着别人的 poc/exp 调试,感觉对自己的提升不是很大,所以后面分析漏洞时尽可能全面分析,从漏洞产生原理、如何稳定…

亚马逊测评新策略:解决底层环境防关联,提升下单成功率

对于做测评的环境系统,确保稳定性和成功率是非常重要的。市面上有各种环境方案,如虚拟机、模拟机、gcs、云手机、VPS等。然而,这些方案不仅成本高,而且成功率很低。因此,一个好的环境系统是成功的基础。 亚马逊平台的…

zabbix分布式监控实战

zabbix分布式监控实战 架构 组件 zabbix-server:负责接收agent发送的数据 zabbix-agent:部署在被监控主机上,负责被监控主机的数据并将数据发送给zabbix-server zabbix-database:存储所有zabbix配置信息,监控数据 …

(C语言)fread与fwrite详解

1. fwrite函数详解 头文件&#xff1a;stdio.h 函数有4个参数&#xff0c;只适用于文件输出流 作用&#xff1b;将从ptr中拿count个大小为size字节的数据以二进制的方式写到文件流中。返回写入成功的数目。 演示 #include <stdio.h> int main() {FILE* pf fopen(&qu…

微信小程序如何进行npm导入组件

文章目录 目录 文章目录 前言 一、安装node 二、微信小程序通过npm安装组件&#xff08;以Vant-weapp为例&#xff09; 一、Vant-weapp下载 二 、修改 app.json 三 、修改 project.config.json 四 、 构建 npm 包 前言 微信小程序使用npm导入有很多的教程&#xff0c;我…

MySQL开窗函数

测试环境&#xff1a;mysql8.0.18 官方文档&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/window-functions.html 一、窗口函数介绍二、语法结构三、自定义窗口1.rows&#xff08;重点&#xff09;2.range3.默认窗口 四、常用窗口函数示例1.row_number & rank &…

书生·浦语训练营二期第一次笔记

文章目录 书生浦语大模型全链路开源体系视频笔记Intern2模型体系 训练数据集书生浦语全链条开源开放体系开放高质量语料数据预训练微调中立全面性能榜单大模型评测全栈工具链部署 书生浦语大模型全链路开源体系-Bilibili视频InternLM2技术报告&#xff08;中文&#xff09;Inte…

python多方式操作elasticsearch介绍

python多方式操作elasticsearch介绍 1. requests模块操作ES ​ requests 是一个 Python HTTP 库&#xff0c;它简化了发送 HTTP 请求和处理响应的过程。通过 requests 模块&#xff0c;开发人员可以轻松地与 Web 服务进行通信&#xff0c;包括获取网页内容、执行 API 请求等。…

【Docker】搭建安全可控的自定义通知推送服务 - Bark

【Docker】搭建安全可控的自定义通知推送服务 - Bark 前言 本教程基于绿联的NAS设备DX4600 Pro的docker功能进行搭建。 简介 Bark是一款为Apple设备用户设计的开源推送服务应用&#xff0c;它允许开发者、程序员以及一般用户将信息快速推送到他们自己的iPhone、iPad等设备上…

webGIS 之 智慧校园案例

1.引入资源创建地图 //index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&qu…

表单元素使用

表单元素使用 要完成的效果:代码实现: 要完成的效果: 代码实现: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

nginx与tomcat的区别?

关于nginx和tomcat的概念 网上有很多关于nginx和tomcat是什么东西的定义&#xff0c;我总结了一下: tomcat是Web服务器、HTTP服务器、应用服务器、Servlet容器、web容器。 Nginx是Web服务器、HTTP服务器、正向/反向代理服务器&#xff0c;。 这里有两个概念是交叉的&#xff…

DolphinScheduler on k8s 云原生部署实践

文章目录 前言利用Kubernetes技术云原生平台初始化迁移基于Argo CD添加GitOpsDolphinScheduler 在 k8s 上的服务自愈可观测性集成服务网格云原生工作流调度从HDFS升级到S3文件技术总结 前言 DolphinScheduler 的高效云原生部署模式&#xff0c;比原始部署模式节省了95%以上的人…

微信小程序备案流程详细操作指南

自2023年9月1日起&#xff0c;所有新上架的微信小程序均需事先完成备案手续&#xff0c;方能成功上线。而对于已经上架的存量小程序&#xff0c;也需要在2024年3月31日前完成备案工作。若在规定时间内未完成备案&#xff0c;平台将依据备案相关规定&#xff0c;自2024年4月1日起…