pwnable.kr报错NameError: name ‘remote‘ is not defined

coin这道题需要连到pwnable.kr的服务器上去执行命令 然而写入文件到tmp后并不能执行 会报错 name ‘remote’ is not defined 我研究了一番 笑死我了

首先是查资料感觉有人写了个pwn.py在/tmp

于是ls -lah /tmp/pwn.py

发现是col用户

于是以col身份连上去删掉这玩意

然后还是报错 感觉/tmp/pwn有这个目录

于是 ls -lah /tmp/pwn 创建者是uaf

连上去继续删掉目录

本来以为这样就好了 于是又执行了一遍还是报错。。。

进入交互界面 看看

>>> dir(pwn)
['__builtins__', '__doc__', '__file__', '__name__', '__package__']
>>> pwn.__name__
'pwn'
>>> pwn.__doc__
>>> pwn.__file__
'pwn.pyc'
>>>
uaf@pwnable:/tmp$ ls -lah pwn.pyc
-rw-rw-r-- 1 passcode passcode 98 Dec  9 22:28 pwn.pyc

然后再用passcode身份连上去删掉这玩意就好了

coin的代码 简单二分法

from pwn import *
import re
r = remote('0',9007)
print(r.recvuntil('starting'))
for i in range(100):
		r.recvuntil('N')
		s = r.recv()
		N,C = re.findall("=(\d+) C=(\d+)",s.decode())[0]
		N = int(N)
		C = int(C)
		left = 0
		right = N - 1
		def func(start,end):
			return " ".join([str(x) for x in range(start,end+1)])

		for i in range(C):
			mid = (left + right)//2
			ans = func(left, mid)

			r.sendline(ans)
			weight = int(r.recv().strip())
			if weight == (mid - left + 1) * 10:
				left = mid + 1
			else:
				right = mid
		r.sendline(str(left))
		print(r.recvline())
r.interactive()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值