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

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

http://www.lryc.cn/news/2403313.html

相关文章:

  • DAY45 可视化
  • 11.RV1126-ROCKX项目 API和人脸检测画框
  • 超构光学与 AR 的深度融合 | 攻克 VAC 与眼动范围难题
  • [ Qt ] | 与系统相关的操作(三):QFile介绍和使用
  • RetroMAE 预训练任务
  • 软件工程:如何做好软件产品
  • 蓝桥杯 省赛 2025python(B组)题目(分析)
  • React - 组件通信
  • 《前端面试题:CSS的display属性》
  • 飞牛使用Docker部署Tailscale 内网穿透教程
  • 《数据挖掘》- 房价数据分析
  • centos中的ulimit命令
  • git提交代码和解决冲突修复bug
  • 华为仓颉语言初识:并发编程之同步机制(上)
  • php中实现邮件发送功能
  • C++之动态数组vector
  • arc3.2语言sort的时候报错:(sort < `(2 9 3 7 5 1)) 需要写成这种:(sort > (pair (list 3 2)))
  • Android动态广播注册收发原理
  • Ubuntu 系统通过防火墙管控 Docker 容器
  • AI 模型分类全解:特性与选择指南
  • 【Zephyr 系列 11】使用 NVS 实现 BLE 参数持久化:掉电不丢配置,开机自动加载
  • 【Android】Android Studio项目代码异常错乱问题处理(2020.3版本)
  • n皇后问题的 C++ 回溯算法教学攻略
  • 一些免费的大A数据接口库
  • DeepSeek本地部署及WebUI可视化教程
  • 机器学习算法时间复杂度解析:为什么它如此重要?
  • SSIM、PSNR、LPIPS、MUSIQ、NRQM、NIQE 六个图像质量评估指标
  • 【笔记】旧版MSYS2 环境中 Rust 升级问题及解决过程
  • centos查看开启关闭防火墙状态
  • [论文阅读] 人工智能 | 大语言模型计划生成的新范式:基于过程挖掘的技能学习