ctf.show 萌新模块 web12关, 这一关考察的是代码执行漏洞的利用, 重点在于命令执行函数的利用方式, 推荐使用反引号(``) 或者 base64加密绕过

页面中展示了部分源码, 并提示我们 falg 就在 config.php文件中, 读取文件内容即可拿到 flag

首先分析一下源码

重点在这个if判断中, 过滤了参数中的 system exec highlight cat . php config 关键字, 只要绕过这些过滤条件就能使用 eval()函数执行代码了

方法一, base64加密绕过

base64_decode();    -- base64解码,常用于参数绕过
base64_encode();    -- base64加密

查看当前目录文件, 拿到 config.php文件的位置

?c=passthru('ls');

由结果可知, 文件就在当前目录下

接下来获取 config.php 文件名base64加密后的值, 这里使用 base64_encode()函数来加密, 方法不唯一, 其他方式获取加密的值也可以

加密完成后, 利用base64加密后的文件名绕过过滤条件, 查看文件内容, 由于 cat命令被过滤了, 这里使用 more 代替

?c=$a = base64_decode('Y29uZmlnLnBocA==');passthru("more $a");

页面空显示, 但也没报错

右键查看网页源码即可看到文件内容, 获取 flag

方法二, 反引号绕过

反引号``, 可以执行系统命令, 并返回一个字符串类型的变量, 用来保存命令的执行结果, 需要注意的是, 反引号``中的命令会先被执行并将结果以字符串类型的变量返回, 而后再参与到其他代码的执行, 类似一个函数

首先查看当前目录下的文件, 确认 config.php 文件的位置

?c=echo `ls | grep conf*`;

由结果可知, 文件就在当前目录下

上面的命令 `ls | grep conf*` 返回结果是一个内容为 config.php 的字符串变量, 我们将返回结果作为文件名使用 more命令查看文件内容, 即可获取 flag

?c=passthru('more `ls | grep con*`');

页面空显示, 但没有报错, 没有关系, 这很正常

右键查看网页源码即可拿到 flag

ctfshow-萌新-web12( 利用命令执行函数获取网站敏感信息)相关推荐

  1. ctfshow-萌新-web11( 利用命令执行漏洞获取网站敏感文件)

    ctf.show 萌新模块 web11关, 这一关考察的是命令执行漏洞的利用, 源码中过滤了一部分命令执行函数和文件查看的命令, 推荐使用 passthru()函数配合 more命令获取敏感文件中的f ...

  2. ctfshow-萌新-web10( 利用命令执行漏洞获取网站敏感信息)

    ctf.show 萌新模块 web10关,这一关考察的是命令执行漏洞的利用,闯关者需要知道3个以上PHP命令执行函数的使用,推荐使用 passthru() 页面中展示了部分源码,并提示我们 flag ...

  3. ctfshow-萌新-web13( 利用代码执行漏洞获取网站敏感文件)

    ctf.show 萌新模块 web13关, 这一关的考点是代码执行漏洞, 需要灵活的运用各种命令执行函数, 源码中过滤了system, exec, highlight函数, cat命令, congfi ...

  4. ctfshow-萌新-web9( 利用命令执行漏洞读取网站敏感文件)

    ctf.show 萌新模块 web9关,这一关考察的是命令执行漏洞的利用方式,使用PHP的命令执行函数执行系统命令,读取网站根目录下的配置文件,获取flag 页面中展示了部分源码,很明显是作者提示我们 ...

  5. ctfshow-萌新-web14( 曲线救国-POST请求绕过获取网站敏感信息)

    ctf.show 萌新模块 web14关, 此关卡是一个代码执行漏洞, 重点在于命令执行函数的利用方式, 源码中过滤比较严格, 尤其是过滤了分号;之后, 虽然可以用?>来代替分号, 但这样一来就 ...

  6. CTF之萌新web学习(命令执行2)

    命令执行2 命令执行无回显情况 可控字符串长度限制getshell 15个字符 7个字符 4或5个字符 无字母数字getshell 异或运算 取反 自增 进行实验测试 命令执行无回显情况 判断方法 使 ...

  7. ctfshow-萌新-web6( 利用二进制绕过获取网站敏感信息)

    ctf.show 萌新模块 web6关,这一关的考点是intval()函数转换字符串的特性,以及SQL注入漏洞的绕过方式,源码中过滤了单双引号,or,加减乘除号,叹号,异或,hex,select等关键 ...

  8. ctfshow-萌新-web5( 利用位运算符控制SQL获取网站敏感信息)

    ctf.show 萌新模块 we5关,这一关考察的是intval()函数转换字符串的特性和SQL注入的绕过思路,这一关过滤了单双引号,or,斜杠,加减乘除号,叹号,括号,select等关键字,推荐使用 ...

  9. ctfshow 萌新web10-21

    ctfshow 萌新web10-21 web10 题目提示flag在congfig.php中 php中作为执行系统命令的函数: system() passthru() exec() shell_exe ...

最新文章

  1. 乖乖给行人让路?学界推出无人机控制技术NMPC,可在低空中实现自主导航和避障...
  2. 机器人 知乎碧桂园_从房地产大亨到跨界造“机器人”,碧桂园葫芦里卖着什么药?...
  3. document 获得元素节点,属性节点,文本节点。
  4. linux 修改时区_【003】一文全面掌握Linux初始化进程(超详细)
  5. java 内存映射文件 主要应用_VC++中使用内存映射文件处理大文件(3)
  6. Leaflet中使用Leaflet.contextmenu插件实现地图上添加鼠标右键菜单
  7. [BZOJ] 3191 [JLOI2013]卡牌游戏
  8. 使用screen -r时提示“There is no screen to be resumed matching xxx”的解决办法
  9. 将页面中表格数据导出excel格式的文件(vue)
  10. 优客365导航系统美化UI版源码-带交易功能
  11. Linux chmod 命令 设置权限
  12. 网站使用 VideoPlayer 方法
  13. 硬盘绝密维修资料(2)
  14. 直播电商系统源码 直播系统源码
  15. 模拟器安装 xposed
  16. 计算机导论黄国兴百度云,计算机导论黄国兴
  17. 如何在视频中加水印?分享这些实用的加水印方法给你
  18. 设计模式之观察者模式——猫抓老鼠2
  19. UG NX 10 重新附着草图
  20. 在VS Code中开发ESP32遇到如下IDF_PATH环境变量不一致的警告问题

热门文章

  1. HDU_oj_2046 骨牌铺方格
  2. BZOJ3312: [Usaco2013 Nov]No Change
  3. Mysql中show命令详解
  4. Delphi中线程类TThread实现多线程编程2---事件、临界区、Synchronize、WaitFor……
  5. hdu 2545 并查集
  6. love2d杂记4--有用的辅助库
  7. [转贴]Silverlight Socket 实现收发信息
  8. SetWindowPos详解
  9. 大数据之-Hadoop3.x_MapReduce_序列化案例FlowMapper---大数据之hadoop3.x工作笔记0098
  10. 大数据之-Hadoop3.x_MapReduce_核心思想---大数据之hadoop3.x工作笔记0083