Bugku web——字符?正则?

打开题目链接,有如下代码

<?php 
highlight_file('2.php');
$key='KEY{********************************}';
$IM= preg_match("/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i", trim($_GET["id"]), $match);
if( $IM ){ 
  die('key is: '.$key);
}
?>

函数preg_match功能为用正则表达式匹配字符串,如果匹配成功,返回值1,并把匹配到的值赋值给match,否则返回0。函数trim功能为去掉字符串开头和结尾的空格。


因此此题的目标为构造一个满足正则表达式/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i的字符串id
对其进行分析:

  • 结尾的i表示忽略大小写
  • 多次出现的key表示匹配字符串key
  • .表示匹配除换行符 \n 之外的任何单字符
  • *表示匹配前一个字符0次或多次
  • {4,7}表示匹配前一个字符串至少4次,至多7次
  • :匹配字符:
  • \/匹配字符/
  • (.*key)表示一个子表达式,功能和上文相同
  • [a-z]表示表示匹配小写a-z中的任意一个
  • [:punct:]表示匹配 !"#$%&’()*+,-./:;<=>?@[]^_`{|}~.中的任意一个

根据上面的分析,可以构造id为keyakeyaaaaakey:/a/akeya?,满足上面正则表达式,得到flag
在这里插入图片描述

%EF%BC%8C%E5%8F%91%E7%8E%B0%E4%B8%80%E6%AE%B5js%E4%BB%A3%E7%A0%81%EF%BC%8C%E8%8B%A5r%E5%80%BC%E4%B8%BA%7Bcode%3A+%27bugku10000%27%7D%EF%BC%8C%E5%88%99%E4%BC%9A%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF%5Cn%5Cn%7B+%E9%80%9A%E8%BF%87%E8%BF%99%E4%B8%80%E5%8F%A5%E2%80%9Cwindow.location.href+%3D+%27success.php%3Fcode%3D%27%2Br.code%3B%E2%80%9D%EF%BC%8C%E5%8F%AF%E4%BB%A5%E5%88%A4%E6%96%AD%E7%BD%91%E9%A1%B5%E5%B0%86%E8%B7%B3%E8%BD%AC%E5%88%B0%E4%BB%A5code%E4%BD%9C%E4%B8%BA%E5%8F%82%E6%95%B0%E7%9A%84success.php%E9%A1%B5%E9%9D%A2%E3%80%82%E5%85%B6%E4%B8%ADcode%E7%9A%84%E5%80%BC%E6%9D%A5%E8%87%AA%E4%BA%8Evar+r+%3D+%7Bcode%3A+%27bugku10000%27%7D%E3%80%82%5Cn%5Cn%C2%A0%C2%A0%C2%A0%C2%A0+%E8%87%B3%E6%AD%A4%EF%BC%8C%E5%8F%AF%E4%BB%A5%E8%80%83%E8%99%91%E7%94%A8burp%E8%BF%9B%E8%A1%8C%E7%88%86%E7%A0%B4%E3%80%82%E4%BD%86%E9%80%9A%E8%BF%87%E7%AC%AC%E4%B8%80%E6%AC%A1%E7%88%86%E7%A0%B4%E8%BF%87%E7%A8%8B%E4%B8%AD%E6%89%80%E4%BB%A5%E8%BF%94%E5%9B%9E%E9%A1%B5%E9%9D%A2%E9%95%BF%E5%BA%A6%E4%B8%80%E8%87%B4%EF%BC%8C%E5%8F%AF%E4%BB%A5%E5%88%A4%E6%96%ADcode%E5%80%BC%E7%9A%84%E9%95%BF%E5%BA%A6%E4%B8%8E%27bugku10000%27%E7%9B%B8%E5%90%8C%EF%BC%8C%E4%B9%9F%E6%98%AF10%E3%80%82%E8%80%83%E8%99%91%E5%88%B0%E5%AF%B9%E4%BA%8E10%E4%B8%AA%E5%AD%97%E7%AC%A6%E9%95%BF%E5%BA%A6%E8%BF%9B%E8%A1%8C%E7%88%86%E7%A0%B4%E9%9C%80%E8%A6%81%E7%9A%84%E6%97%B6%E9%97%B4%E5%A4%AA%E9%95%BF%EF%BC%8C%E5%9B%A0%E6%AD%A4%E7%8E%B0%E5%9C%A8%E4%BB%A5code%E4%B8%BA%E5%8F%82%E6%95%B0%E7%88%86%E7%A0%B4%E6%98%AF%E4%B8%8D%E5%8F%AF%E8%A1%8C%E7%9A%84%E3%80%82%5Cn%5Cn%C2%A0%C2%A0%C2%A0+%E5%9B%A0%E4%B8%BAcode%E6%98%AFsuccess.php%E9%A1%B5%E9%9D%A2%E7%9A%84%E5%8F%82%E6%95%B0%EF%BC%8C%E5%9B%A0%E6%AD%A4%E5%9C%A8%E7%99%BB%E5%BD%95%E9%A1%B5%E9%9D%A2%E5%BD%93%E4%BD%BF%E7%94%A8%E6%AD%A3%E7%A1%AE%E5%AF%86%E7%A0%81%E6%97%B6%EF%BC%8Ccode%E7%9A%84%E5%80%BC%EF%BC%88r.code%EF%BC%89%E5%BA%94%E8%AF%A5%E4%B8%8E%27bugku10000%27%E4%B8%8D%E5%90%8C%EF%BC%8C%E8%BF%9B%E8%80%8Cr%E7%9A%84%E5%80%BC%E4%B9%9F%E4%B8%8E%7Bcode%3A+%27bugku10000%27%7D%E4%B8%8D%E5%90%8C%E3%80%82%5Cn%5Cn%C2%A0%C2%A0%C2%A0%C2%A0+%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%AC%E8%BE%93%E5%85%A5%E6%AD%A3%E7%A1%AE%E7%9A%84%E5%AF%86%E7%A0%81%EF%BC%8C%E8%BF%94%E5%9B%9E%E9%A1%B5%E9%9D%A2%E7%9A%84r%E5%B0%86%E4%B8%8D%E6%98%AF%7Bcode%3A+%27bugku10000%27%7D%E3%80%82%5Cn%5Cn%C2%A0%C2%A0%C2%A0+%E5%9B%A0%E6%AD%A4%E5%8F%AF%E4%BB%A5%E5%9C%A8burp%E7%9A%84intruder%E7%88%86%E7%A0%B4%E6%A8%A1%E5%9D%97%E4%B8%AD%EF%BC%8C%E4%BD%BF%E7%94%A8%7Bcode%3A+%27bugku10000%27%7D%E5%AF%B9%E8%BF%94%E5%9B%9E%E5%8C%85%E5%86%85%E5%AE%B9%E8%BF%9B%E8%A1%8C%E7%AD%9B%E9%80%89%E3%80%82%E6%89%BE%E5%88%B0%E8%BF%94%E5%9B%9E%E5%8C%85%E4%B8%8D%E5%90%AB%E6%9C%89%7Bcode%3A+%27bugku10000%27%7D%E7%9A%84%EF%BC%8C%E5%B0%B1%E5%8F%AF%E8%83%BD%E6%98%AF%E4%BD%BF%E7%94%A8%E6%AD%A3%E7%A1%AE%E7%9A%84%E5%AF%86%E7%A0%81%E3%80%82%7D
最新发布
05-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值