web26

开卷看题

源码审计题

代码分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$num=$_GET['num'];
$str=$_GET['str'];
show_source(__FILE__);
if (isset($num) && isset($str)) {
// 正则匹配str参数是否包含数字
if (preg_match('/\d+/sD',$str)) {
echo "vagetable hhhh";
exit();
}

// 如果is_numisic校验两个参数均为true则输出flag
$result=is_numeric($num) and is_numeric($str);
if ($result) {
include "flag.php";
echo "$flag";
}
else{
echo "vagetablessssss";
}
}
?>

总结:如果str不包含数字但是is_numeric函数返回true则输出flag

不知你是否觉得这一幕似曾相识?

直指flag

构造payload:num=1&str=a

拿下,睡觉去

  • 本文作者: Snow-NSAH
  • 本文链接: https://blog.nsah.top/2020/09/28/CTF/WEB/CTF论剑场/web26/
  • 反馈建议: 限于作者水平, 博文肯定有不足甚至错误之处, 欢迎发送邮件提供您的宝贵建议
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!