命令执行漏洞笔记 7.17~7.24
1.PHP命令执行的常见函数
1.system函数。 用于执行外部程序并显示输出。
string system ( string $command [,int $return_var ]) //index.php <?php system('whoami');?> //执行后输出root
2.exec函数。 用于执行一个外部命令。
string exec(string $command[,array &$output[,ubt &$return_var]]) //index.php <?php echo exec('whoami');?> //执行时加上echo 才会输出whoami的结果root
3.shell_exec函数。 通过shell环境执行命令且将完整的输出以字符串方式返回
string shell_exec(string $cmd) //index.php <?php echo shell_exec('whoami');?> //执行时加上echo 才会输出whoami的结果root
4.passthu函数。 用于执行外部程序并显示原始输出
void passthru(string $command[,int &$return_var]) //index.php <?php passtru('whoami');?> //执行后默认输出root
5.popen函数。 打开进程文件指针
resource popen (string $command,string $mode) //index.php <?php popen("touch test.txt","r")?> //执行该代码后会在当前文件夹下创建test.txt文件
6.proc_poen函数。 用于打开文件进程指针
resource proc_popen (string $cmd,string $descriptorspec,array&$pipes[, string $cwd[,array $other_potions]]) //index.php <?php $proc=proc_poen("whoami", array( array("pipe","r"), array("pipe","w"), array("pipe","w") ), $pipes); print stream_get_contents($pipes[1]); ?> //执行后输出结果root
CTFBUU
1.[ACTF2020 新生赛]Exec
cat
查看文件内容
ls
显示当前目录下的文件
先输入127.0.0.1|ls /看目录下的文件
找flag.格式总是输不对,试了几次,空格不能少,斜杠方向不能错 127.0.0.1|cat \flag
出来喽
2.[极客大挑战 2019]Havefun
这次学聪明了,查看页面源代码。密密麻麻的看不懂,还是求助了,这才发现最下面有猫腻.提示如下
3.
php://filter与包含函数结合时,php://filter流会被当作php文件执行。
所以我们一般对其进行编码,阻止其不执行。从而导致任意文件读取。
php://filter 伪协议文件包含读取源代码,加上read=convert.base64-encode,
用base64编码输出,不然会直接当做php代码执行,看不到源代码内容。
php://input 伪协议 + POST发送PHP代码 (不行)
看到=用Base64解密
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现