0x01

<?php
if(eregi("hackerDJ",$_GET[id])) {
echo("not allowed!");
exit();
}
$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "hackerDJ")
{
echo "Access granted!";
echo "flag";
}
?>

eregi()

定义:

  • 不区分大小写大正则表达式匹配

语法:eregi(pattern,string)

  • pattern,必需,正则表达式
  • string,必需,要匹配的字符串

0x02 代码分析

传入的id值,不能等于hackerDJ

传入的id值再经过urldecode解码

如果此时,id值等于hackerDJ

输出flag

对传入的id值进行url两次编码,一次是用于浏览器正常解码,另一次用于代码中解码。

payload
http://123.206.87.240:9009/10.php?id=%2568ackerDJ %2568ackerDJ解码为%68ackerDJ
绕过第一个判断
%68ackerDJ解码为hackerDJ
绕过第二个判断
得到flag

最新文章

  1. 对C语言islower、isupper、isdigit函数的测试
  2. Linux中find常见用法示例
  3. Redis时延问题分析及应对
  4. 黑马程序员_ Objective-c 之block、protocol学习笔记
  5. DataSnap 2009 系列之三 (生命周期篇)
  6. 面向切面编程AOP:基于XML文件的配置
  7. ls命令详解
  8. 使用openxml读取xml数据
  9. 170. Two Sum III - Data structure design
  10. vlookup使用案例
  11. 矢量编程——随着MNIST案例
  12. 500. Keyboard Row
  13. python-初识python
  14. H5唤醒app,第三方开源库
  15. 【调试基础】Part 2 文本字符
  16. 考研计算机复试笔试(数据结构/C语言简答题篇)
  17. python的文件读写笔记
  18. react那些事儿
  19. 关于vue,webpack 中 “exports is not defined”报错
  20. PHP错误:Namespace declaration statement has to be the very first statement in the script

热门文章

  1. xshell下使用vim的编辑一个文件Ctrl+S和Ctrl+Q
  2. SK-learn实现k近邻算法【准确率随k值的变化】-------莺尾花种类预测
  3. 大数据作业之利用MapRedeuce实现简单的数据操作
  4. Windows Server挂载NFS共享
  5. Java 后台设置session成功,获取为空
  6. 第八章服务器raid及配置实战
  7. hdu_1052 Tian Ji -- The Horse Racing 贪心
  8. visual stdio 2012快捷键
  9. VR全景视图 Google VrPanoramaView
  10. Red 编程语言 2019 开发计划:全速前进!