2014年澳大利亚信息安全挑战 CySCA CTF 官方write up Web篇

from:https://www.cyberchallenge.com.au/CySCA2014_Web_Penetration_Testing.pdf

0x00 背景


一年一度的澳洲CySCA CTF是一个由澳洲政府和澳洲电信Telstra赞助的信息安全挑战赛,主要面向澳洲各大学的安全和计算机科学专业的学生。

CTF环境全部虚拟化并且需要openvpn才能进入。

0x01 第一题 非请勿入


说明:

一个只有VIP用户才能进去的blog,想办法进去后就能看到flag了。

解题:

打开burp和浏览器开始观察目标,我们发现了几个有意思的地方:

[cce]有个用户登录页面 login.php
blog导航栏里有个博客页面的链接,但是是灰色的无法点击也打不开
cookie有两个,PHPSESSID还有vip=0
cookie没有http only,有可能被xss到
[/cce]

vip=0,这有点明显,用burp或者浏览器cookie编辑工具把vip改成1,刷新页面后那个隐藏的链接可以打开了,打开后就是flag: ComplexKillingInverse411

0x02 第二题 好吃的小甜饼


说明:

用已任何已注册用户的身份成功登录blog。

解题:

翻了翻这个博客,又发现了几个好玩的地方:

[cce]可以看博客内容
可以添加回复
用户Sycamore似乎正在看第二篇博客 view=2
[/cce]

Burp的内建插件 intruder可以用来在提交的参数里插入sql注入或者xss代码,Kali中自带了几个xss和sql注入的字典:

[cce]/usr/share/wfuzz/wordlist/Injections/SQL.txt 
/usr/share/wfuzz/wordlist/Injections/XSS.txt
[/cce]

用这几个字典里的标准注入语句和xss代码对 GET view=?和 POST comment=?这两个参数过了一遍,没发现任何xss或者注入,于是我们决定对comment这个地方再仔细看看。

comment参数似乎过滤了不少东西,比如去掉了所有引号,转义了全部html特殊字符。但是似乎comment支持markdown语言里的斜体,粗体和链接标签,然后我们用burp intruder的xss测试在下面几个输入里面测试:

[cce]*test* 
*test* 
 
[/cce]

果然成功了,在markdown链接标签的链接名称的地方存在XSS:

 

后续测试发现链接名称最长只能用30字符,翻了翻OWASP的XSS cheat sheet,

https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet

最短的是这个:

[cce]