• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > Mysql数据库使用concat函数执行SQL注入查询

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql数据库使用,如何使用mysql数据库,mysql数据库怎么使用,mysql数据库使用方法,使用mysql创建数据库等相关知识,希望本文的分享对您有所帮助

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

例如:原本查询语句是
select username,email,content from test_table where user_id=uid;
</div>
其中uid,是用户输入的。正常显示结果会出现用户名,用户邮箱,用户留言内容。但是如果uid过滤不严,我们可以构造如下SQL语句来获得任意数据表信息。
uid=-1 union select username ,password,content from test_talbe where user_id=管理员id;
</div>
实际执行就是
select username,email,content from test_table where user_id=-1 union select username ,password,content from test_talbe where user_id=管理员id;
</div>
其中显示正常用户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;
</div>
这个语句实际查询了六个字段,但是显示的时候,把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;
</div>
其中0×3a是“:”的十六进 制形式。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql 将列值转变为列的方法
  • MySQL的重装问题解决方法
  • mysql解决远程不能访问的二种方法
  • mysql 模糊搜索的方法介绍
  • Mysql启动与数据库的创建方法[图文]
  • mysql 判断记录是否存在方法比较
  • Mysql 数据库更新错误的解决方法
  • mysql中判断记录是否存在方法比较
  • 为mysql数据库添加添加事务处理的方法
  • 免安转MySQL服务的启动与停止方法

相关文章

  • 2017-05-11如何用SQL命令查看Mysql数据库大小
  • 2018-12-05从其他电脑访问本机的Mysql的设置方法
  • 2018-12-05ACCESS中关于SQL语句的转义字符
  • 2018-12-05MySQL数据库优化(二)—MySQL事务
  • 2018-12-05MySQL show命令的用法
  • 2018-12-05SQL2008中SQL应用之-阻塞(Blocking)应用分析
  • 2018-12-0564位 Ubuntu 安装 Oracle 11G
  • 2018-12-05MySQL数据库多表操作
  • 2017-05-11mysql sql_mode="" 的作用说明
  • 2018-12-05sqlserver通用的删除服务器上的所有相同后缀的临时表

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL中关于压缩的使用场景和解决方案
    • 我的服务器SQL2000的sqlserver占用了90%的cpu,怎么查是那个库?
    • 深入mysql "ON DUPLICATE KEY UPDATE" 语法的分析
    • 简单讲解MySQL中的多源复制
    • win2003安装sqlserver 2000提示无法验证产品密钥的解决方法
    • SQL Server日期计算第1/2页
    • mysql下修改engine引擎的方法
    • Oracle date如何比较大小分析
    • oracle 安装与SQLPLUS简单用法
    • 详解mysqldump数据导出的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有