[ACTF2020 新生赛]Include1

[ACTF2020 新生赛]Include1

打开实例发现tips,点击是这个页面,猜测为flag绕过

image-20241104215624135

执行linux命令和一些bypass方法后发现无果,猜测为文件包含

构造php的base64编码文件包含payload

?file=php://filter/read=convert.base64-encode/resource=flag.php

得到一串文件的base64编码

image-20241104220019481

解密得到flag

image-20241104220051284

tips:php://filter/read=convert.base64-encode/resource=flag.php解释为:

`?file=php://filter/read=convert.base64-encode/resource=flag.php` 是一个PHP流包装器的URL,它通常用于在PHP中读取文件内容。这里的URL结构表示:

1. `?file=`:这是一个查询字符串的开始,通常用于传递参数。
2. `php://filter/`:这是一个PHP流包装器,它允许对流数据进行处理。
3. `read=convert.base64-encode`:这是一个过滤器参数,表示对读取的数据进行Base64编码。
4. `resource=flag.php`:这是指定的资源文件,即`flag.php`文件。

这个URL的目的可能是将`flag.php`文件的内容读取出来,并对其进行Base64编码。

`php://filter` 支持多种过滤器参数,其他过滤器及其描述:

1. **字符串过滤器**:
   - `string.rot13`:对字符串执行ROT13转换,使用字母表中后面第13个字母替换当前字母。
   - `string.toupper`:将字符串转化为大写。
   - `string.tolower`:将字符串转化为小写。
   - `string.strip_tags`:从字符串中去除HTML和PHP标记。

2. **转换过滤器**:
   - `convert.base64-encode`:对给定字符串进行base64编码。
   - `convert.base64-decode`:对给定的base64编码内容进行解码。
   - `convert.quoted-printable-encode`:将8-bit字符串转换成quoted-printable字符串。
   - `convert.quoted-printable-decode`:将quoted-printable字符串转换为8-bit字符串。
   - `convert.iconv`:实现任意两种编码之间的转换。

3. **压缩过滤器**:
   - `zlib.deflate`:压缩过滤器。
   - `zlib.inflate`:解压过滤器。
   - `bzip2.compress`:压缩过滤器。
   - `bzip2.decompress`:解压过滤器。

4. **加密过滤器**:
   - `mcrypt.*` 和 `mdecrypt.*`:使用libmcrypt提供对称的加密和解密。

这些过滤器可以单独使用,也可以通过管道符`|`组合使用,以实现复杂的数据处理。
例如,可以同时使用`string.toupper`和`string.rot13`对数据进行大写转换和ROT13编码。
posted @ 2024-11-08 18:46  TazmiDev  阅读(253)  评论(0)    收藏  举报