欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CTF题解五 Web PHP大法(实验吧)

程序员文章站 2022-05-15 10:23:30
...

实验吧题目链接:http://www.shiyanbar.com/ctf/54

CTF题解五 Web PHP大法(实验吧)

首先,根据题目中提示,要注意备份文件。

点开题目链接后,最后有提示index.php.txt。于是进行访问。

CTF题解五 Web PHP大法(实验吧)

采用的是GET方法,代表着之后可以用?id=XXX的方式进行测试。

程序的主要逻辑是,GET方法得到的id的值必须被hackerDJ所包含,却又在进行一次url解密后,与其相等。

这里涉及到PHP中urldecode这一函数的特性urldecode会把字符串中所有带%的数字进行解密。

尝试输入?id=%68ackerDJ,按下回车键,发现什么也没发生。看一下浏览器的url,发现浏览器为我们完成了一次url解码,如图:

CTF题解五 Web PHP大法(实验吧)

所以我们需要对hackerDJ进行两次url加密。

看一个例子:

<?php
    $a="%2568ackerDJ";
    $a=urldecode($a);
    echo $a, "</br>";
    $a=urldecode($a);
    echo $a;
?>

这里%25对应的符号是%

所以第一次解密后得到%68ackerDJ,再解密一次得到hackerDJ

输入?id=%2568ackerDJ,就可以得到flag了:

flag: DUTCTF{PHP_is_the_best_program_language}