1.靶场安装
靶场下载:https://code.google.com/archive/p/owasp-hackademic-challenges/downloads
在phpstudy中搭建即可
访问页面:
2.OWASP Hackademic Challenge – Challenge 1
2.1.解题
点击链接,进入靶场
页面上没有什么有用的消息,查看页面源代码(Ctrl+U)
可以找到不同显示页面的信息:white,rabbit,输入进入系统
点击查看各功能点,提示说明我们需要找到这5 special clients
开启burp suite代理
通过代理,可以看到该网站下存在secret_area_路径(中文:隐藏区域),访问该路径
注意:phpstudy默认不允许目录索引,在网站管理->修改->高级配置,打开目录索引
访问secret_area_路径后,出现了txt文档,查看获得敏感信息
根据题目描述:The only thing we remember is that he was hired on Friday the 13th!
获得目标邮件地址:Jasson Killer [email protected]
发送邮件
2.2.总结
- 密码和口令被放在了网页源代码中,信息泄露,有的开发者也会将账号密码直接默认显示在登录框中;
- 在secret_area_目录存在目录遍历的问题,导致能够直接获取该目录下的所有文件。
3.OWASP Hackademic Challenge – Challenge 2
3.1.解题
根据题目,需要找到密码,点击链接
页面没有什么可用信息,查看页面源代码
分析代码,知道:密码提交的时候调用了方法-GetPassInfo(),找到对应的方法,知道是通过该方法进行加密
此段代码,定义了密钥:givesacountinatoap lary
通过下面的方式对 Wrong 字符串进行解密:var Wrong = (d+""+j+""+k+""+d+""+x+""+t+""+o+""+t+""+h+""+i+""+l+""+j+""+t+""+k+""+i+""+t+""+s+""+q+""+f+""+y)
将此段js代码运行:https://jsrun.net/new
将结果进行登录
3.2.总结
- 此代码将加密操作写入了JavaScript中,导致加密过程暴露;
- 前端的信息都是不安全的,不要将敏感的信息写入前端。
4.OWASP Hackademic Challenge – Challenge 3
4.1.解题
根据题目,此处是XSS漏洞
根据页面显示,没有做任何保护,直接输入payload:<script>alert("XSS!");</script>
5.OWASP Hackademic Challenge – Challenge 4
5.1.解题
根据页面提示,本次做了一些保护,需要绕过:绕过方法(不限)
通过CharCode来绕过,payload:<script>alert(String.fromCharCode(88,83,83,33))</script>
5.2.总结
利用场景:
- 盗取用户账号密码等个人敏感信息,如机器登录账号、用户网银账号、各类管理员账号;
- 控制企业数据,包括读取、篡改、添加、删除企业敏感数据;
- 盗窃企业重要的具有商业价值的资料;
- 非法转账;
- 强制发送电子邮件;
- 网站挂马;
- 控制受害者机器向其他网站发起攻击。
防御总体思路:对输入(和 URL 参数)进行过滤,对输出进行编码。
也就是对提交的所有内容进行过滤;然后对动态输出到页面的内容进行 html 编码,使脚本无法在浏览器中执行。
6.OWASP Hackademic Challenge – Challenge 5
6.1.解题
查看页面源代码没有什么有用信息
根据页面显示,必须使用 p0wnBrowser 浏览器访问,可以尝试使用该浏览器的UA头进行访问
6.2.总结
本题中,只通过 UA 头来判断是否通过设定的浏览器进行访问。
7.OWASP Hackademic Challenge – Challenge 6
7.1.解题
查看网页源代码,发现有一段 url 编码的代码,进行解码,发现了一段有用的代码
密码需要调用 GetPassInfo() 函数,该函数中指定了值:easyyyyyyy!
8.OWASP Hackademic Challenge – Challenge 7
8.1.解题
查看页面源代码,发现源代码中有一个路径:index_files,访问
查看 lastlogin.txt 文件
从本页面可知,Irene 是有效账户,输入
从题目知道,需要管理员登录,抓取该页面数据包:
Cookie 字段有 Userlevel,是 user 级别,将其修改为 admin
8.2.总结
- 需要做严格的权限校验,而不仅仅只是通过 Cookie 头中的值;
- 目录页面做好文件访问权限,保证网站上不会出现目录遍历等情况。
9.OWASP Hackademic Challenge – Challenge 8
9.1.解题
本题需要提权为 root 权限,通过 help 命令,查看到能执行的命令:ls、whoami、id、helo、su
su 是用来切换用户的,那么剩余有用的命令就是 ls
出现了两个文件,当前页面是 index.php,那么访问另一个文件
出现了一串加密的代码,根据该文件命名是 b64,猜测是通过 base64 编码的,解码后,获得 root 的账户密码,然后登录
9.2.总结
通过编码来实现安全性是不可取的:
- 不要把敏感文件包含在文件系统中供用户访问;
- 或者不允许用户提示其权限。
10.OWASP Hackademic Challenge – Challenge 9
10.1.解题
根据题目信息,需要将 http://www.really_nasty_hacker.com/shell.txt 这个链接包含的后门写入网站
抓取提交备注(Comment)的数据包
将 payload 通过 source 执行,失败
payload1:
payload2:
尝试通过 UA 头执行 payload,成功
访问后门:tyj0rL.php
查看当前目录下有什么文件
访问:sUpErDuPErL33T.txt 和 adminpanel.php
通过获取到的账户密码登录:Admin/teh_n1nj4_pwn3r
11.OWASP Hackademic Challenge – Challenge 10
11.1.解题
查看页面源代码:有一个隐藏的输入框
F12 将 type="hidden" 删除
在 False 框中,将值修改为 True,回车
然后会弹出一个框
对编码进行 URL 解码:
页面点击确认后,会访问新的页面,输入 From 和 Serial Number(刚才解码的字符串)
这里弹出密码错误可能是源码的问题,不重要,点击确定后显示成功
11.2.总结
- 前端设置的 type="hidden",并不能真的隐藏,只是不会显示,查看源代码中仍然存在;
- 敏感的信息(本题是序列号),应采用负责的加密方式。