目录

  1. 1. 前言
  2. 2. WEB
    1. 2.1. 黑心的网站
      1. 2.1.1. 题目
      2. 2.1.2. 操作
    2. 2.2. 上传小考验
      1. 2.2.1. 题目
      2. 2.2.2. 操作

LOADING

第一次加载文章图片可能会花费较长时间

要不挂个梯子试试?(x

加载过慢请开启缓存 浏览器默认开启

Forestwolf

2023/3/2 CTF线上赛
  |     |   总文章阅读量:

1

前言

南森新生赛,确实是新生级别的赛事,题目难度不会太高,甚至有好几题都是网上搜到的buu有的题目(笑),但是web题个人觉得还是有一定学习空间的(虽然谁会把文件上传题放公共靶机就是了),这里先对个人感兴趣的web题进行复现,其他方向先咕了(

WEB

黑心的网站

源码泄露+misc(?)

因为题目环境在比赛结束后立刻就关闭了且没有复现,所以这边直接贴官方wp

题目

域名打开是一个文件传输的页面,页面内没有可交互的东西(所以为什么题目页是nc+域名啊

image-20230318163115790

操作

查看页面源代码

image-20230318163305172

提示源码泄露,但是不让扫(悲)

于是这边就自己写脚本进行扫描。。。

import requests

# 扫描地址
url1 = "需要扫描的地址"

# 常见网站源码备份文件名
dir1 = ['web','website','backup','www','wwwroot','temp']

# 常见网站源码备份文件后缀
final2 = ['tar','tar.gz','zip','rar','bak']

# 开始扫描
for i in dir1:
    for j in final 2:
        # 拼接备份文件名
        filename = str(i) + '.' + str(j)
        # 拼接最终url
        url = str(url1) + '/' + filename
        # 返回文件名
        print(filename + ' ',end='')
        # 返回数据包长度,根据长度判断网站备份文件
        print(len(request.get(url).text))

得到backup.tar.gz,下载后代码审计(当时博主后缀手动爆破出来过,但是当时没想到还要爆文件名

image-20230318164735914

得知靶机所在路径 /NFPC,进入下面的这个页面

img

目录遍历进入are you crazy now根据提示完成xss:

"> <scr***\*script\****ipt>alert(343)</s***\*script\****cript>

img

据此得知flag应该藏在/WAxiangxiangzuichaofan/flag中

或者不进行xss,直接查看网页源代码也能发现

image-20230318165457873

(非预期解)(其实这才是预期解吧

用winhex查看,发现文件头文件尾特征,foremost中分离文件

image-20230318165739269

img

img

得到flag{Friend3inForestwo1f}


上传小考验

文件上传二次图片渲染

题目

试图上传php

image-20230319172028621

这里上传一张纯色jpg看看回显

发现没有回显(但是传张正经jpg图片好像就有回显,或许是bug?)

于是再传张png的上去

image-20230319172425732

直接回显图片

操作

于是这里往图片写入一句话木马(注:这里不能在上传时把后缀名改为php)

image-20230319173648469

根据回显下载上传的图片,用010打开后发现一句话木马被删除了

image-20230319173614302

同时发现与原图片之间有巨大变动

猜测文件是经过二次渲染,因此将一句话木马放入未被删除的部分里

再次上传。。。然后没回显,博主就卡在这里了。。。。(后来知道png和gif的二次图片渲染是不一样的)

这里还是上官方wp吧

官方这里上传了gif写入一句话木马在未被删除的部分,上传成功

image-20230319174311417

接下来的问题就是如何利用图片马拿到flag,f12查看网页源码,并没有发现什么东西

img

但是发现能够向下滑动,翻到最下面后发现第二个提示:

“nanjing目录下有flag1.php !也许这能帮助你”

img

我们访问nanjing目录下的flag1.php

img

由于我们已经传入图片马,只需要能够将图片马利用就能拿到flag,因此,我们猜测这个网页能够帮助我们达成这一目的,有可能存在文件包含漏洞,因此通过这个网页尝试访问图片马,通过新标签页我们得知图片马的所在位置:

nanjing/a587d44cd48ed2793dec95d3642b9e73/1613146611.gifimg

而flag1.php所在路径为:nanjing/flag1.php, flag1.php和图片马所在路径不一致,和a587d44cd48ed2793dec95d3642b9e73在同一目录下

因此,我们通过file=a587d44cd48ed2793dec95d3642b9e73/1613146611.gif来访问图片马

img

好像访问成功了!

我们用蚁剑链接试一试

img

访问成功!

我们发现了flag目录,好像找到flag了!我们访问它

img

在里面我们找到了flag.txt,打开它

img

里面没有flag!但是有一个新提示:flag所在文件名叫做hello.txt

我们返回题目所在目录,发现一个奇怪的文件夹

img

打开后有hello.txt!我们就此找到了flag

img

img