当前位置: 首页 > news >正文

2025 OWASP TOP1 | 破坏性注入(Injection Attacks)

## 漏洞描述

该攻击是一种常见的安全风险,也是初学者最先接触的安全风险之一。它是一种破坏性极强的攻击方式,一旦成功,可以实现数据篡改、窃取、破坏,甚至可以实现提权、控制整个系统。

- 什么是破坏性注入?

破坏性注入是: 攻击者通过应用程序的输入字段携带恶意代码,令应用程序在执行时出现意外行为,从而实现攻击目的。

注入漏洞常常存在于 ' 应用程序对用户提交的数据不验证、不清理、不过滤 ' 的情况。漏洞发生的核心原因为:应用程序将不可信的数据交给解释器。

## 常见注入攻击

- SQL注入

攻击原理:攻击者通过在输入字段中输入恶意SQL语句,当对输入内容验证和过滤不足时,恶意SQL语句将会执行,导致数据窃取、丢失等。

- 基础型SQL注入

最简单和直接将SQL语句嵌入输入中,拼接到查询逻辑中:

输入:name:admin' OR '1'='1;password:any

SELECT * from users where name='admin' OR '1'='1' AND password='any'

"非洲打法,没有欧美打法强力,没有亚洲打法复杂,但是真的简单啊"

- UNION联合注入

通过UNION联合查询语句,将非法的查询结果与合法的查询结果合并一同返回,从而获取敏感数据。

输入:' UNION SELECT * from users --

SELECT * from projects where id='' UNION SELECT * from users --'

"想要什么自己拿"

- 错误型SQL注入

该注入为故意触发数据库的错误,从返回信息中判断表名、列名、数据。

输入:' AND 1=CONVERT(int, (SELECT @@version)) --

SELECT * from projects where id='' AND 1=CONVERT(int, (SELECT @@version)) --'

可能的输出:Conversion failed when converting the nvarchar value 'Microsoft SQL Server 2019 (RTM) - 15.0.2000.5' to data type int.从中,便可以看到SQL版本信息。

"并没有什么威胁性,如果攻防是文明6,那错误型SQL注入大概就是开局搓的侦察兵吧"

- 盲注

无法直接获取查询效果的时候,便可以尝试盲注了。盲注主要是布尔盲注,此外也存在通过时间延迟来逐步推测数据的盲注。

布尔盲注输入:' AND (SELECT 1 WHERE SUBSTRING((SELECT *database()),1,1)='t') --

SELECT * FROM users WHERE username = '' AND (SELECT 1 WHERE SUBSTRING((SELECT database()), 1, 1)='t') --'

示例注入效果:' SELECT database() ' 把数据库名取出,随后SUBSTRING部分取出第一个字符,随后判断一下这个是不是 t 。如果是 t 那么就会SELECT 1 WHERE 1。这样进行判断效率非常低,所以往往是先判断目标字段的长度,再使用BurpSuite进行Sniper攻击(逐个字符暴力猜测)。

延迟盲注输入:' AND IF(1=1, SLEEP(5), 0) --

SELECT * FROM users WHERE username = '' AND IF(1=1, SLEEP(5), 0) --'

延迟盲注可以在更极端的情况下进行,它甚至不需要返回与布尔相关的反应,只需要查看是否有延迟。

"WEB:只是在呼吸 盲注:数据GET数据GET数据GET数据GET数据GET"

- 堆叠查询注入

堆叠查询注入,其实堆叠的是语句而不是查询逻辑。核心是允许多条SQL语句同时执行。

输入:'; DROP TABLE users; --

SELECT * from users WHERE username=''; DROP TABLE users; --'

堆叠查询注入能够在原有的语句之外执行另外一个语句。但是有的插件就会避免两条语句堆叠执行,所以适用范围比较有限。但是真的强!

"绝活之所以惊艳是因为0人会用,堆叠查询注入也一样,有感觉吗"

- 存储过程注入

利用存储过程的输入参数注入恶意SQL。与上面的注入不同,存储过程注入不是利用MySQL语句,而是SQLserver语句。

输入:'; EXEC xp_cmdshell('dir'); --

EXEC LoginProcedure 'username', ''; EXEC xp_cmdshell('dir'); --'

EXEC原本的行为是:将用户输入内容,存入LoginProcedure的username。但是呢,EXEC有一个特性是,EXEC('sqlsqlsqlsql')可以把括号内的内容当SQL动态语句执行。示例便是通过xp_cmdshell执行系统命令dir来获得信息,也可以换成SQL语句执行。

"真的有人把业务逻辑放在数据库里吗?"

- Cookie注入

如题,利用Cookie注入

Cookie: session_id=' OR '1'='1;

在解析Cookie时就会进行注入。

- 更多更深入的注入

LDAP注入、XPath注入、OS命令注入、XML解析器注入、SMTP头部注入、表达式语言注入、ORM注入、OGNL注入

这些输入需要一些SQL基础之外的知识,我还不会,改天再补出来吧。这些属于DLC内容。

http://www.jsqmd.com/news/804641/

相关文章:

  • 缓存从零到上手指南:五个你必须避开的实战陷阱
  • 麒麟Linux服务使用及故障自查指南
  • 计算机毕业设计 | SpringBoot 房屋销售租赁平台 房屋购物网站(附源码)
  • 考研复习 Day 34 | 习题--计算机网络 第六章(应用层 下)、数据结构 查找算法(下)
  • 使用jmeter实战测试
  • 告别命令行:在VSCode中通过可视化Git历史插件,高效管理代码版本与协作
  • 纳米多孔储能材料:从液晶模板法到产业化挑战
  • # 凌晨三点,我终于使用DMXAPI教程和那个Bug说了再见ヾ(•ω•`)o
  • (二)windows下CLIProxyAPI:手动添加ChatGPT账号(个人记录)
  • GetQzonehistory:3步轻松备份你的QQ空间历史说说
  • 01《CMMI AIM概述与战略定位——AI治理的操作系统》
  • 实测Taotoken多模型聚合服务在持续调用中的延迟与稳定性表现
  • 软工5.12
  • 百度网盘macOS版终极提速指南:免费解锁SVIP高速下载体验
  • 瑞德克斯平台:风险管理理念的深度实践
  • Windows下Python包管理权限踩坑实录:从WinError 5到WinError 32的完整解决流程
  • Spring AI 1.0 实战:Java 开发者必须掌握的 AI 开发框架
  • 无人机系留供电方案:从基础原理到工程实践详解
  • 抖音无水印视频批量下载终极指南:免费开源工具完整教程
  • 市面上原木楼梯扶手品牌口碑
  • 无水印视频怎么保存?亲测有效方法,多款工具轻松搞定 - 爱上科技热点
  • ImageGlass:Windows平台轻量级图像浏览器的终极解决方案,免费开源支持90+格式
  • OmenSuperHub:彻底释放惠普OMEN游戏本性能的开源神器
  • AI辅助开发效率革命:AgentBoard原生macOS应用深度解析
  • 数据中心机架内互连新范式:为何PCIe正取代以太网与InfiniBand?
  • RuoYi-Cloud项目实战:如何为Oracle数据库量身定制一套微服务监控与网关方案?
  • 开源工具LMAO:通过浏览器自动化免费调用ChatGPT与Copilot API
  • 四川盛世钢联成都建材销售频道 -螺纹钢|盘螺|盘圆|线材|HRB400E|HR500E高强抗震钢筋 - 四川盛世钢联营销中心
  • 使用python快速接入taotoken调用多个主流大模型
  • Taisaw台硕/tst嘉硕TZ4228BW6414一级代理分销经销