简单了解WEB漏洞-RCE代码及命令执行漏洞
? 在Web应用中有时候程序员为了考虑灵活性、简洁性,会在代码调用代码或命令执行函数去处理。比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串将造成代码执行漏洞。同样调用系统命令处理,将造成命令执行漏洞
举例
代码执行
<?php
$code = $_GET['x'];
eval($code);
?>
访问该文件向x传递phpinfo();参数
http://127.0.0.1/test.php?x=phpinfo();

成功执行代码
命令执行
<?php
$code = $_GET['x'];
system($code);
?>
访问该文件向x传递ipconfig参数

原理
漏洞形成条件:
可控变量:变量可以传递参数
漏洞函数:eval就是代码执行 system就是系统命令执行 echo就是输出可以使用xss
web源码:网站应用决定网站漏洞方向
检测
白盒:代码审计
黑盒:漏扫工具 公开漏洞 手工看参数值及功能点判定
靶场案例
靶场一
https://www.mozhe.cn/bug/detail/RWpnQUllbmNaQUVndTFDWGxaL0JjUT09bW96aGUmozhe

先输入一个ip

可以看到执行了ping命令
所以判断他应该是执行了类似system类命令
接下来判断是linux还是window
随便抓个包试下

可以看出这是一个linux
使用linux的拼接命令执行
127.0.0.1|ls

查看页面源代码

发现是前端js限制
直接使用burp抓包修改


接下来查看key.php文件


靶场二
https://www.mozhe.cn/bug/detail/T0YyUmZRa1paTkJNQ0JmVWt3Sm13dz09bW96aGUmozhe

把代码跑一跑看下
<?php
echo gzinflate(base64_decode('40pNzshXSFCJD3INDHUNDolOjE2wtlawt+MCAA=='));
?>

也就源代码为
eval(echo`$_REQUEST[a]`;;?>) #echo+反引号可以执行linux的shell命令 执行的命令就是反引号中的内容
a接收数据
http://219.153.49.228:42010/f.php?a=ls

读取key
http://219.153.49.228:42010/f.php?a=tac key_46331475425346.php

靶场三

webmin登录界面
webmin存在远程命令执行漏洞
webmin 远程命令执行漏洞(CVE-2019-15107)
随便输入账号密码抓包
题目说明key在根目录下
old用来接收命令直接看下根目录

找到key查看文件

完事