PCTF_pwn_test_your_nc

张开发
2026/4/17 20:09:19 15 分钟阅读

分享文章

PCTF_pwn_test_your_nc
题目分析入门nc题题目只给了远程环境试了几次发现是在给定进制下的-*%的自动化计算关键在于使用pwntools接受信息以及进制的转换接受base可以使用p.recvuntil(bbase )baseint(p.recvuntil(b) ,dropTrue))接受src1和src2和符号可以用src1int(p.recvuntil(b ,dropTrue),base)print(src1)logicp.recvuntil(b ,dropTrue)print(logic)src2int(p.recvuntil(b ,dropTrue).decode(),base)print(src2)int自带进制转换为十进制然后就是计算以后的转换为原来进制numpy库有base_repr方法可以用计算就这样matchlogic.decode():case:ansnp.base_repr(src1src2,base)case-:ansnp.base_repr(src1-src2,base)case*:ansnp.base_repr(src1*src2,base)case%:ansnp.base_repr(src1%src2,base)然后传回去就行但是不知道重复几次我1000次累加发现设为3000次时2025次以后就直接出flag并停止了所以实际上exp就用2025次就行。expfrompwnimport*importnumpyasnp context.log_leveldebugpremote(challenge.imxbt.cn,32000)p.recvuntil(bSo lets test your pwntools!\n)for_inrange(2027):p.recvuntil(bbase )baseint(p.recvuntil(b) ,dropTrue))print(fbase{base})src1int(p.recvuntil(b ,dropTrue),base)print(src1)logicp.recvuntil(b ,dropTrue)print(logic)src2int(p.recvuntil(b ,dropTrue).decode(),base)print(src2)matchlogic.decode():case:ansnp.base_repr(src1src2,base)case-:ansnp.base_repr(src1-src2,base)case*:ansnp.base_repr(src1*src2,base)case%:ansnp.base_repr(src1%src2,base)p.recvuntil(b:)p.sendline(ans)p.interactive()

更多文章