[题目信息]:
题目名称 | 题目难度 |
---|---|
文件上传-黑名单绕过4 | 1 |
[题目考点]:
黑名单文件后缀名检测
[Flag格式]:
SangFor{NDZmFCwliiPQLeWaCLq93bjHaU826PiV}
[环境部署]:
docker-compose.yml文件或者docker tar原始文件。
docker-compose up -d
端口:11009
[题目writeup]:
对于黑名单的绕过是最容易理解的一种绕过方式,只要可以突破上传点没有限制到的后缀名即可上传成功。
举例几种常见的后缀名:
".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pHp",".pHp5",".pHp4",
在测试上传点时,只要上传点忽略了其中一点,我们就能够上传可以解析的php文件;
至于如何知晓哪些后缀没有被限制,可以使用 burpsuite 批量上传来测试后缀名。
首先随意抓取一个 request 请求包发送给 intrude:
接着添加以下 payload 并开始攻击:
php
php7
php5
php4
php3
php2
php1
html
htm
phtml
pHp
Php
phP
pHp5
pHp4
pHp3
pHp2
pHp1
php.
php. .
php
在测试过程中发现,服务器后端进行了将敏感后缀替换为空的处理
类似于关键词置空的过滤可以尝试使用双写等操作进行突破,上传后缀为.pphphp的文件,成功上传
根据上传返回路径,访问上传文件,成功解析
[题目信息]:
题目名称 | 题目难度 |
---|---|
文件上传-黑名单绕过3 | 1 |
[题目考点]:
黑名单文件后缀名检测
[Flag格式]:
SangFor{DUb6AZgvJHty1Jg2P1CfmioYsd99Hpr-}
[环境部署]:
docker-compose.yml文件或者docker tar原始文件。
docker-compose up -d
端口:11008
[题目writeup]:
1、实验主页
2、题解分析
对于黑名单的绕过是最容易理解的一种绕过方式,只要可以突破上传点没有限制到的后缀名即可上传成功。
举例几种常见的后缀名:
".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pHp",".pHp5",".pHp4",
在测试上传点时,只要上传点忽略了其中一点,我们就能够上传可以解析的php文件;
至于如何知晓哪些后缀没有被限制,可以使用 burpsuite 批量上传来测试后缀名。
首先随意抓取一个 request 请求包发送给 intrude:
接着添加以下 payload 并开始攻击:
php
php7
php5
php4
php3
php2
php1
html
htm
phtml
pHp
Php
phP
pHp5
pHp4
pHp3
pHp2
pHp1
php.
php. .
php
测试发现.php.这样的后缀能成功上传。
根据上传返回路径,访问上传文件,发现成功解析
[题目信息]:
题目名称 | 题目难度 |
---|---|
文件上传-黑名单绕过 | 1 |
[题目考点]:
黑名单文件后缀名检测
[Flag格式]:
SangFor{5G9UYJEZpyXDIfBIonaFWNAKc8w029QH}
[环境部署]:
docker-compose.yml文件或者docker tar原始文件。
docker-compose up -d
端口:11007
[题目writeup]:
1、实验主页
2、题解分析
对于黑名单的绕过是最容易理解的一种绕过方式,只要可以突破上传点没有限制到的后缀名即可上传成功。
举例几种常见的后缀名:
".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pHp",".pHp5",".pHp4",
在测试上传点时,只要上传点忽略了其中一点,我们就能够上传可以解析的php文件;
至于如何知晓哪些后缀没有被限制,可以使用 burpsuite 批量上传来测试后缀名。
首先随意抓取一个 request 请求包发送给 intrude:
接着添加以下 payload 并开始攻击:
php
php7
php5
php4
php3
php2
php1
html
htm
phtml
pHp
Php
phP
pHp5
pHp4
pHp3
pHp2
pHp1
php.
php. .
php