首页
社区
课程
招聘
[原创][CTFHub] 2021-第四届红帽杯网络安全大赛-Web-find_it
发表于: 2021-5-12 19:31 6936

[原创][CTFHub] 2021-第四届红帽杯网络安全大赛-Web-find_it

2021-5-12 19:31
6936

看群里说CTFHub上复现了, 我来看看

本来想按照红帽杯的套路来试一下,发现phpinfo里莫得flag了

只能想想其他办法咯

preg_match()过滤了eval但是!!!!!

Eval它没ban

所以我们可以写'大'马

构造payload:

蚁剑连马

拿到flag:

但是作为菜鸡

我还是要重新思考一下这道题的思路:

代码中有几个函数需要注意一下

比如fopen(),fwrite(),fread()

也就是说,这里已经读到了flag

所以也就是说,我们再绕通配符写马的时候,flag也被传进了hack.php中

但是为什么看不到呢(具体我也不知道,知道的大哥哥可以告诉我学习一下)

但是我想到了另外一个函数show_source()

随机构造payload:

然后访问hack.php

flag他就出来了。。。。

同时还有我传入的payload

搞一波骚操作!

所以,今天又学到了新姿势~~~~

 
 
 
<?php
 
#Really easy...
 
$file=fopen("flag.php","r") or die("Unable 2 open!");
 
$I_know_you_wanna_but_i_will_not_give_you_hhh = fread($file,filesize("flag.php"));
 
 
$hack=fopen("hack.php","w") or die("Unable 2 open");
 
$a=$_GET['code'];
 
if(preg_match('/system|eval|exec|base|compress|chr|ord|str|replace|pack|assert|preg|replace|create|function|call|\~|\^|\`|flag|cat|tac|more|tail|echo|require|include|proc|open|read|shell|file|put|get|contents|dir|link|dl|var|dump/',$a)){
    die("you die");
}
if(strlen($a)>33){
    die("nonono.");
}
fwrite($hack,$a);
fwrite($hack,$I_know_you_wanna_but_i_will_not_give_you_hhh);
 
fclose($file);
fclose($hack);
?>
<?php
 
#Really easy...
 
$file=fopen("flag.php","r") or die("Unable 2 open!");
 
$I_know_you_wanna_but_i_will_not_give_you_hhh = fread($file,filesize("flag.php"));
 
 
$hack=fopen("hack.php","w") or die("Unable 2 open");
 
$a=$_GET['code'];
 
if(preg_match('/system|eval|exec|base|compress|chr|ord|str|replace|pack|assert|preg|replace|create|function|call|\~|\^|\`|flag|cat|tac|more|tail|echo|require|include|proc|open|read|shell|file|put|get|contents|dir|link|dl|var|dump/',$a)){
    die("you die");
}

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//