REC远程命令及代码执行漏洞

代码执行漏洞

原理

黑客可以插入并可以执行代码的地方

根据所用代码语言文件种类区别开,一般有 Java,Python,Php 等

创建一个 php 文件

<?php
$code=$_GET['x'];   //$_GET['x']一个以 GET 方法运行的参数 x
eval($code);    //eval 内的字符串当作 php 代码来执行
>

当访问这个页面的时候

http://127.0.0.1/xxx.php?x=phpinfo();

即phpinfo()作为 php 代码进行运行,显示 php 数据

或者

http://127.0.0.1/xxx.php?x=echo 123

页面就输出123

也可以利用 php 创建文件并写入服务器,例创建代码

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!"); 
$txt = "Bill Gates\n";
fwrite($myfile, $txt);
$txt = "Steve Jobs\n";
fwrite($myfile, $txt);
$txt = "<?php eval($_GET['a'])>";
fclose($myfile);
?>

命令执行漏洞

原理

黑客可以执行计算机系统命令的地方如ls,cat,cd

一般跟所在系统环境区别,有 window,linux

创建一个 php 文件

<?php
$code=$_GET['x'];   //$_GET['x']一个以 GET 方法运行的参数 x
echo system($code)   //system(),方法内的字符串以指令运行
>
http://127.0.0.1/xxx.php?x=ls

漏洞检测

白盒

可以通过查看源代码代码审计,找到是否有$_GET['a'],system()等漏洞函数来利用

黑盒
  • 通过漏洞扫描工具扫描出可能存在的漏洞,浏览器找到相关漏洞的破解 payload

  • 查看参数值后面是否带有函数运行比如?a=echo 123是否可以改变成?a=echo system('ls')

漏洞形成条件

可控变量

通过网站的参数值来改变变量值, php 文件下的任一参数

漏洞函数

根据使用的函数的不同从而形成不同的漏洞,比如eval()形成代码执行漏洞,system()形成命令执行漏洞,upload()形成 XSS漏洞

小知识点:根据页面的功能去判断可能存在的漏洞,例如可能需要进行增删CRUD 的页面就可能有 SQL 漏洞

漏洞防护

  • 敏感函数system(),eval()exec(),shell_exec等禁用
  • 正则表达式
  • 黑名单,白名单
  • WAF
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值