SUCTF 2019 easyweb write up
[SUCTF 2019] easyweb 题目来源: BUUCTF [SUCTF 2019] easyweb 题解拼凑字符串绕过正则表达式刚打开靶机就是 php 审计: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 <?phpfunction get_the_flag(){ // webadmin will remove your upload file every 20 min!!!! $userdir = "upload/tmp_".md5($_SERVER['REMOTE_ADDR']); if(!file_exists($userdir)){ mkdir($userdir); } if(!empty($_FILES["file"])){ $tmp_name =...
SSTI 1 - (Flask) 总结
SSTI 1 - (Flask) 总结 SSTI - 基于 Flask + Jinja2 的服务端模板注入SSTI 注入原理模板引擎的核心是动态执行开发者预设的”魔术方法“或函数,而攻击者正是利用这种动态性注入恶意代码。 数据结构下面从数据结构层面系统阐述类、对象、实例的关系,并以此为基础解析SSTI注入本质: 数据结构层面上, 类 (Class), 对象 (Object), 实例 (Instance) 的关系: (以 Python 为例) 1234567891011121314class User: # 类定义 (蓝图) def __init__(self, name): self.name = name # 实例属性 def greet(self): # 实例方法 return f"Hello, {self.name}"# 创建实例 user1 = User("Alice") # user1是User类的实例...
Linux IR - 应急响应排查
Linux IR - 应急响应排查最近遇到了一个 Linux 应急响应 (Linux Incident Response) 的突发事件, 记录一下遇到的问题, 踩到的坑, 系统的响应流程以及常用命令。 应急响应流程 (PDCERP)应急响应流程总的来说就是分为两部分, 未雨绸缪和亡羊补牢。 准备 (Preparation) 提前建立响应能力, 指定相关计划, 组建并培训 IR 团队, 准备相应的工具包等等。最典型的活动就是管理日志, 网络流量捕获。 检测 (Detection & Analysis) 发现并确认安全事件, 监控告警, 并进行初步分析。 遏制 (Containment) 隔离受感染系统,阻止攻击扩散。切断网络, 拔网线 (物理), 主机隔离, 杀掉进程等。 根除 (Eradication) 彻底清除攻击载体, 之后二次扫描比对等, 确保完全删除恶意文件。对 Linux 来说, 需要注意授权密钥对, crontab 等。 恢复 (Recovery) 问题解决后逐渐解决业务正常运行。 事后总结 (Post-Incident...
手撕脏牛漏洞 (Dirty-COW)
手撕 Dirty-cow最近项目手里的工作比较少, 正好可以整理一下之前学到的东西 本文尝试从竞态条件开始, 一步步深入, 最终完全理解著名的脏牛漏洞。 竞态条件漏洞先来复习一下什么是竞态条件漏洞, 这一点在操作系统课程中其实讲过多次: 竞态条件漏洞发生于多个进程并发执行并共享资源, 并且最终运行结果依赖于这几个进程的精确执行时序时。 典型例子: 银行转账问题举一个典型的例子, 假设张三的银行账户里有 1000 元存款, 现在要去一台 ATM 机取款, ATM 执行如下逻辑: 校验: 检查余额是否足够 1000 元, 如果不足, 则直接弹出; 取款: 如果余额足够, 则令扣除 1000 元余额, 并取出 1000 元现金; 显然没有问题, 张三能顺利把钱取走。 现在把 ATM 增加到两台: 张三在 ATM A 取款, 他的朋友李四在 ATM B 使用相同的账户取款: 如果张三和李四的其中一人先完成了取款操作, 则显然另一人的取款操作会失败, 因为此时 ATM...
pikachu 2 - RCE, 文件包含, 文件上传, 越权操作, 反序列化, 重定向
pikachu 2 - RCE, 文件包含, 文件上传, 越权操作, 反序列化, 重定向RCE (远程代码执行)RCE 是一种比 sqli 更危险的代码注入, 一般来说 RCE 的注入点直接在 bash 中。利用系统终端的连接符来实现额外的指令执行。 连接符参考地址:简书 Windows: |:只执行后面的语句。 ||:如果前面的语句执行失败,则执行后面的语句。 &:两条语句都执行,如果前面的语句为假则执行后面的语句,如果前面的语句为真则不执行后面的语句。 &&:如果前面的语句为假,则直接出错,也不再执行后面的语句;前面的语句为真则两条命令都执行,前面的语句只能为真。 Linux系统: ;:执行完前面的语句再执行后面的语句,当有一条命令执行失败时,不会影响其它语句的执行。 |(管道符):将前面的语句的执行结果作为输入,...
pikachu 1 - 暴力破解, XSS, CSRF
pikachu 1 - 暴力破解, XSS, CSRF用 Docker 搭建靶场1docker run -d -p 8765:80 8023/pikachu-expect:latest 点击安装数据库即可。 配置 Burpsuite打开 BP, 查看代理配置: 应用到火狐浏览器: 下载并应用证书: 针对 firefox 浏览器, 如果目标网站在本地 ( localhost ), 则浏览器是默认不进行代理的, 要解决这个问题, 需要打开 about:config 界面, 搜索 network.proxy.allow_hijacking_localhost 并改为 true: 这样就取消了 127.0.0.1 localhost 永不经过代理的问题。 暴力破解暴力破解, 顾名思义就是通过力大砖飞的方式来枚举可能的密码组合, 不过其中也有很多技巧。 验证码绕过(on server)首先观察一下网站, 输入错误的组合: 用户名:1,密码:1,验证码:1 , 提示密码错误, 并刷新网站。 接下来打开 BP , 拦一个包看看: 此时显示网页已经刷新了, 刚刚的验证码是...
docker 3 - 容器化&迁移
docker 3 - 容器化&迁移记录一下一个项目里踩的坑: 将已有 apache-tomcat 服务迁移到 docker 中。途中遇到了, “机器码”(不是简单的MAC地址, 而是由一套算出来的特征码)莫名其妙变化, 磁盘空间不足, 转换临时文件目录, docker 迁移等问题。 需求将一个已有的可正常运行的 apache-tomcat 中的服务部署到 docker 环境中。由于这个应用有基于机器码的授权码认证机制, 需要固定每次启动的参数 (ip,mac等)。 文件准备目录结构如下: 123456tomcat-docker/├── docker-compose.yml├── Dockerfile└── webapps/ # 挂载目录 ├── ROOT/ └── ROOT_BPMUpload/ Dockerfile编写一个简单的 Dockerfile: 123456789101112131415161718# 9.0.78FROM tomcat:9.0-jdk8-openjdkLABEL...
docker 2 - 特性
docker 2: 特性Docker的本质是通过分层共享机制实现资源原子化。 分层结构假设现在有一个在 docker 中部署 tomcat 项目的交付包, 其内容结构如下: 123456789myapp-docker/├── docker-compose.yml # 容器编排核心├── dockerfile # 构建脚本├── .env # 环境变量配置├── volumes/ # 挂载目录│ └── tomcat-webapps/ # 绑定Tomcat工程目录└── services/ # 依赖服务配置 ├── redis/ # Redis配置 └── nginx/ # Nginx配置 只读层可能的例子: dockerfile 将分层实现部署; 123456# DockerfileFROM tomcat:9-jdk11 # 层1:基础层, 只读,...
Matrix 2 - CTF
Matrix 2 - CTF Vulnhub 下载: Matrix: 2 Nmap 扫描主机发现 端口扫描 信息收集代码审计先访问这个网站: 查看网页源码: 这里有个 index.js, 点进去看看内容: 这段内容比较可疑, 提到了本地的 1337 端口, 刚刚 nmap 正好也扫描到了这个端口。 除了 80 端口以外, 其他的端口服务为 ssl/http, 也就是 https, 需要留意。 用 https 协议访问 1337 端口, 弹出一个登录界面, 可能是网站管理界面的登录页面? 用刚刚源码中的信息排列组合一下, 提示错误, 先搁置。 查看 12320 端口, 是一个 web 上的 ssh 服务的登录界面。结合刚刚 nmap 扫描出的结果, 这里的服务是 Shell In ABox:通过浏览器提供 SSH 终端访问的开源工具。 继续排列组合一下已知可能的密码, 提示错误, 也只能先搁置。 查看 12321 端口, 显示 PR_CONNECT_RESET_ERROR。 查看 12322 端口, 展示的 web 页面和 80...
Matrix - CTF
Matrix - CTFvulnhub 靶机 MATRIX:I 下载地址: Vulnhub Nmap 扫描主机发现 端口扫描 访问一下这个地址。 信息收集端口扫描没有直接暴露出明显的攻击面, 先着手调查一下 80 端口这个网站。 目录爆破看一下控制台, 调整爆破的指令: 1sudo gobuster dir -u http://192.168.170.150 --wordlist=/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x js,json,env,config.js,log,map 没有太多结果。 查看源码调出控制台观察一下: 看到网站后台有 /assets/img/p0rt_31337.png 这个文件, 提示前往之前扫到的 31337 端口。先下载这个图片, 这个图片可能会隐藏某些信息, 比如图像隐写 (虽然可能性比较小)。 31337 端口服务尝试一下目录遍历漏洞 (../../etc/passwd), 直接跳转到...