ctfshow-命令执行
# Web29:
1234567891011 <?phperror_reporting(0);if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag/i", $c)){ eval($c); } }else{ highlight_file(__FILE__);}
过滤了文件关键词,通配符绕过,cat f*,用 system 执行,发现没有成功读取,考虑使用 tac 倒序读取,得到 flag。
总结,文件关键词过滤可以考虑使用通配符绕过。
# Web30:
12345678910error_reporting(0);if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag|system|php/i" ...
ctfshow-信息搜集
# Web1:
题目描述:开发注释未及时删除 。
打开题目后提示 web1:where is flag?
ctrl+u 读取源码。
# Web2:
题目描述:js 前台拦截 === 无效操作
打开题目后显示:无法查看源代码
右键无法用,但是 ctrl+u 可以用。
# Web3:
提示要抓包,那就抓包,发送到 repeater,响应头里发现 flag。
# Web4:
题目描述:总有人把后台地址写入 robots,帮黑阔大佬们引路。
基础知识:Robots 协议(也称爬虫协议,机器人协议等)的全称是 “网络爬虫排除协议”,网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
Robots 参数:
User-agent:
作用:用于描述搜索引擎蜘蛛的名字;
技巧:
1,当 robots.txt 不为空的时候,必须至少有一条 user-agent 的记录;
2,相同名字,只能有一条,但是不同的蜘蛛,可以有多条记录;
Disallow:
作用:用于描述不允许搜索引擎蜘蛛爬行和抓取的 url;
使用技巧:
在 ro ...
pwn学习笔记(9)-中级ROP--ret2csu
# pwn 学习笔记(9)- 中级 ROP–ret2csu
# 前置知识
首先是 64 位文件的传参方式:前六个参数是从左到右放入寄存器:rdi、rsi、rdx、rcx、r8、r9,之后的通过栈传参。
比如:
传参函数大于 7 个:
H(a,b,c,d,e,f,g,h)
a->%rdi、b->%rsi、c->%rdx、d->%rcx、e->%r8、f->%r9
h->(%esp)
g->(%esp)
call H
先看看如下代码:
12345678910111213141516#include "stdio.h"int H(int a,int b,int c,int d,int e,int f,int g,int h);int main(){ int a = 1,b = 2,c = 3,d = 4,e = 5,f = 6,g = 7,h = 8; printf("%d",H(a,b,c,d,e,f,g,h)); return ...
pwn学习笔记(8)-初识沙箱
# 初识 Pwn 沙箱
沙箱机制,英文 sandbox,是计算机领域的虚拟技术,常见于安全方向。一般说来,我们会将不受信任的软件放在沙箱中运行,一旦该软件有恶意行为,则禁止该程序的进一步运行,不会对真实系统造成任何危害。
安全计算模式 seccomp(Secure Computing Mode)在 Linux2.6.10 之后引入到 kernel 的特性,可用其实现一个沙箱环境。使用 seccomp 模式可以定义系统调用白名单和黑名单。seccomp 机制用于限制应用程序可以使用的系统调用,增加系统的安全性。
在 ctf 中主要通过两种方式实现沙箱机制:
prctl 系统调用;
seccomp 库函数;
# 1、prctl 函数初探
prctl 是基本的进程管理函数,最原始的沙箱规则就是通过 prctl 函数来实现的,它可以决定有哪些系统调用函数可以被调用,哪些系统调用函数不能被调用。
下面是 /linux/prctl.h 和 seccomp 相关的源码:
1234567891011121314151617181920/* Get/set proces ...
arcaea闲谈
# 1、关于我对这些谱面的评价:
我只会挑一些我印象比较深的谱面来说。
# <1>9+:
# (1)sulfer(硫磺):
9 + 首 pm 的歌,神谱无需多言,大量的地面交互以及天地交互虽然给不少花紫人带来了巨大的挑战,但是,身为一首 9+,它给我们带来的不只是交互力的提升,还有任我们疯狂压榨的 ptt,在我花紫以及红框时期,这谱给我的 ptt 带来了至少 0.2 的提升妥妥的榨汁机。
# <2>10:
# (1)sheriruth(黑魔王):
谱确实不错,但是,耐不住我在花紫甚至没到花紫的时候高强度越级导致了手癖,最后一直收不了。
总的来说下吧,前面的交互很不错,要求一定的协调性,以及要求一定的底力。在我严重手癖的情况下感觉尾杀稍微有点脑裂以外,其他的整体很不错,神谱。
# (2)
# <3>10+:
# (1)Cyaegha(绿魔王):
神谱。前面双押海虽然很让人脑裂,但是,只要习惯外加背谱来打的话,就会发现,并没有那么难了,并且这谱后面爽到极致,尾杀部分难度甚至感觉不如某些 10.0,纯纯的爽谱,在爽 ...
how2heap_zh
由于 Pwn 的堆方向感觉异常抽象,所以,我想着通过 how2heap 这个项目来入门 heap。但是,由于有的程序不知为何调试总是出问题,不过,我会慢慢来解决的,所以这个文章也是处于慢慢更新的状态。
glibc 版本:最新
源码:
123456789101112131415161718192021222324252627282930313233343536#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ fprintf(stderr, "尽管这个例子没有演示攻击效果,但是它演示了 glibc 的分配机制\n"); fprintf(stderr, "glibc 使用首次适应算法选择空闲的堆块\n"); fprintf(stderr, "如果有一个空闲堆块且足够大,那么 malloc 将选择它\n"); fprintf(stderr, "如果存在 ...
Pwn刷题记录(不停更新)
# 1、CTFshow-pwn04(基础 canary)
好久没碰过 pwn 了,今天临时做一道吧,毕竟刚联合了 WSL 和 VSCode,想着试着做一道题看看,结果随手一点,就是一个很少接触的,拿来刷刷:
先查看下保护:
1234567root@MSI:/home/g01den/Temp# checksec pwn[*] '/home/g01den/Temp/pwn' Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x8048000)
除了 NX 之外,似乎就只有 Canary 了。反编译看看:
有用的只有 vuln 函数:
1234567891011121314unsigned int vuln(){ int i; // [esp+4h] [ebp-74h] char buf[100]; // [esp+8h] [ebp- ...
pwn学习笔记(0)-事后补充
# Pwn 环境部署:
# 1、背景:
首先是在最开始的时候装环境此次碰壁,搞得没心思写这篇博客,其次,又因为虚拟机本身的问题,导致我对虚拟机有很强的不满,所以我最开始没有写这篇博客,但是,转念一想,为什么我必须得执着于 虚拟机呢?不是同样都是 Linux 吗,为啥我不直接采用 WSL 来部署 Pwn 环境呢?所以,这里我选择了重装了下 Pwn 环境,不过,因为我装好很大一部分之后才想起来记录博客,所以我只会把前面的内容简单记录一下,不进行二次实操了。
WSL 的安装我就不详细进行说明了,这个挺无脑的。
# 2、基础工具:
# <1>Vim:
我想,大部分的 Ubuntu 似乎都已经装好了,不过似乎听说有的没有,不过贴一个源码过来:
1sudo apt install vim
# <2>git:
老样子,一把梭
1sudo apt install git
# <3>GCC:
1sudo apt install gcc
# <4>python3-pip:
1sudo apt install python3-pip
# ...
反弹shell
# 反弹 shell:
# 简介;
反弹 shell,就是攻击机监听在某个 TCP/UDP 端口为服务端,目标机主动发起请求到攻击机监听的端口,并将其命令行的输入输出转到攻击机。
# 正向连接:
假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标 ip:目标机器端口),这是比较常规的形式,我们叫做正向连接。远程桌面、web 服务、ssh、telnet 等等都是正向连接。
# 反向连接:
反弹 shell 通常适用于如下几种情况:
目标机因防火墙受限,目标机器只能发送请求,不能接收请求。
目标机端口被占用。
目标机位于局域网,或 IP 会动态变化,攻击机无法直接连接。
对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知的。
对于以上几种情况,我们是无法利用正向连接的,要用反向连接。
反向连接就是攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,即为反向连接。
# 利用 netcat 反弹 shell:
目前,默认的各个 linux 发行版本已经自带了 netcat 工具 ...
部分CVE复现Web(1)
# Apache HTTP Server 路径穿越漏洞 CVE-2021-41773
首先,先来看一下这个漏洞的官方描述:
CVE-2021-41773 是在 Apache HTTP Server 2.4.49 中对路径规范化所做的更改中发现了一个缺陷。攻击者可以使用路径遍历攻击将 URL 映射到预期文档根目录之外的文件,如果文档根目录之外的文件不受 “要求全部拒绝” 的保护,则这些请求可能会成功,如果还为这些别名路径启用了 CGI 脚本,则可以允许远程代码执行。
# 漏洞条件:
配置目录遍历,并且开启 cgi mode 2.Apache HTTPd 版本为 2.4.49/2.4.50 3. 存在 cgi-bin 和 icons 文件夹
穿越的目录允许被访问,比如配置了Require all granted。(默认情况下是不允许的:Require all denied)
注意:这里的 /icons/ 必须是一个存在且可访问的目录
# 漏洞复现:
首先,需要在虚拟机里下载一个 docker,可以通过
1apt install docker.io docker-com ...














