php大法,PHP大法——实验吧

注意备份文件

解题链接: http://ctf5.shiyanbar.com/DUTCTF/index.php

d5f837960d9e40cf1961a8ba033c4472.png

解题思路:看见这一题首先是没有思路,仔细查看,就会发现很多有意思的事情

首先:你会发现有点不一样呀:

202122bb13d89923768e8e26c8b4e691.png

然后按照提示进行更改得到:

cb5a318bc89d7e71cee053b7323f30d9.png

发现并没有得到有用的信息:之后就是需要对于源代码进行分析:

db67e16d9f7d70f475fe3efab0ce4b98.png

我们重新审视下那段php代码,看到一段

e16b8468b93cdd61e73062508fb86076.png

要传入一个url编码的参数,这时候我们可以用到一个工具,

小葵转码工具,我们可以进行url转码!!!

d1062eab84a87900a2a4965e304007a4.png

我们把这段代码输入试试看~~~

4709e605dc85c3df7aa456cf1a053330.png

还是不允许访问,仔细看PHP就会发现,这个是浏览器的一个漏洞,浏览器会自动把url编码进行一次转义,

所以我们应该把当前url编码再进行编码一次!

然后再进行一次转码:

5f6d487e92b5858171a0b3fe178be0c2.png

输入到(这一个需要看仔细一点呀)上面那个地方是输入二次转码得到的字符串!!!

8970f42cd427378bc5a00a5b6ac3cd04.png

其实还有一种做法:

db67e16d9f7d70f475fe3efab0ce4b98.png

首先eregi()函数进行一次比较判断,如果想打印flag,id不能等于"hackerDJ" ,并且经过url解码后id等于"hackerDJ"

但这里需要注意的是:在浏览器中提交时浏览器会为我们进行一次解码

可以在本地执行下面的代码:

$id = '%68ackerDJ';

if(eregi("hackerDJ",$id)) {

echo("

not allowed!

");

exit();

}

$id = urldecode($id);

if($id == "hackerDJ")

{

echo "

Access granted!

";

echo "

flag: *****************}

";

}

?>

可以看到成功打印,说明浏览器的确为我们转换了一次

441d49ca4fbfb28114b33cd2ade00cde.png

因此我们需要进行两次编码: h --> %68 --> %2568

第一次得到:

9d44983a691aa8902ab14a2ae64409c0.png

第二次得到:

aafa0bba3634e94c537feb23f160984b.png

构造url: index.php?id=%2568ackerDJ最后答案:

flag: DUTCTF{PHP_is_the_best_program_language}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值