小工具知识网

当前位置: 首页 > 行业知识 > XYCTF-部分web总结

行业知识

XYCTF-部分web总结

2026-11-16 02:47:57 来源:互联网转载

这个月在XYCTF中写了部分web题,题中学到在此记录一下

ezhttp

打开就是一个简单的登录页面

f12说藏在一个地方,先想到的就是robots.txt

访问直接给账号密码

username: XYCTFpassword: @JOILha!wuigqi123$

 登录后:

 明显考源跳转,修改referer值为yuanshen.com

 UA头检测,修改UA头为XYCTF

检测设备ip,添加client-ip: 127.0.0.1

 考代理,使用XFF被ban了,换一个使用Via

Via: 该字段指示请求经过的代理服务器信息。它包含一个或多个代理服务器的名称和版本号,以及可选的注释信息。

 

 在cookie中添加XYCTF


 

ezmd5

 上传相同的图片抓包

发现md5一样但是areEqual是false

稍微修改一下图片内容发现areEqual为true但md5又为false

 猜测大概是要一个内容不同但是md5相同的图片

资料说是可以在不修改图片内容数据下去修改md5计算部分为相同

这位篇文章就有符合条件的图片

制造 MD5 碰撞 | 米米的博客 (zhangshuqiao.org)

 


warm up

 分析代码,首先一个很基础md5弱比较,数组绕过

val1[]=1&val2[]=2

 

 利用弱比较科学计数法让md5加密后还是以0e开头从而达到0=0的效果

md5=0e215962017

 

 XY不能等于这个数但是md5加密后要相等

乍一看没有办法过去,但是 XYCTF_550102591

 加密后是以0e开头的,跟上一部分差不多原理

找一个md5加密后以0e开头的即可,所以总payload为

val1[]=1&val2[]=2&md5=0e215962017&XY=0e215962017&XYCTF=0e215962017

 


 ezmake

Makefile考察,通过编写makefile项目内容去读取flag

直接给SRC赋值shell来实现系统命令执行

$SRC:=$(shell 'ls')

 

 因为没有做任何过滤,shell的解释器也指定为/bin/bash所以直接读取flag即可

$SRC:=$(shell 'cat flag')

 当然也可以利用GNU Make 的 $(file) 函数结合文件函数(file function)来读取文件的行数或某一行的内容

 $SRC:=$(file


ez?make 

 

 这题明显加了过滤,通过fuzz发现过滤的字符有

f,l,a,g,$,/,?,*

 没有了$就不能通过调用正常的调用函数和通配符去读取flag了

 对单字母的过滤可以利用linux对大小写敏感的特性通过大写绕过

而执行命令的方法可以通过编码进行绕过我们要直到,bash执行的是二进制数据,所以只要将要执行的命令转换成二进制去执行进行了

这里先利用xxd转换和管道符传递最后用反引号来执行:

`echo 636174202F666c6167 | xxd -r -p`

 


牢牢记住,逝者为大 

 对传入的cmd进行检查最后利用eval函数执行,但是eval函数中包含的其他的字符。如果仔细看前面的字符中man前面有一个#这个是用来注释的这会注释掉拼接的cmd而不能执行。

难点一

  •  长度要求cmd和?不能使用短标签阶段......

     但是我们忘记了最朴实无华的方法换行截断,我们可以通过%0a或者%0d来阻断前面的字符,这样我们换行后,前面的字符就被注释掉而不当成PHP命令去执行。后面也是利用#去注释掉

     这样eval的问题就解决了

    最后构造外带参数时是要通过反引号去执行传入的参数,受限于长度限制,不能将执行的命令进行打印,这里可以通过将flag的内容复制到另一个文件来解决无显RCE,虽然过滤了cp但是可以利用linux特性\来绕过(小坑:仔细看过滤规则,是过滤|而不是\)

    最终payload:

    cmd=%0a`$_GET[B]`;%23&B=c\p /[@-z][@-z][@-z]g 1.txt

     这里有一个小小的知识点

    访问1.txt 


    ezRCE

     对传入的cmd进行检测,最后将cmd直接使用system执行系统命令

    在对cmd的检测中:

    遍历cmd中的每一个字符,要求每一个字符都为white_list上面的

    解决:

     观察白名单上的字符只能是字符和斜杠和$符和

上一篇:linux怎么设置dns服务器?

下一篇:QQ空间官方网站——探索社交新体验