这题考的是perl的任意文件,结合ARGV参数可以读取任意文件
具体可以看这篇
在文件上传页面,通过修改burpsuite抓到的包,可以实现读取任意路径
具体做法:
在原包上面复制一份抓到的文件内容,然后把文件名去掉,在下面加上一行ARGV,最后在url上加上?+文件路径
由于ARGV写在了原文件内容的前面,所以由于param函数只读取第一个文件内容的属性,读取了我们传入的文件路径的内容
当然可以看一下/var/www/html/cgi-bin/file.pl的原文件内容
```perl use strict; use warnings; use CGI;
my $cgi= CGI->new;
if ( $cgi->upload( 'file' ) )
{ my $file= $cgi->param( 'file' );
while ( <$file> )
{ print "$_";
} }
这里的利用点就在param函数这里
知道了文件路径的话,直接读取flag?/flag
当然也可以用bash读?/bin/bash%20-c%20cat${IFS}/flag|
参考视频链接:https://www.bilibili.com/video/BV15L4y1Y7Ue/