【攻防世界】新手练习区MISC_005_掀桌子

仔细观察这份报文,发现字母最大为f,据此推测,这是一串16进制数

思考一下,有这么几种可能:

1.16进制->二进制->字符串

2.16进制->ASCII字符

看这串报文,既然16进制都这么长了,转成二进制也太长了吧

感觉1可能性不大,那就试试2

编写脚本,将16进制按2位分开,再转ASCII

虽然cha()函数可以传入16进制数,但是要传入int型整数

这里用int(str,16)直接转换成10进制数了

string = 'c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2'
flag = ''
for i in range(0,len(string),2):
    str = string[i] + string[i + 1]
    flag += chr(int(str, 16) )
print(flag)

但是输出是一串乱码

排查发现,转换后的数字均大于127,但是ASCII码最大值为127,超出了ASCII表范围,所以显示乱码

修改一下,将转换后的数-128

string = 'c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2'
flag = ''
for i in range(0,len(string),2):
    str = string[i] + string[i + 1]
    flag += chr(int(str, 16) - 128)
print(flag)

 

得到flag

值得注意的是,提交时不能只提交

hjzcydjzbjdcjkzkcugisdchjyjsbdfr

要按照flag格式提交

flag{hjzcydjzbjdcjkzkcugisdchjyjsbdfr}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值