[CTF_web]exec/exec2.php


CTF_web

CTF_web


源码如下 :

<?php 
$ip = isset($_GET['ip'])?$_GET['ip']:die();
if(!preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/i',$ip)){
    die("ip 格式错误!");
}
echo strlen($ip);
if(strlen($ip)<7||strlen($ip)>21){
    die("ip 长度错误!");
}
    // Determine OS and execute the ping command.
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
        // Windows
    $cmd = shell_exec( 'ping  ' .$ip );
}else {
        // *nix
        $cmd = shell_exec( 'ping  -c 1 ' .$ip );
}
    // Feedback for the end user
echo  "<pre>{$cmd}</pre>";
## 要求,利用命令执行getshell
image.png

这个题目的缺陷在于 :
正则中并没有使用 $ 来限制字符串的结束
因此只要构造一个以正常形式 ip 开头的参数即可
然后在这个正常的 ip 之后利用管道或者逻辑运算就可以执行任意命令


参考资料 :

http://php.net/manual/zh/function.preg-match.php

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • PHP代码执行函数 eval & assert & preg_replace eval 函数 php官方手册:ht...
    xaviershun阅读 5,136评论 1 12
  • 本文将介绍PHP的一些较重要的内容。包括:面向对象编程、正则表达式、程序错误处理、XML、AJAX、图像处理、My...
    齐舞647阅读 1,068评论 6 16
  • PHP 学习目录 ├─PHP视频教程 1 LAMP网站构建 │ ├─PHP教程 1.1.1 新版视频形式介绍│ ...
    曹渊说创业阅读 16,205评论 29 417
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,234评论 19 139
  • 1、判断一个变量是否存在的函数:isset判断一个变量是否为null的函数:is_null判断一个变量是否为空的函...
    jianghu000阅读 1,763评论 1 4