【AH_training】PHP命令执行
[TOC]
命令/代码执行漏洞基础概念:
命令执行基础概念:
调用一些函数来执行系统中已存在的命令
代码执行基础概念:
它需要用到一些动态的判断方法去动态的拼接一些内容来进行执行。
漏洞成因
如果它们的命令执行的一些参数是可控的,就可以借此执行想要的内容,
常见命令代码执行函数讲解
PHP中造成命令执行漏洞的常用函数:
system() exec() shell_exec() passthru() 这四个都是直接执行的系统命令
`` 反引号 是PHP中特有的,当函数被禁用时可以直接执行这样一个反引号来进行命令执行。
PHP中造成代码执行漏洞的常用函数:
eval与assert
eval()直接执行PHP代码,特殊之处在于能够利用PHP tags来离开/进入PHP代码运行模式。
这行代码本质上是:
<?php echo 1;?> |
其实相当于将eval()括号的内容进行了文件包含。
eval()可以和短标签?>配合使用
调用函数过滤不当
动态函数执行
常见绕过手段
题目中不可能让人直接执行,存在诸多限制,绕过的掌握就很有必要。
open_basedir绕过:
ini_set: 创建一个子目录,然后将open_basedir设置为父级目录,但是是相对目录的,经过多次跳转,父级目录的父级目录,最终到达根目录,再把它设置成根目录就允许访问了。
字符串构造:
异或
自增
取反
$a = "a"; |
短标签:
利用= ... ?> 来进行执行,默认开启。
Shell特性:
绕过disable_function:
https://www.freebuf.com/articles/network/263540.html
蚁剑中插件市场
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 The DC_comics's World!