做题链接

一个详细讲正则的网址1

一个详细讲正则的网址2


代码如下

<?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);
}
?>

我初次构造的payload:

keykeykeykeykey:/ /keya@i


解析:

 key        .      *        key      .      {4,7}  key:\/             \/  (       .     *        key)     [a-z]                 [[:punct:]]
‘key’+任意单个字符+零个或多个+‘key’+任意单个字符+长度4-7+‘key:/’+任意单个字符+ / +(任意单个字符+零个或多个+‘key’)+英文小写字母一个+匹配‘!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~.’中一个字符

payload最后面的 "i" 得益于  “preg_match函数的特性 ” ,这个 “i” 可有可无。

此外还有: 

/i:表示匹配时不区分大小写,如URL的匹配

/u :表示按照unicode,UTF-8的规则匹配,如汉字的匹配

/s: 表示把字符串视作单行

一个更加简洁的payload:

keykey1234key:/1/keya@

最新文章

  1. Document树的解析方法
  2. macbook安装win7
  3. CF# 334 Lieges of Legendre
  4. LABJS使用教程
  5. 洛谷OJ P1196 银河英雄传说(带权并查集)
  6. PLSQL 的简单命令之二
  7. 并发与同步 (一) ThreadLocal与Synchronized 用哪一个好
  8. hdu 1987-How many ways(dp)
  9. 【C++基础之十四】函参的缺省
  10. 解决方案 git@github.com出现Permission denied (publickey)
  11. Laravel (5.5.33) 加载过程---instance方法(二)
  12. 03 JVM的垃圾回收机制
  13. Linux初学者的总结
  14. Zabbix配置网络流量监控报警
  15. 前端PS切图
  16. JDK5的新特性之可变参数&amp;Arrays.asList()方法
  17. spring boot扫描mapper文件
  18. AI 反向传播神经网络
  19. 【cocos2d-js官方文档】事件分发监听机制(摘录)
  20. 5.9 C++重载转型操作符

热门文章

  1. ping, telnet, tcping 命令使用及对比
  2. Docker安装Web前端性能测试工具Sitespeed.io
  3. 【SD系列】SAP SD模块-创建供应商主数据BAPI
  4. 写的一个双向链表,测试OK
  5. IDEA 光标显示注释
  6. 6个常用Java 源代码 保护工具(混淆、加密、底层)
  7. 分布式自增ID算法-Snowflake详解
  8. NGUI多行输入框和滚动条结合使用(text list script 和scroll bar script)
  9. 使用js实现图片轮滑效果
  10. Windows 下 MySQL 备份脚本