【WEB】Polar靶场 Day8 详细笔记
目录
@井字棋
@ 机器人
@扫扫看
@ cool
1. isset($_GET['a'])
2. is_numeric($a)
3. preg_match("/flag|system|php/i", $a)
passthru()函数
@井字棋
发现最多平局,不管是平局还是输了都会有个弹窗,猜测是根据弹窗弹出flag
查看源代码
发现最重要的是“who”,当who为player的时候就会弹出flag
方法一:
打开控制台,发送declareWinner("您赢了!");
方法二:
打开bp,把"winner":"ai"改成"winner":"player"
flag{288CCA1ADB228E10EED4BFD85AC544B8}
@ 机器人
之前有道相似的题,所以直接访问/robots.txt
有半边Flag: flag{4749ea1ea481a5d
还有个Disallow: /27f5e15b6af3223f1176293cd015771d
在
robots.txt
文件中,Disallow: /27f5e15b6af3223f1176293cd015771d
这条规则的含义是:禁止搜索引擎爬虫访问网站中以/27f5e15b6af3223f1176293cd015771d
开头的所有 URL 路径。
访问看看
什么都没有,再加个/flag.php试试(或者可以直接用目录扫描工具扫)
把两部分拼在一起
flag{4749ea1ea481a5d56685442c8516b61c}
@扫扫看
这题挺简单
先拿目录扫描工具扫一扫
访问/flag.php
右键查看源代码
简简单单,轻松拿下
flag{094c9cc14068a7d18ccd0dd3606e532f}
@ cool
1.
isset($_GET['a'])
- 作用:判断 HTTP GET 请求里是否存在名为
a
的参数。2.
is_numeric($a)
- 作用:检查变量
a
是否为数字或者可转换为数字的字符串,是的话输出no3.
preg_match("/flag|system|php/i", $a)
- 作用:使用正则表达式对输入进行过滤,检查输入中是否包含
flag
、system
、php
这些敏感词(不区分大小写)。
passthru()函数
passthru()和system()
两者都是 PHP 中用于执行外部系统命令的函数,本质上都是通过调用操作系统的 shell 来运行命令
既然system用不了那么就用passthru代替
?a=passthru('cat f*');
flag{4512esfgsdIirhgui82545er4g5e5rg4er1}