码迷,mamicode.com
首页 > 其他好文 > 详细

preg_match()漏洞

时间:2016-11-22 22:39:25      阅读:3155      评论:0      收藏:0      [点我收藏+]

标签:脚本   使用   php函数   生成   数字   false   git   提交   dig   

今天大哥丢了一道题过来.
<?php
$str = intval($_GET[‘id‘]);
$reg = preg_match(‘/\d/is‘, $_GET[‘id‘]);    //有0-9的数字 和.在内的符号  
if(!is_numeric($_GET[‘id‘]) and $reg !== 1 and $str === 1){
    echo ‘Flag‘;
}else{
    echo "<img src=‘./1.jpg‘>";
}
?>本来自信的以为是阶段或者十六进制 结果搞不定就往php函数漏洞上来研究了
PHP所使用的preg_match()函数从用户输入字符串获得参数,如果所传送的值为数组而不是字符串就会生成警告,警告消息中包含有当前运行脚本的完整路径。
技术分享
技术分享  暴力过题。。。  当提交id[]=1时

intval($_GET[‘id‘]);  输出 1

is_numeric($_GET[‘id‘]) 不存在
preg_match(‘/\d/is‘, $_GET[‘id‘]); !=1

 


以前在南京邮电做了一道题 如出一辙 <?php function noother_says_correct($number) { $one = ord(‘1‘); $nine = ord(‘9‘); for ($i = 0; $i < strlen($number); $i++) { $digit = ord($number{$i}); if ( ($digit >= $one) && ($digit <= $nine) ) { return false; } } return $number == ‘54975581388‘; } $flag=‘*******‘; if(noother_says_correct($_GET[‘key‘])) echo $flag; else echo ‘access denied‘; ?>

 

preg_match()漏洞

标签:脚本   使用   php函数   生成   数字   false   git   提交   dig   

原文地址:http://www.cnblogs.com/test404/p/6091108.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!