首页 > 数据库 >SQL注入

SQL注入

时间:2024-12-29 19:09:42浏览次数:3  
标签:数据库 SQL sql 源代码 单引号 输入 注入

SQL注入

基于web程序中将用户输入数据未经过滤直接带入数据库中查询,导致可以拼接执行构造的SQL语句。

在以sqlilabs靶场的第一关为例

需要了解的:在url中?通常表示传递参数

进去之后是这个样子

image-20241225211243658

按照要求输入id

http://127.0.0.1/sqlilabs/Less-1/?id=1

输入之后访问得到一个用户名和密码

image-20241225211410521

这里可以把1改为2看看发生了什么

image-20241225211438325

很明显的,用户名和密码都变了,因此实际上前端是把输入的指令带入到后端的sql库里面进行了查询的。

本来有一串源代码改了之后可以做到实时看输入的sql语句的

echo '执行的sql语句为:'.$sql; echo '<br/>'; echo '<br/>';

这里不知道为什么没搞出来

但是没有很大的影响

我们在后面再输入一个单引号‘

界面报错

image-20241225212730224

这个%27我当时实际上时输入的单引号

那么看源代码

image-20241225212859317

我们输入的单引号实际上是与源代码中的id前面的单引号配合了,所以导致原有的单引号失去作用,这就是sql注入。

利用这个特性,我们可以做到注释后面的内容之后自由查询数据。

漏洞危害
SQL注入漏洞对于数据安全的影响:

数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。
网页篡改:通过操作数据库对特定网页进行篡改。
网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
服务器被远程控制,被安装后门:经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
破坏硬盘数据,瘫痪全系统。

如何挖掘:

可以像上面的一样,我们先尝试输入数据进行交互,如何观察是否具有sql注入特点。

这篇文章主要是进行一个sql初步了解,同时是为了配合xray与burp进行漏洞自动化挖掘,或者是进行web渗透,总之没啥好讲的,本文主要是参考csdn上一篇大佬的文章

这是链接

笔记就酱

标签:数据库,SQL,sql,源代码,单引号,输入,注入
From: https://www.cnblogs.com/w0e6x-hiahiahia-go/p/18639420

相关文章

  • JAVA连接MYSQL数据库实现查询
    准备驱动(1)查看数据库版本号(2)根据数据库版下载对应版本驱动驱动下载网址:MySQL::DownloadMySQLConnector/J(ArchivedVersions)若没有则选择接近自己版本的低版本。说明:......
  • 【Nginx应用】nginx stream模块代理MySQL
    其实使用开发机器的nginx一样可以代理数据库,从而实现办公网访问数据库。一、stream模块介绍Nginx的TCP/UDP代理功能的模块分为核心模块和辅助模块。核心模块stream需要在编译配置时增加“--with-stream”参数进行编译【但是我测试的时候,我的开发机并不是这么安装的,直接yumiins......
  • PostgreSQL中FIRST_VALUE、LAST_VALUE、LAG 和 LEAD是窗口函数,允许返回在数据集的特
    在PostgreSQL中,FIRST_VALUE、LAST_VALUE、LAG和LEAD是窗口函数(windowfunctions),它们允许你在数据集的特定窗口(或分区)内访问行的相对位置。以下是对这些函数的详细解释和用法:1.FIRST_VALUEFIRST_VALUE函数返回在指定窗口或分区内的第一行的值。它常用于获取每个组的起......
  • PostgreSQL 数据库连接
    title:PostgreSQL数据库连接date:2024/12/29updated:2024/12/29author:cmdragonexcerpt:PostgreSQL是一款功能强大的开源关系数据库管理系统,在现代应用中广泛应用于数据存储和管理。连接到数据库是与PostgreSQL进行交互的第一步,这一过程涉及到多个方面,包括连接的基本......
  • 如何正确开启3306端口以允许外部访问MySQL数据库
    问题描述:我正在尝试配置云服务器上的MySQL数据库,使其能够接受来自外部网络的连接请求。但是,当我试图开放3306端口时遇到了困难。请问应该怎样正确地开启这个端口?需要注意哪些事项?解决方案:您好,针对您想要开启3306端口以允许外部访问MySQL数据库的需求,我们整理了一份详细的指南供......
  • 如何解决MySQL数据库导入时出现500错误?
    MySQL数据库在导入过程中出现500错误通常是由于多种原因引起的。以下是详细的排查步骤和解决方案,帮助您顺利导入SQL文件:检查文件大小和服务器配置:如果SQL文件过大,可能会导致超时或内存不足的问题。您可以尝试分批导入较小的SQL文件,或者增加服务器的内存和超时设置。对于较大......
  • emoji在mysql中存储失败的问题(mysql字符集替换)
    mysql字符集需要utf8mb4才能支持emoji存储,因为utf8一个字符最大3字节,但emoji4字节,所以需要升级成真正的UTF-8mysql的uft8最大只有3字节,是因为mysql开发认为3字节足以存储常见字符。后续的uft8mb4(mostbytes4)才是完整的4字节UTF-8修改表及所有字段的默认字符集#修改表及所有......
  • .Net Core 8 NLog连接PostgreSQL数据库
    最近在做的项目需要把日志记录到本地和数据库,我使用的是NLog,主要参考博文链接:.NET项目中NLog的配置与使用-追逐时光者-博客园,下面是NLog连接PostgreSQL数据库的步骤,网上关于NLog连接PostgreSQL数据库的实例比较少,大多数都是mysql的。1、创建Nlog.config配置文件,将下面配置文......
  • 恢复 MySQL 数据库后小工具无法响应
    在恢复MySQL数据库后,如果遇到小工具无法响应的问题,可能是由于数据库结构或数据完整性受到影响,或者是前端与后端之间的通信出现了问题。以下是详细的排查步骤和解决方案,帮助您恢复小工具的正常功能。确认数据库恢复成功:确保数据库恢复过程顺利完成,所有表和数据均已正确导入......
  • 安装mysql
    vim/etc/my.cnf配置文件如下[mysqld]bind-address=0.0.0.0port=3306#mysql端口号user=rootbasedir=/usr/local/app/mysql#mysql安装目录datadir=/usr/local/app/mysql/data#数据存放目录socket=/tmp/mysql.socklog-error=/usr/local/app/mysql/log/mysqld.log--......