SQL注入基础知识

字段说明

  • database()将会返回当前网站所使用的数据库名字。
  • user()将会返回执行当前查询的用户名。
  • version() 获取当前数据库版本。
  • @@version_compile_os 获取当前操作系统。
  • information_schema 是mysql 自带的一张表,这张数据表保存了 Mysql 服务器所有数据库的信息,如数据库名,数据库的表,表栏的数据类型与访问权限等
  • column_name 列名
  • table_name 记录 DBMS 中存储的表名
  • table_schema 记录表名所在的数据库
  • information_schema 信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。
  • schema_name 数据库名称
  • information_schema.schemata SCHEMATA表提供关于数据库的信息。

函数说明

  • group_concat(column_name) 将一列的数据用一行全部输出,中间用逗号隔开。
  • concat(s1,s2…sn) 字符串 s1,s2 等多个字符串合并为一个字符串
  • left(name,length) 返回name最左边的length个字符串,right函数同理。eg:有的SQL报错注入题只会显示部分字符串,超过范围的就不会显示出来,使用right函数就会如图password缺少d,但是也可借此依次向左推进得到所有字符。

判断注入类型

  1. 首先可通过输入' 或者 " 看是否会报错,来判断是否存在注入点
  2. 可输入 语句:and 1=1        and 1=2 (经典)  
  3. 如果第一个语句没报错,第二个语句报错了,则说明存在数字型注入
  4. 反之,则可能存在字符型注入,因为如果是字符型注入,则后台的语句就是 '1 and 1=1' 和'1 and 1=2' 是一段字符串,并不会进行逻辑判断
  5. 接着可输入 语句:' and '1'='1(字符型)  ' and '1'='2 
  6. 同样如果第一个语句没报错,第二个语句报错了,则说明存在字符型注入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CTF(Capture The Flag)是一种网络安全竞赛,旨在考察参赛者在网络安全领域的技能和知识。CTF中的SQL注入是一种常见的攻击技术,用于利用应用程序对用户输入的不正确处理而导致的安全漏洞。下面是CTF中SQL注入基础知识: 1. 什么是SQL注入SQL注入是指攻击者通过在应用程序的输入中插入恶意的SQL代码,从而绕过应用程序的验证和过滤机制,进而执行非法的数据库操作。攻击者可以通过SQL注入获取敏感信息、修改数据甚至控制整个数据库。 2. SQL注入的原理: SQL注入利用了应用程序对用户输入的不正确处理。当应用程序没有对用户输入进行充分验证和过滤时,攻击者可以通过构造特定的输入来改变原始SQL查询的语义,从而执行恶意操作。 3. SQL注入的类型: - 基于错误的注入:攻击者通过构造恶意输入,触发应用程序产生错误信息,从而获取敏感信息。 - 基于布尔盲注:攻击者通过构造恶意输入,利用应用程序对布尔表达式的处理方式,逐位猜测数据内容。 - 基于时间盲注:攻击者通过构造恶意输入,利用应用程序对时间延迟的处理方式,逐位猜测数据内容。 - 基于联合查询注入:攻击者通过构造恶意输入,利用应用程序对联合查询的处理方式,执行额外的查询操作。 4. 防御SQL注入的方法: - 使用参数化查询或预编译语句,确保用户输入不会被解释为SQL代码。 - 对用户输入进行严格的验证和过滤,包括输入长度、类型、格式等。 - 最小化数据库用户的权限,避免使用具有高权限的数据库账户。 - 定期更新和修补应用程序和数据库的安全补丁。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值