设为首页 加入收藏

TOP

BugkuCTF~代码审计~WriteUp(五)
2019-08-23 00:40:55 】 浏览:100
Tags:BugkuCTF 代码 审计 WriteUp
审计需要满足两个条件:1. if (@ereg ("^[1-9]+$", $_GET['ctf']) === FALSE) ==》 FALSE

             2. if (strpos ($_GET['ctf'], '#biubiubiu') !== FALSE) ==》 TRUE

构造payload:

http://123.206.87.240:9009/15.php?ctf[]=

get flag:

Flag: flag{Bugku-D-M-S-J572}

 

第十三题:数字验证正则绕过

知识简介

preg_match()函数学习:

int preg_match( string $pattern, string $subject[, array &$matches[, int $flags = 0[, int $offset = 0]]] ) 搜索subject与pattern给定的正则表达式的一个匹配. 参数 pattern 要搜索的模式,字符串类型。 subject 输入字符串。 matches 如果提供了参数matches,它将被填充为搜索结果。 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。 flags flags可以被设置为以下标记值: PREG_OFFSET_CAPTURE 如果传递了这个标记,对于每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的)。注意:这会改变填充到matches参数的数组,使其每个元素成为一个由第0个元素是匹配到的字符串,第1个元素是该匹配字符串在目标字符串subject中的偏移量。 offset 通常,搜索从目标字符串的开始位置开始。可选参数 offset 用于指定从目标字符串的某个位置开始搜索(单位是字节)。 返回值 preg_match()返回 pattern 的匹配次数。它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后将会停止搜索。preg_match_all()不同于此,它会一直搜索subject 直到到达结尾。如果发生错误preg_match()返回 FALSE

 

题目信息

Topic Link:http://123.206.87.240:9009/21.php

<?php error_reporting(0); $flag = 'flag{test}'; if ("POST" == $_SERVER['REQUEST_METHOD']) { $password = $_POST['password']; if (0 >= preg_match('/^[[:graph:]]{12,}$/', $password)) //preg_match — 执行一个正则表达式匹配
{ echo 'flag'; exit; } while (TRUE) { $reg = '/([[:punct:]]+|[[:digit:]]+|[[:upper:]]+|[[:lower:]]+)/'; if (6 > preg_match_all($reg, $password, $arr)) break; $c = 0; $ps = array('punct', 'digit', 'upper', 'lower'); //[[:punct:]] 任何标点符号 [[:digit:]] 任何数字 [[:upper:]] 任何大写字母 [[:lower:]] 任何小写字母
foreach ($ps as $pt) { if (preg_match("/[[:$pt:]]+/", $password)) $c += 1; } if ($c < 3) break; //>=3,必须包含四种类型三种与三种以上
if ("42" == $password) echo $flag; else echo 'Wrong password'; exit; } } ?>

利用preg_match()函数不能处理数组进行构造payload

代码审计需要满足一个条件:1. if (0 >= preg_match('/^[[:graph:]]{12,}$/', $password)) ==》 TRUE

构造payload:

http://123.206.87.240:9009/21.php
 post: password[]=

get flag:

flag{Bugku_preg_match}

 

第十四题:简单的waf

和第十题(变量覆盖)一样,题目打不开!!!!! *-*           

 

首页 上一页 2 3 4 5 下一页 尾页 5/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Ubuntu 16.04.4 LTS环境中php7.0.. 下一篇php禁用函数设置及查看方法详解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目