这道题挺没意思的,就是考察正则,还有PHP preg_match函数的作用,好,我们开始
打开页面一堆代码提示,进行分析:
- <?php
- highlight_file('2.php'); //高亮,没有什么好说的
- $key='KEY{********************************}'; //千万不要以为这就是PHP源代码,这个只是提示你,flag在$key里面
- //preg_match 相当于一个匹配搜索的函数,preg_match (这里写正则、这里是待匹配的内容、这里是匹配的结果)
- //这里就是要让$IM有值,也即是TRUE,然后让下面的if语句能够成功执行,就能拿到flag
- $IM= preg_match("/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i", trim($_GET["id"]), $match);
- if( $IM ){
- die('key is: '.$key);
- }
- ?>
正则这里自己去恶补,不解释,这个题可以构造的payload实在是太多了,我这里就随便写一个
payload:http://123.206.87.240:8002/web10/?id=key123key1234key:/1/123keya-
然后成功拿到flag。。。
评论