BUUCTF–[CSAWQual 2016]i_got_id

  • Post author:
  • Post category:其他


进入页面后有三个链接,FIles中是一个文件上传




perl编写的网页文件,大佬们都是猜出后端代码的,这里就直接看本题的代码

if ($cgi->upload('file')) {
    my $file = $cgi->param('file');
    while (<$file>) {
        print "$_";
        print "<br />";
    }
}

param()函数会返回一个列表的文件但是只有第一个文件会被放入到下面的file变量中。而对于下面的读文件逻辑来说,如果我们传入一个ARGV的文件,那么Perl会将传入的参数作为文件名读出来。这样,我们的利用方法就出现了:在正常的上传文件前面加上一个文件上传项ARGV,然后在URL中传入文件路径参数,这样就可以读取任意文件了。

  • 域名后添加?cat+/flag
  • 复制为15.16行内容,删除filename
  • 添加ARGV



版权声明:本文为qq_46263951原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。