2017 XCTF 南京站 线上赛 NJCTF
Pingme
题目地址
nc 218.2.197.235 23745
解题
题目并没有提供Bin文件,但是我们可以通过leak的方法,把整个Bin文件dump下来。
代码如下:
1 | def get_data(io, addr): |
逻辑清晰 233 格式串漏洞,我们需要获得libc或者使用DynELF获取system地址。
可以在9k师傅打libc db的库中,找到libc
1 | from pwn import * |
dump file代码是pxx师傅的 我自己打方法失败了 23333
VSVS
代码执行,在name的位置输入超过1024个字节后紧跟bash,之后的命令会被 当成命令执行
验证code可暴力解决
1 | from pwn import * |
Pwn200
栈溢出简单粗暴,不过需要暴力猜解canary,然后直接ret到send flag的函数那里,把flag读回来。
1 | #由于是fork的程序,考虑爆破canary |
程序读取了flag并且存在直接send flag的payload
.text:0000000000400BCA mov eax, cs:fd
.text:0000000000400BD0 mov ecx, 0
.text:0000000000400BD5 mov edx, 64h
.text:0000000000400BDA mov esi, offset flag_address
.text:0000000000400BDF mov edi, eax
.text:0000000000400BE1 call _send
1 | # -*-coding:utf-8-*- |
re400
可在程序中找到目标md5值,输入并尝试用gdb去调试可以猜到flag值。
# 战队WP
wp