[CSAWQual2016]i_got_id
开局三个超链接:
helloworld提示perl:
Forms登陆页面,没有有用的信息,正常显示,无二次注入点,SQL注入,ssti都没有
就是files上传文件了,可以发现要上传perl文件:
直接猜测后端代码:
1 | use strict; |
解释:
my $file= $cgi->param( ‘file’ );:
param()函数返回一个列表的文件。但是只有第一个文件会被放入file变量中。
while ( <$file> )中,<>不能处理字符串,除非是ARGV,因此循环遍历并将每个值使用open()
调用。
对于读文件,如果传入一个ARGV的文件,那么Perl会将传入的参数作为文件名读出来。
所以,在上传的正常文件前加上一个文件上传项ARGV,然后在URL中传入文件路径参数,就可以读取任意文件。
抓包:将里面的东西删除,复制15,16行空一行粘贴
第一个——-删除Content-Type,加的那个加上这个,在添加的地方前面加上ARGV
在url加上?cat+/etc/passwd(cat+/flag)(空格用+替代):
然后就出了:
参考链接:[CSAW 2016 I Got Id – Web200]i_got_id](https://tsublogs.wordpress.com/2016/09/18/606/)