- 博客(627)
- 收藏
- 关注
原创 【PolarCTF】PHP_Deserialization
这样就可以触发class Day的__toString魔术方法,但是由于其中使用了str_replace进行过滤,我们可以将$filename="/flag"进行双写为/flaflagg来绕过str_replace的过滤。在class Night中使用echo 输出了$atguments[0],这个操作可以触发__toString的魔术方法,那么我们可以将night_arg赋值为class Day的实例。
2026-10-19 13:56:12
99
原创 【PolarCTF】phar
当我们调用$str_array['kfc']->vm50,但是$str_array['kfc']并没有vm50这个属性时。那么可以借助class A的echo "A->" . $this->a . "destruct!由于class C中并没有名为vm50的变量,那么这个vm50就会进入到__get方法。为了让var_dump($$f)输出flag,那么我们就需要让$f=flag。那么就可以把class B的实例化对象赋值给$this->a。那么魔术方法__get($kfc)的参数$kfc就是vm50。
2026-10-15 14:27:55
186
原创 【PolarCTF】safe_include
的修改只是在内存中的,只有在整个请求之后及session_write_close 时,才会修改本地的缓存文件,但是我们include是在之前的,并且保持着会话,所以在我们使用蚁剑进行连接的时候里面还是第一轮的一句话木马代码。这里肯定会有一个疑问,下面这段代码虽然可以进行文件包含,但是后面又进行了一次赋值,不是会破坏session里面的xxs内容,导致一句话木马失效吗?这题考察的就是session文件包含,polarctf有一题就叫《session文件包含》那么第一轮我们可以通过xxs来打入一句话木马。
2026-09-02 21:06:10
181
原创 【PolarCTF】鎏金哇开呀库裂!
使用file命令识别下,的确是png文件拖入随波逐流,发现png后面还有数据,而且是很明显的zip文件头使用foremost分离出来一个zip压缩包。
2026-09-02 17:02:19
241
原创 【PolarCTF】你想逃也逃不掉
区别在于《Unserialize_Escape》的长度是会从小变大,而这题长度是从大变小。这题与《Unserialize_Escape》类似,考察的也是反序列化长度逃逸。
2026-08-30 10:00:18
167
原创 【PolarCTF】苦海
把对象当作一个字符串来使用的时候,PHP 会自动调用 __toString()在读取一个对象不存在 / 不可访问的属性时自动触发。触发方式:把对象像函数一样加括号 () 调用。当对象当作函数直接调用时执行。
2026-08-24 18:09:35
50
原创 【PolarCTF】ezjava
Main-Class: org.springframework.boot.loader.JarLauncher Start-Class: com.xxx.你的项目主启动类。BOOT-INF/classes:你写的代码编译后的class文件,yml/properties配置、静态资源、模板文件。META-INF:jar自带的元信息目录,最重要的文件是MANIFEST.MF清单文件。BOOT-INF:存放的是自己的项目代码和所有第三方依赖jar。我们进行测试下,发现可以成功执行我们输入的表达式。
2026-08-23 17:10:21
224
原创 【PolarCTF】生产环境下的lvm
LVM:LVM 是 Linux 下的磁盘虚拟化管理机制。普通磁盘分区:分区大小创建时就定死,扩容缩容麻烦;LVM 在磁盘和文件系统中间增加一层抽象,把多块硬盘 / 分区合并成一个 “存储池”,再从池里灵活切分空间,可以动态扩容、缩容、做快照。然后开机我们输入下面命令,来查看当前虚拟机上的逻辑卷,可以看到我们刚刚挂载的虚拟磁盘。我们找个虚拟机,新增一个磁盘,然后选择【使用现有虚拟磁盘】将vmdk文件进行挂载。在日常中我们还要卸载同时将快照设置为inactive模式。首先我们激活这个磁盘快照。
2026-08-20 17:03:18
168
原创 【PolarCTF】Unserialize_Escape
通过这题我们可以看到想要获取flag,必须要password为123456,但是我们没办法控制password的内容,因为是写死的。2、PHP反序列化是“信任长度前缀”的,遇到s:N时,就会读取N的长度,读完N个字符后就会期待下一个字符必须是 " 才算这个字符串结束。由于有一个filter函数会把x变成yy,那么我们把payload发送到服务端就会变成。3、这里password是写死的,不接收外部的数据传递,所以我们没办法直接控制。首先我们写让password为123456的payload。
2026-08-20 12:28:00
217
原创 【PolarCTF】upload tutu
这里使用fastcoll来碰撞生成2个md5值一样的文件。当我上次两张不一样的图的时候会出现MD5不一致。当我上次两个一样的图的时候会出现如下提示。那么盲猜后端就是校验MD5值。上传后成功获取flag。
2026-08-20 09:51:47
180
原创 【HackMyVM】SuidyRevenge
note.txt有权限限制,但是运行suidyyyyy直接变为suidyyyyy的权限,查看了note.txt的内容。那么我看下kali自带的webshell,可以看到也有一个simple-backdoor.php。检查sudo版本信息,发现版本是1.8.27,会存在CVE-2021-3156漏洞。查看SUID文件,发现有一个/home/suidy/suidyyyyy。看下执行了什么历史命令,发现su root命令,尝试切换也是不行的。说是有violent的私钥文件,但是不知道放在哪。
2026-08-15 12:11:21
193
原创 【Bugku】xxmmll
直接扫到部署的docker-compose配置文件,拿到flag。在返回包中出现xxmmll.php。访问,很明显的XXE提示。输入下面内容读取flag。
2026-08-10 16:47:51
255
原创 【Bugku】坏掉的上传页
访问发现是记录上传文件的记录,可以找到我们的文件上传在了哪。用tscan扫下目录,发现一个config.php。打开网页,点击浏览按钮是点不动的,估计被破坏了。打开发现是这个,有一个database.db。跳回到网站上,并且提示【文件上传成功】尝试上传一个webshell。然后打开尝试上传一个图片。直接getshell。
2026-08-10 16:32:56
173
原创 【PolarCTF】flask_pin
Flask PIN是Flask调试控制台的访问密码。仅在debug=True下调式模式才能生效。当程序报错时,错误页面会出现交互式 Python shell 入口,必须输入 PIN 才能解锁。PIN码是9位数字,用-分割,例如 123-456-789PIN需要6个环境特征值拼接加盐MD5计算,6个环境特征值如下公开参数(报错页面可泄露)1、username:运行 Flask 进程的系统用户名(root/ubuntu/Administrator)2、modname:固定为 flask.app。
2026-07-15 11:58:44
294
原创 【HackMyVM】latestWasALie
命令作用:使用backupusr的 ED25519 私钥通过 SSH 本地加密通道,以归档模式、详细日志输出,把当前目录全部.txt文件增量同步到本机 /home/backupusr/backup/ 目录下,完整保留文件所有属性。/etc/ld.so.preload是动态链接器全局配置文件,ld 会先读取这个文件,里面写了哪些 .so 库,就会优先加载这些库。可以看到root的那个/root/backup.sh备份的目标就是/opt/registry。
2026-07-06 16:44:56
226
原创 【好靶场】一个多租户的学生登录系统2
可以看到这里school字段是加密的我们在主页上搜索encrypt字段,可以看到加密的接口,以及一个隐藏域存放加密后的学校值这里我们是美国大学,那么我们尝试越权访问好靶场大学,首先我们先获取好靶场大学加密后值这里我们直接通过其他api接口(就是点击好靶场大学这个按钮),直接获取加密后的值我们找到刚刚读取学信信息的数据包,将里面对应的美国学校值换成好靶场的值发送发现还是一样的信息接下来对type字段进行尝试,分别尝试了2、0还是一样。
2026-07-03 12:18:42
242
原创 【PolarCTF】out
解压修复后的压缩包,发现是一个jpg图片。直接拖入随波逐流,发现伪加密。属性的备注中直接提示F5隐写。直接使用随波逐流提取。
2026-06-28 10:43:06
249
原创 【PolarCTF】费眼睛的flag
打开excel发现都是空白,但是这个框画的就很明显是二维码。只要把加粗的涂上颜色就是一个二维码。可以看到有的是加租,有的没加租。然后直接扫码得到flag。
2026-06-28 09:43:53
180
原创 【PolarCTF】祺贵人告发
拖入随波逐流,发现存在zip,并使用binwalk分离出来。题目有提示md5加密,直接md5加密。使用ARCHPR直接暴力破解。
2026-06-27 21:41:09
104
原创 【PolarCTF】铁子,来一道
按顺序先查看 厨房-垃圾桶,说垃圾桶没什么有用的东西,但是可以看出垃圾桶3个字有点问题。这里binwalk提取不出来,要用foremost来提取,得到一个二维码。拖入随波逐流可以看到存在零宽字节,但是没有识别出来。通过cyberchef自动识别,发现是base32。这里用vscode打开也能看得出来。这里用随波逐流专门的零宽字节的工具。再看看 客厅-钢琴,有一个音频文件。将刚刚垃圾桶得到的wifi密码输入。拖入随波逐流,发现一个png图。打开听就是摩斯电码的声音。然后继续看 自己的卧室。
2026-06-27 21:19:00
194
原创 【PolarCTF】A 宽宽 S 00 E
根据题目名称,可以知道这题考的是零宽字节隐写,通过浏览器和记事本不会显示出来,但是实际上还是会占用空间。这里注意解密后的内容中间有空格要去除掉,而且这个是AES加密,不是base64加密,它们两个长得挺像的。通过刚刚的文本内容给的都是sql的内容,盲猜密钥是sql。解密出来的就是base64编码,然后进行base64解码。打开可以看到前面有一些隐藏的十六进制编码。然后通过在线的AES解密网站进行解密。题目是一个flag.txt文件。将上面的隐藏字符复制下来放到。下面这串字符就是flag。
2026-06-27 21:15:16
227
原创 【PolarCTF】签个到叭
签到也不能这么简单呀,快来看看这是什么加密: U2FsdGVkX18tKeM6n68CsdDjaZAYi9IcYF2LMwqNc1U=docx中还有一个隐藏文字,需要染色才能看到。使用7z解压,虽然报错,但是还是能解压出来。修改zip的文件的pk头解压,得到docx。(这部分是看别人的wp,补一补知识点)放到随波逐流可以看到提示文件头修改。打开docx文件,第一页就是这个。将净月潭进行md5加密,得到密钥。使用winrar自带的修复功能。直接扔到随波逐流提示伪加密。修复完之后提示要密码。
2026-06-27 21:01:14
232
原创 【PolarCTF】刷新试一下
普通 BMP/PNG 是直接存每个像素颜色,就像老老实实写作文,一字一句都摆外面。但JPG 图片为了压缩变小,会偷偷做一件事:把图片切成很多8×8 的小方块,然后把人眼看不出来的细微细节,偷偷模糊、简化掉。因此,F5隐写只能用在JPG上面重点:人眼对图片里的细微噪点、小纹理完全不敏感,稍微改一点点,你肉眼完全看不出变化。F5 就是专门藏在 JPG 图片里的隐写方法,它不直接改像素颜色,而是偷偷修改 JPG 压缩时那些「人眼看不出、不起眼的小数值」,把秘密文件 / 文字塞进去。
2026-06-27 12:51:56
252
原创 【好靶场】请一口气买101个汉堡
1、假设我买了100张卷花了1000块钱,那么在他程序里默认我是用1000块钱买了一张卷,然后全额退款的时候就相当于退1000块钱给我,然后回收一张优惠券。2、也可能是点击全额退款的时候默认我的优惠券持有数是一张,然后只回收一张券然后退回我购买的所有金额。但是发现只退了1张卷,但是钱全部退回来了。
2026-06-26 22:23:59
192
原创 【好靶场】负数购买案列
我直接在repeater中将金额改为负数发包就可以得到flag。可以看到购买成功,而且自己的金额增加了。点击【我的钱包】只有46块钱。这里尝试购买无线蓝牙耳机。
2026-06-26 22:06:36
208
原创 【好靶场】任意用户密码找回了解一下
尝试重置密码,显示了验证码的前2位,但是正常情况下说是不会有这种显示的。这里我们直接对验证码进行爆破。成功获得验证码3553。
2026-06-25 10:09:33
168
原创 【PolarCTF】iphone
这道题是PolarCTF的一道入门题,题目提示需要用iPhone或iPad的User-Agent来访问。这里提示很明显就是需要用iphone或者ipad的UA头来访问。这里直接使用User-Agent Switcher来进行切换。
2026-06-24 16:40:05
49
原创 【PolarCTF】这又是一个上传
本来想在kali上编译完上传运行,但是因为glibc版本不一样,导致没办法运行,那么就直接在目标主机上进行编译。直接将webshell后缀命名为jpg,然后使用burpsuite抓包改为php后缀即可绕过前端过滤。发现有一个 /opt/polkit-0.105/src/programs/.libs/pkexec。这里我们可以直接使用哥斯拉的SuperTerminal来解决即可。这里需要注意一个提权前提:完整的tty是很多命令执行的前提。
2026-06-23 15:33:01
216
原创 【PolarCTF】PHP是世界上最好的语言
第一部分 parse_str和extract相互配合绕过传参限制首先是:那么我们可以:由于没有通过传统的GET、POST方式,因此可以绕过经过 @parse_str($_SERVER['QUERY_STRING']) 则变成了:再经过 extract($_POST) 就变成了:就可以成功绕过:第二部分 参数包含_的传递由于POST不能传递_,可以使用:但是本题只能使用 [,因此第二部分的payload:第三部分
2026-06-23 11:52:57
37
原创 【PolarCTF】老刘的小店
这个过滤的正则跟有一道rapyiquan是一样的,可以直接参照,payload如下。登录进入,最引人注意的就是最后一个【老刘的秘密钥匙】,但是需要10000块。然后登录user02,进行转账,抓包修改amount值发包。通过获得账户秘密进行登录,进入到polar.php页面中。然后再次登录user01,发现得到了很多coins。但是我们只有1块,那么接下则是想办法赚到足够的钱。这里在注册一个账户user02/user02。页面上获取钱的功能有:点击按钮获得钱、转账。注册一个账户user01/user01。
2026-06-23 00:15:56
249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅