当前位置: 首页 > article >正文

pikachu靶场-RCE

RCE漏洞概述
可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

远程系统命令执行
命令执行漏洞(Command Execution)即黑客可以直接在Web应用中执行系统命令,从而获取敏感信息或者拿下shell权限

更常见的命令执行漏洞是发生在各种Web组件,包括Web容器、Web框架、CMS软件、安全组件等

漏洞产生的原因:
1. 由于开发人员编写源码,没有针对代码中可执行的特殊函数(可控制变量)入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端执行。

对用户的输入命令安全检测不足,直接参与到操作系统的交互当中
应用调用执行系统命令的函数
将用户输入作为系统命令的参数拼接到了命令行中


2. 命令注入攻击中WEB服务器没有过滤类似system ( ) ,eval ( ) ,exec( ) 等函数是该漏洞攻击成功的最主要原因。

应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击

在PHP中可以调用外部程序的常见函数:

eval()
assert()
preg_replace() + /e 模式
create_function()
array_map()
call_user_func()/call_user_func_array()
array_filter()
usort(),uasort()
file_put_contents()
fputs()
$_GET[‘a’]($_GET[‘b’]);//a=assert&b=phpinfo()


一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。

但是,如果设计者在完成该功能时, 没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器。

1.exec "ping"

后端代码:

远程命令执行ping:

$result.=shell_exec('ping '.$ip);//直接将变量拼接进来,没做处理

ping命令后面拼接出命令即可,用cmd举例

ping命令执行后会跟着执行dir命令,进行一个拼接,一般的网站不做过滤的话,可以尝试各种管道符,如; & && | || 等等

2.exec "eval"

eval,经典的一句话木马函数 

后端代码:

远程代码执行evel:

if(@!eval($_POST['txt']))

可以看出没有做处理,和上面(远程命令执行ping)不同的是,这里是PHP代码,而上面(远程命令执行ping)执行的是命令行。

没有对传入参数进行过滤,直接执行内容,写入一个phpinfo();看看

看到代码被执行

 


http://www.kler.cn/a/14990.html

相关文章:

  • Linux运维:推荐八款Linux远程连接工具
  • MongoDB 数据库数据导入 - 关于如何使用 csv 导入数据的命令方法、图形界面可视化导入方法
  • 从训练数据视角:看机器学习和深度学习的大三范式
  • 太为难我了,阿里面试了7轮...
  • python内置数据结构常见操作易错总结[更新ing...]
  • 一文看懂低代码,5分钟从入门到原理全搞定
  • 【地铁上的设计模式】--创建型模式:建造者模式
  • 线程同步方式之三信号量
  • 电脑高效率工作、学习工具软件推荐
  • pwm调节亮度
  • Springboot +Flowable,通过代码绘制流程图并设置高亮
  • 车联网OTA安全实践
  • 2023年全国最新保安员精选真题及答案62
  • 计算机专业VB系统,有论文,源代码
  • 【Linux常见指令以及权限理解】基本指令(2)
  • Python自动化测试框架之unittest使用详解
  • 如何使用python网络爬虫批量获取公共资源数据
  • 用梯度下降的方式来拟合曲线
  • 使用virsh远程连接主机遇到的问题
  • Java版本+企业电子招投标系统源代码之电子招投标系统建设的重点和未来趋势