preg_match()漏洞

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了preg_match()漏洞相关的知识,希望对你有一定的参考价值。

今天大哥丢了一道题过来.
<?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()漏洞的主要内容,如果未能解决你的问题,请参考以下文章

安全测试 web安全测试 常规安全漏洞 可能存在SQL和JS注入漏洞场景分析。为什么自己没有找到漏洞,哪么可能存在漏洞场景是?SQL注入漏洞修复 JS注入漏洞修复 漏洞存在场景分析和修复示例(代码片段

thinkphp历史漏洞

PHP漏洞 (转)

具有动态 cors 标头的 API 漏洞

齐博分类系统漏洞分析

Preg_Match 用于 YouTube 观看次数