XCTF--WEB i-got-id-200

i-got-id-200

打开题目环境,点击Files会跳转到/cgi-bin/file.pl文件中进行执行。
这里可以上传任何一个文件,然后会在下方打印出内容。那么我们猜测后台逻辑大概是这样的
use strict; use warnings; use CGI; my $cgi= CGI->new; if ( $cgi->upload( 'file' ) ) { my $file= $cgi->param( 'file' ); while ( <$file> ) { print "$_"; } }
那么,这里就存在一个可以利用的地方,param()函数会返回 一个列表的文件 但是 只有第一个文件会被放入到下面的file变量中。如果我们传入一个ARGV的文件,那么Perl会将传入的参数作为文件名读出来。
在正常的上传文件前面加上一个文件上传项ARGV,然后在URL中传入文件路径参数,可以实现读取任意文件。
得到flag
XCTF--WEB i-got-id-200_第1张图片

你可能感兴趣的:(CTF)