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的地方。

更好的方法:中间用分隔符分开:

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

其中0×3a是“:”的十六进 制形式。

mysql函数拼接查询concat函数的使用方法

如下所示:

//查询表managefee_managefee的年year 和 month ,用concat函数拼成year-month。例如将2017和1 拼成2017-01。.

select CONCAT(a.year,'-',if(a.month<=9,CONCAT('0',a.month),a.month))as date,a.* from managefee_managefee as a;

//查询managefee_managefee中时间段为2017-01到2017-07的数据

select * from

(

select CONCAT(a.year,'-',if(a.month<=9,CONCAT('0',a.month),a.month))as date,a.* from managefee_managefee as a

) b

where b.date between '2017-01' and '2017-07';

以上这篇mysql函数拼接查询concat函数的使用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

concat mysql sql注入_Mysql中用concat函数执行SQL注入查询的方法相关推荐

  1. mysql query语句_使用mysql_query()函数执行SQL语句

    mysql_query()函数 PHP MySQL 函数库中,mysql_query() 函数用于向 MySQL 发送并执行 SQL 语句. 对于没有数据返回结果集的 SQL ,如 UPDATE.DE ...

  2. mysql st_contains实现_MySQL实现树状所有子节点查询的方法

    本文实例讲述了MySQL实现树状所有子节点查询的方法.分享给大家供大家参考,具体如下: 在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方 ...

  3. mysql在哪执行sql语句_mysql从命令行执行sql语句

    Codeforce Round #218 Div2 A:没个元素的个数少的变成多的和就是了 B:居然被systemtest搓掉了- -分东西,我改的代码,还是shit一样的过的...别人的直接两个操作 ...

  4. mysql concat键值对_mysql中concat函数实现数据库字段合并查询

    concat()函数是mysql中用来字符类型的字段联合查询的一个不错的函数,但尽量不要使用哦, mysql中怎么合并两个字段为一个字段呢?试了好多方法,结果还是不是我想要的 例如:select (a ...

  5. mysql语句+截取字符串_MySQL 截取字符串函数的sql语句

    1.left(name,4)截取左边的4个字符 列: select left(201809,4) 年 结果:2018 2.right(name,2)截取右边的2个字符 select right(201 ...

  6. mysql 从第几个字符串开始截取_MySQL 截取字符串函数的sql语句

    1.left(name,4)截取左边的4个字符 列: SELECT LEFT(201809,4) 年 结果:2018 2.right(name,2)截取右边的2个字符 SELECT RIGHT(201 ...

  7. mysql创建函数执行sql语句_MySQL mysql_query 函数执行SQL语句

    mysql_query()函数 PHP MySQL 函数库中,mysql_query() 函数用于向 MySQL 发送并执行 SQL 语句. 对于没有数据返回结果集的 SQL ,如 UPDATE.DE ...

  8. mysql盲注_Mysql 布尔型盲注手工注入详解

    0x00 什么叫布尔型盲注 布尔型 布尔(Boolean)型是计算机里的一种数据类型,只有True(真)和False(假)两个值.一般也称为逻辑型. 盲注 在注入时页面无具体数据返回的注入称之为盲注, ...

  9. MySQL中非常好用的函数或sql语句(14种)

    1.group_concat 在我们平常的工作中,使用group by进行分组的场景,是非常多的. 比如想统计出用户表中,名称不同的用户的具体名称有哪些? 具体sql如下: select name f ...

最新文章

  1. 【Spark机器学习速成宝典】模型篇01支持向量机【SVM】(Python版)
  2. 6个用于文本分类的最新开源预训练模型(NLP必备)
  3. CnGAN:面向跨网用户偏好推荐的生成对抗网络
  4. 左神算法:反转单向和双向链表(Java版)
  5. .NET之Docker部署详细流程
  6. 泛型lua的for循环以及lua的特殊的dowhile循环
  7. CPU的温度是360的准还是鲁大师的准?
  8. SharePoint 2013 版本功能对比
  9. C++-Qt【1】-退出程序静态调试
  10. 【第四组】用例文档+功能说明书+技术说明书:查看导入的图片,工作序号:001,2017/7/11...
  11. 一个很好的多代理服务器调度软件-ProxyExpert(绿色软件) - 『 软件使用交流 』 - 赢政天下 - YingZheng.com - Powered by Discuz!...
  12. 海外媒体稿件内容怎么写更出色
  13. 电脑找回,怎么找回电脑上删除的文件_怎么找回电脑删除的文件-win7之家
  14. linux系统属于操作系统吗,linux属于什么操作系统
  15. 4-11 Isomorphic (10分)
  16. C++学习心得和进阶路线总结
  17. 第十三届蓝桥杯C++B组国赛I题——齿轮 (AC)
  18. cisco路由器的时间标记
  19. 阿里聚安全年终盘点|2017互联网安全领域十大话题
  20. c#Winform代码里中英文切换

热门文章

  1. js 获取URL参数乱码解决
  2. mac下ssh免密登陆远程服务器(linux)
  3. HDU - 4305 - Lightning 生成树计数 + 叉积判断三点共线
  4. Maven - 依赖冲突
  5. PHP 二分查找(详细)
  6. THINKPHP中使用swoole
  7. java理论之java基础
  8. Samba 3.0.25 颁布发表
  9. python选择排序 时间复杂度
  10. Flutter异步编程async与await的基本使用