网络安全-SQL注入实战

sql注入详解 目录前言? ?一、漏洞原因分析二、漏洞危害三、sql注入防范四、如何挖掘sql注入漏洞五、常见的注入手法联合查询(union注入)报错注入基于布尔的盲注基于时间的盲注HTTP头注入宽字节注入堆叠查询二阶注入六、sql注入getshell的几种方式结构化查询语言(Structured Query Language,缩写:SQL),是一种特殊的编程语言,用于数据库中的标准数据查询语言。SQL注入SQL Injection)是一种常见的Web安全漏洞,主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没 阅读详情

SQL注入简介

SQL注入是web程序对用户输入数据的合法性没有进行判断,在管理员不知情的情况下进行非法操作。攻击者可以通过提交数据库查询代码,通过程序返回的结果,获取数据库中的信息。SQL注入攻击会导致数据库风险,其中包括刷库、脱裤、撞库。它是目前最危险的Web应用程序漏洞之一。

SQL注入漏洞产生的原因是网站应用程序在编写时未对用户提交至服务器的数据进行合法性校验,即没有进行有效地特殊字符过滤,导致网站服务器存在安全风险

漏洞危害:机密数据被窃取;核心业务数据被篡改;网页被篡改;数据库所在服务器被攻击从而变为傀儡主机,导致局域网(内网)被入侵。

修复建议

在网页代码中对用户输入的数据进行严格过滤;(代码层)

部署Web应用防火墙;(设备层)

对数据库操作进行监控。(数据库层)

代码层最佳防御sql漏洞方案

采用sql语句预编译和绑定变量,是防御sql注入的最佳方法。

原因

采用了PreparedStatement,就会将sql语句: “select id, no from user where id=?” 预先编译好,也就是SQL引擎会预先进行语法分析,产生语法树,生成执行计划,也就是说,后面你输入的参数,无论你输入的是什么,都不会影响该sql语句的 语法结构了,因为语法分析已经完成了,而语法分析主要是分析 sql命令 ,比如 select ,from ,where ,and, or ,order by 等等。所以即使你后面输入了这些 sql命令 ,也不会被当成 sql命令 来执行了,因为这些 sql命令 的执行, 必须先的通过语法分析,生成执行计划,既然语法分析已经完成,已经预编译过了,那么后面输入的参数,是绝对不可能作为 sql命令 来执行的,只会被当做字符串字面值参数,所以sql语句预编译可以防御sql注入。

实战:

后台界面,最简单的方式就是在登陆后台页面

直接进行注入,系统用户,用户名可直接测试admin,一般系统管理员最常见的用户名就是admin,在添加用户名的地方输入1’,用bp抓包查看返回的参数

惊喜的发现成功报错并没有过滤掉,返回的信息是输入的SQL语法错误。这里存在注入,下面直接把抓取到的post包进行复制,存放在123.txt里。接下来直接用sqlmap进行跑,爆出如下数据库。

接下来选择数据库进行爆表,常见的工具为sqlmap,当然还有别的工具可以使用,但是个人建议

学习的时候还是以手动注入为主要手段,工具进行辅助。

Sqlmap可以直接跑出相关数据库以及相关数据,那么sql注入到底是如何完成这些操作的呢,让我们来详细解释一下sql注入的核心原理。

比如我们使用的登录接口:在登录界面包括用户名和密码输入框,以及提交按钮,输入用户名和密码,提交。

    登录时调用接口/user/login/ 加上参数username、password,首先连接数据库,然后后台对请求参数中携带的用户名、密码进行参数校验,即sql的查询过程。假设正确的用户名和密码为ls和123456,输入正确的用户名和密码、提交,相当于调用了以下的SQL语句。

SELECT * FROM user WHERE username = ‘ls’ AND password = ‘123456’

    sql中会将#及--以后的字符串当做注释处理,如果我们使用“' or 1=1 #” 作为用户名参数,那么服务端构建的sql语句就如下:

select * from users where username=‘’ or 1=1#’ and password=‘123456’

    而#会忽略后面的语句,因此上面的sql也等价于:

select * from users where username=‘’ or 1=1复制代码

    而1=1属于常等型条件,因此这个sql便成为了如下,查询出所有的登陆用户。

select * from users

    其实上面的sql注入只是在参数层面做了些手脚,如果是引入了一些功能性的sql那就更危险了,比如上面的登陆接口,如果用户名使用这个“' or 1=1;delete \* from users; #”,那么在";"之后相当于是另外一条新的sql,这个sql是删除全表,是非常危险的操作,因此 如果一个系统存在sql注入,那即可通过sql查询这个系统里面的任何数据,当然也可以修改任何数据,这对于一个系统是非常不安全的。

当然这只是最简单的sql注入实例,大部分的时候,简单的sql注入很有可能被转换掉或者被过滤。下一期介绍sql注入绕过和伪装

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]


在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]
在这里插入图片描述
在这里插入图片描述

SQL注入攻击及防御 手动注入+sqlmap自动化注入实战网络安全学习12) 1 项目实验环境 测试渗透机:kali_linux-2020 链接:https://pan.baidu.com/s/1apN96nIcs1Fyx8YmFs24Xg 提取码:32ve 目标靶机:owasp_Broken_Web_Apps 链接:https://pan.baidu.com/s/1CMJ2aERmDGlXXkhUmjDmtA 提取码:9zsj 2 SQL注入概述 2.1 SQL注入简介 在owasp年度top 10安全问题中,注入高居榜首。SQL注入攻击指的是通过构建特殊.. 阅读详情

相关推荐

网络安全漏洞挖掘入门:从零搭建靶场到实战SQL注入与XSS

网络安全漏洞挖掘是主动发现软件、系统或网络中潜在安全弱点的过程,其核心原理在于识别并利用设计或实现上的缺陷。这项技术对于构建安全防线至关重要,能够帮助开发者和运维人员提前发现风险,避免数据泄露、服务中断等安全事件。在工程实践中,掌握常见漏洞如SQL注入和跨站脚本(XSS)的挖掘方法,是建立安全思维的基础。通过搭建本地靶场环境,使用工具链进行信息收集与漏洞探测,可以在合法授权的范围内模拟攻击路径,从而提升防御能力。本文聚焦于SQL注入与XSS等高频漏洞,通过实战案例引导读者走通从漏洞发现到验证的完整流程,旨在

weixin_42706667的博客 303

网络安全实验室】SQL注入实战详情

如果额头终将刻上皱纹,你只能做到,不让皱纹刻在你的心上

1042

网络安全入门实战:从SQL注入、XSS与文件上传漏洞原理到防御

Web应用安全领域,理解基础漏洞的原理是构建安全防御体系的基石。SQL注入、跨站脚本(XSS)和文件上传漏洞作为最常见的攻击向量,其核心在于应用程序未能正确处理用户输入与代码执行之间的边界。SQL注入通过操纵数据库查询语句,实现未授权数据访问;XSS则通过在用户浏览器中执行恶意脚本,窃取会话信息或发起进一步攻击;文件上传漏洞则源于对上传文件的类型、内容及存储路径验证不足,可能导致服务器被植入后门。掌握这些漏洞的利用与防御,不仅能培养关键的“攻击者思维”,更是进行安全开发、渗透测试和漏洞挖掘的必备技能。本文

weixin_33783283的博客 311

SQL注入攻击介绍】

sql注入已知以来都稳居owasp-top10榜首,近年来更是爆出很多的数据库泄露攻击事件。今天简单的分析以下sql注入的一些特性和方式。

qq_55213436的博客 7712

SQL 注入详解:原理、危害与防范措施

SQL注入是一种常见的安全漏洞,攻击者通过在应用程序中插入恶意的SQL代码,诱使数据库执行非授权的操作。这种攻击通常发生在应用程序没有正确过滤或转义用户输入的情况下,导致攻击者能够操控数据库查询,从而获取、修改或删除数据。本文将详细介绍SQL注入的原理、常见类型、潜在危害以及防范措施,帮助开发者更好地理解和应对这一安全威胁。

2301_77163982的博客 7093

SQL注入的危害和原理

Web应用开发中,SQL注入是一种常见的安全漏洞,它允许攻击者通过注入恶意的SQL语句来执行非法操作,甚至获取敏感数据。本篇博客将详细解释SQL注入的危害和原理,并提供一些解决方案,以帮助新人快速理解并避免这种安全威胁。

weixin_53840353的博客 1250

SQL注入漏洞

SQL注入漏洞是一种常见的web应用程序安全漏洞,攻击者可利用这种漏洞来篡改或绕过应用程序的身份验证和授权机制,从而访问或控制数据库中的数据。联合注入是一种常见的针对数据库的注入攻击技术之一。在这个示例中,payload 是通过在输入参数中注入的,并且利用注入的查询条件来触发报错信息,以获取数据库的版本号。的SQL注入:攻击者可以利用应用程序中的时间函数,通过延长SQL查询的响应时间来推断SQL查询的结果。注入SQL注入:攻击者可以利用应用程序中的联合查询功能,通过修改查询来访问或修改数据库中的数据。

lin__ying的博客 1919

SQL注入之如何检测与判断详细过程:网络安全实战指南

SQL注入之如何检测与判断详细过程:网络安全实战指南 【下载地址】SQL注入之如何检测与判断详细过程 该项目深入解析SQL注入攻击的检测与判断过程,为网络安全爱好者及白帽子提供实用指南。内容涵盖从基础检测技巧到高级工具应用,包括Sqlmap的使用、自定义tamper脚本编写、Fuzz技术对抗WAF以及sqlmapApi的...

gitblog_06744的博客 369

网络安全SQL 注入实战

今天通过实战,给大家演示一下SQL注入攻击!

m0_74131821的博客 1330

网络安全实验-SQL注入实战

使用DVWA进行SQL注入实验

weixin_44431612的博客 1219

SQL进阶查询与网络安全实战:从多表关联到注入攻防

SQL(结构化查询语言)是关系型数据库的核心操作语言,其核心原理在于通过声明式语法对数据进行增删改查。掌握SQL不仅能高效管理数据,更是理解数据流动、构建安全应用架构的技术基石。在工程实践中,精准的数据过滤(WHERE子句)、多表关联查询(JOIN)以及结果集合并(UNION)是处理复杂业务逻辑的必备技能。这些技术价值在网络安全领域尤为凸显,例如在日志分析中快速定位攻击源,或在渗透测试中手工构造探测语句。本文聚焦于SQL查询的进阶操作,通过贴近实战的示例,深入解析多表关联、子查询等核心语法,并自然融入SQL

weixin_30813225的博客 365

7天掌握网络安全核心:从SQL注入到XSS的实战防御指南

网络安全是保障信息系统机密性、完整性和可用性的关键领域,其核心在于构建有效的防御体系而非单纯攻击技术。理解HTTP协议、同源策略等基础原理是Web安全的基石,而掌握SQL注入、XSS等常见漏洞的攻防机制则能直接提升代码安全性。通过预编译语句、输入输出编码等工程实践,开发者可将安全内嵌至开发流程中,显著降低数据泄露与未授权访问风险。本文聚焦SQL注入与XSS两大高频威胁,结合DVWA靶场实战,提供从环境搭建到自动化工具集成的完整学习路径,帮助开发者在日常工作中快速建立安全防护能力。

weixin_29325515的博客 347

网络安全自学教程》- SQL注入之联合注入原理+步骤+实战操作

联合注入原理解析,联合注入使用步骤

wangyuxiang946的博客 1万+

网络安全自学教程》- SQL注入之报错注入原理+步骤+实战操作

这篇文章为大家解析报错注入的实现原理,结合实战案例讲解报错注入的使用步骤。

wangyuxiang946的博客 1万+

网络安全入门:SQL注入从原理到实战

本文详细介绍了SQL注入攻击的原理、危害及防御措施。SQL注入是通过插入恶意SQL语句来欺骗数据库执行未授权操作,可能导致数据泄露、篡改甚至服务器接管。文章讲解了MySQL系统库、常用函数等前置知识,并详细解析了万能密码注入、联合查询注入、报错注入、布尔盲注和延时盲注等常见攻击手法,以及高阶注入技巧和自动化工具SQLMap的使用。最后强调所有操作必须在合法授权范围内进行,并提供了预编译语句、严格过滤等有效防御措施。全文涵盖从基础到进阶的完整知识体系,帮助读者在合规前提下学习网络安全技术。

cjianghha的博客 401

网络安全 sql注入详解(+实战网站+)

SQL 注入就是指 web 应用程序对用户输入的数据合法性没有过滤或者是判断,前端传入的参数 是攻击者可以控制,并且参 数带入数据库的查询,攻击者可以通过构造恶意的 sql 语句来实现 对数据库的任意操作。1.1sql注入的危害:1.数据库信息泄露 网页篡改:通过操作数据库对特定网页进行篡改,嵌入网马链接2.进行挂马攻击。数据库被恶意操作:数据库服务器被攻击,3.数据库的系统管理员帐户被更改。4.服务器被远程控制:黑客可以修改或控制操作系统。5.种植木马:瘫痪全系统。

afsd12_的博客 829

网络安全-sql注入实战-sql-labs(1~10)

id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='数据库名' and table_name='表名' -- +id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='数据库名' -- +3.4 爆数据 :?

weixin_65311462的博客 1410

网络安全自学教程》- SQL注入之时间盲注原理+步骤+实战操作

这篇文章为大家解析时间盲注的实现原理,结合实战案例讲解时间盲注的操作步骤以及时间误差的判断

wangyuxiang946的博客 1万+
上一篇: 小白学安全--web安全入门(非常详细)零基础入门到精通,收藏这一篇就够了
下一篇: 干货丨渗透测试常用方法总结,大神之笔!
网络安全大白
博客等级 码龄4年 7289粉丝 703原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值