`
昔雪似花
  • 浏览: 204321 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Mysql concat函数与SQL注入

 
阅读更多
SQL注入语句有时候会使用替换查询技术,就是让原有的查询语句查不到结果出错,而让自己构造的查询语句执行,并把执行结果代替原有查询语句查询结果显示出来。

     例如:原本查询语句是 select username,email,content from test_table where user_id=uid;其中uid,是用户输入的。正常显示结果会出现用户名,用户邮箱,用户留言内容。但是如果uid过滤不严,我们可以构造如下SQL语句来获得任意数据表信息。

uid=-1 union select username ,password,content from test_talbe where user_id=管理员id;

实际执行就是select username,email,content from test_table where user_id=-1 union select username ,password,content from test_talbe where user_id=管理员id;其中显示正常用户emai的地方,变成了显示管理员的密码了。

但是,往往事情并不是这么简单,首先要找到漏洞,其次构造这种语句时候要考虑各个字段的类型,让int或samllint类型的字段显示varchar显然不合适。最后就是本文要说的。

如果出现问题的SQL语句只有一个或两个字段怎么办,我们想知道很多东西,一两个字段太少了,远远不能满足我们的需要。那么我们可以使用concat函数。

concat函数本来是这样用的SELECT CONCAT('My', 'S', 'QL');执行结果是'MySQL'。也就是连接作用的。我们利用它来为我们服务,

uid=-1 union select username ,concat(password,sex,address,telephone),content from test_talbe where user_id=管理员id;

这个语句实际查询了六个字段,但是显示的时候,把password,sex,address,telephone等字段合在一起,显示在原本应该显示email的地方。
分享到:
评论

相关推荐

    Mysql数据库使用concat函数执行SQL注入查询

    MySQL数据库中的`CONCAT`函数在SQL注入场景中扮演着重要的角色,因为它允许攻击者将多个字段合并成一个字符串,从而获取原本无法直接查询到的信息。SQL注入是一种常见的安全漏洞,发生在应用程序未能充分验证用户...

    详解MySQL中concat函数的用法(连接字符串)

    在MySQL数据库中,`CONCAT`函数用于将两个或更多的字符串连接成一个单一的字符串。这个函数非常实用,尤其是在处理涉及字符串拼接的查询时。`CONCAT`的基本语法如下: ```sql CONCAT(str1, str2, ..., str_n) ``` ...

    在MySQL concat里面使用多个单引号,三引号的问题

    SQL code sum(case Leave when ”’+ id +”’ then DaysNo else 0 end) [‘+ name +’]’ 正常语句: SQL code SUM(CASE Leave WHEN ’01’ THEN DaysNo END) AS [事假], SUM(CASE Leave WHEN ’02’ THEN ...

    sql注入字典fuzz

    1. **SQL关键字与函数**:SQL注入字典中包含了大量SQL关键字与函数,如`select`、`database`、`sleep`等。这些关键字与函数在实际的SQL注入攻击中非常常见。 2. **大小写变化**:许多SQL关键字支持大小写不敏感特性...

    SqlServer GroupConcat

    然而,与MySQL等其他数据库系统不同,SQL Server原生并不支持`GroupConcat`。因此,为了在SQL Server中实现类似的功能,我们需要依赖一些额外的工具或方法,如使用CLR(公共语言运行时)存储过程。 `SqlServer ...

    解决Oracle没有WM_CONCAT函数.zip

    在Oracle数据库中,WM_CONCAT是一个非常实用的聚合函数,用于将一组字符串连接成一个单一的字符串,类似于SQL Server中的STRING_AGG或MySQL中的GROUP_CONCAT。然而,Oracle官方并没有提供这个函数,它是一个第三方...

    高级SQL注入:混淆和绕过.pdf

    1. 过滤规避(Mysql):通过使用特殊的SQL函数和运算符来绕过过滤规避,例如使用`GROUP BY`和`HAVING`函数来绕过传统的SQL注入检测。 2. 混淆技术:使用特殊的SQL函数和运算符来混淆SQL语句,例如使用`unhex()`和`...

    10-sql注入-mysql注入1

    - 简单的SQL注入检测函数,如文中示例,通过替换或正则匹配关键字来防止注入,但可以被大小写变换、%00编码等方式绕过。 - 使用`AND 1=1`和`AND 1=2`来判断注入点的存在,通过改变条件的真假来观察响应变化。 - `...

    Mysql函数手册.rar_MySQL函数手册_VZI_mysql 函数手册

    MySQL函数手册是一部非常重要的参考资料,尤其对于数据库管理员和开发人员来说,它提供了全面而详细的MySQL数据库函数使用指南。这份手册涵盖了MySQL中各种内置函数的功能、语法以及使用示例,是学习和工作中不可或...

    MySQL常用类型转换函数总结(推荐)

    1、Concat函数。 连接字符串常用:concat函数。如sql查询条件的like查询, AND c.name like concat(#{param.name},’%’) 将Int 转为varchar经常用 concat函数,比如concat(8,’0′) 得到字符串 ’80’  2、Cast...

    MySQL 标准SQL函数速查表 Standard SQL Functions Cheat Sheet

    部分数据库可能支持非标准的`CONCAT()`或`CONCAT_WS()`函数,但MySQL不支持`INITCAP()`来首字母大写每个单词,你可以使用`UPPER()`和`SUBSTRING()`组合实现类似功能。 2. **LIKE运算符(PATTERN MATCHING)**:用于...

    MySQL中group_concat函数深入理解

    MySQL中的`GROUP_CONCAT`函数是一个非常实用的聚合函数,它允许你在分组查询中将一组行的某个列值合并成一个字符串,每个值之间由指定的分隔符隔开。这个函数对于数据汇总和报告生成特别有用,因为它可以把多行数据...

    Mysql常用函数列表

    ### MySQL常用函数详解 #### 字符串处理函数 1. **CHARSET(str)** - 功能:返回字符串`str`的字符集。 - 示例:`CHARSET('abc')`将返回`str`的字符集编码。 2. **CONCAT(string1[, string2, ...])** - 功能:...

    【GROUP_CONCAT】使用之MySQL官方文档翻译

    `GROUP_CONCAT` 是 MySQL 中一个非常实用的聚合函数,主要用于将来自同一分组的多个值连接成一个字符串。这一功能在许多场景下都非常有用,例如汇总数据、创建列表等。 #### 二、基本语法与用法 `GROUP_CONCAT` 的...

    mysql拼接字符串函数.docx

    MySQL 中提供了两个主要的拼接字符串函数:CONCAT 函数和 CONCAT_WS 函数。这两个函数可以帮助开发者方便地进行字符串的拼接操作。 CONCAT 函数 CONCAT 函数是 MySQL 中最基本的拼接字符串函数,该函数接受一个或...

    SQL注入基础整理及Tricks总结1

    【SQL注入基础与技巧总结】 SQL注入是一种常见的网络安全漏洞,攻击者通过在应用程序的输入字段中插入恶意SQL代码,以获取未授权的数据访问或控制服务器。以下是对标题和描述中提到的知识点的详细说明: 一、联合...

    MySQL常用函数大全

    ### MySQL常用函数详解 #### 数学函数 - **ABS(x)**: 返回参数`x`的绝对值。 - **BIN(x)**: 将十进制数字`x`转换为二进制字符串表示。 - **CEILING(x)**: ...熟练掌握这些函数有助于提高SQL查询效率及结果准确性。

    mysql的函数手册——汇总了mysql的常用函数

    根据提供的文件信息,本文将对MySQL中的常用函数进行详细的解读与总结。这些函数涵盖了字符串处理、数值转换等多个方面,对于数据库开发与维护人员来说是非常重要的工具。下面将逐一解析每个函数的功能及其用法。 #...

Global site tag (gtag.js) - Google Analytics