赞
踩
首先来看,题目中所说的:“名字就是考点”我们推测用于输入代码的id就是"name"
所以,我们先尝试看是否存在ssti漏洞:
可以看到,显示的结果为“0”,说明是存在漏洞的,所以我们进一步输入;
得到object基类,随后添加__subclasses__来得到所有的子类:
这里我们一般会使用popen函数,那么我们就需要先找到存放函数的类在什么地方,
通常来说我们可以从"os._wrap_close"中找到,我们可以先将所有子类复制之后,用python来将分割他们的逗号修改为换行符;输出后,我们可以通过对应的行数来得到:
结果为132.
最后我们通过该函数来提取flag:
web362的方法和web361很相似,但是当我们输入:
去取到子类时候发现:
我们初步推测是一些东西被过滤掉了,所以我们将name的值改为纯数字试试看,发现结果也是这样
所以我们得知,此时所过滤的是数字,我们可以通过将半角数字改为全角数字的方式来绕过即可。
老样子,先判断漏洞:
我们在进行下一步的时候发现:
出现问题,而数字并未被过滤,尝试后发现是双引号和单引号被过滤,所以我们尝试用其他方式如:
把’popen’先换成request.args.a(这里的a可以理解为自定义的变量,名字可以任意设置),让a=popen
当我们初次尝试到搜索popen函数之后,我们发现被过滤了一些东西:
试一试web363的方法:
我们发现arg被过滤了,很难受,但是可以使用别的方法:
我们将request中的arg换成cookic就可以,这样的话我们通过cookie信息就可以实现:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。