文章来自零釼实验室成员
南宫十六
文章共1864字32图
预计阅读时间5分钟
MOCTF部分Web题解 MOCTF的题目还是比较简单的,今天这篇就当个web类型的入门题吧。本来想把web题解题思路一次全发了,但是篇幅实在是太长了,所以先发前半部分吧!
MOCTF官网:http://www.moctf.com
都说了是水题,访问网页然后右键查看源码拿到flag
点开以后是这个界面,说让输入moctf,输入框都是黑的你让我怎么输!
应该是前端限制,乖乖的右键审核元素,把value disabled="disabled"
删掉,并且把maxlength="4"
改成5
输入moctf得到flag
访问提示"只允许使用NAIVE浏览器访问!",那就把User-Agent改成NAIVE试试
又提示只允许中国香港记者访问
所以又把Accept-Language改成了zh-HK
发包拿到flag
你以为真让你玩游戏么?天真! 8
右键审核元素,提示robots.txt
访问看到一个php文件
访问该php文件,依旧是空白,然后右键查看源代码就拿到flag啦
题目提示好像有源码,但是访问却看不到任何东西,想到可能是php源代码泄露 几种常见的格式:index.php.bak;index.php.swp;index.php~ 访问index.php~
拿到源代码
代码大概的意思是:传入参数a和b,不能为空,a和b不能相等。这两个参数如果经过md5加密后相等,输出flag。21行那里可进行md5绕过,php弱类型。我们只需构造index.php?a=QNKCDZO&b=240610708
即可拿到flag,也可以数组绕过,构造index.php?a[]=1&b[]=2
即可
题目直接贴出了源码
让传入一个money参数,然后它的值必须满足小于等于4位,并且这个值要大于当前时间戳,且不能为数组。想到用科学计数法让他大于时间戳,这里可以用科学计数法格式输出一下当前的时间戳
构造url:index.php?money=2e09
提示需要登录,然后页面标题是SQLi LOGIN,不用想了肯定是万能密码 构造用户名:' or '1'='1'##
,密码随意,成功登录
都这么明显了,就是文件包含,试了几种方法,发现php://filter/read=convert.base64-encode/resource=xxx
这种方法可行,尝试包含服务器的flag.php文件
base64解码一下得到flag
发邮件的时候抓个包,然后发送出去看看返回了什么
发现返回包中有一条Dear: MyBoss
构造url:postText=1&Dear=MyBoss
打开以后跳转到了no_flag.php,然后访问flag.php最终也是跳转到no_flag.php,抓包试试 重定向了好多次,最终得到如下几个文件:
flag.php
where_is_flag.php
I_have_a_flag.php
I_have_a_frog.php
no_flag.php
仔细瞧瞧,这不是PPAP的歌词吗??? I have a pen,I have an apple. (Uhh~)Apple-pen! 试试访问flag-frog.php,发现不行,而改成flagfrog.php就行了!
美味的饼干,根据标题感觉和cookie有关 先随便输入账户密码,发现可以登录
然后接着看看cookie,发现是base64编码,解密之后是md5,然后在对md5进行解密,发现是user
我感觉把他变成admin可能可行,所以试了试
把admin
经过md5加密,然后在经过base64编码,最后把这个值替换cookie,重新访问页面拿到flag
这道题上来就是让你访问index2.php,然后得不到任何有用的信息,所以把它改成index.php试试
我们访问得到的这个页面,发现让你提交Filename和Content,随便内容即可,然后会得到一个URL,但是访问却显示Too slow!
通过burp提交,发现多次提交一样的内容返回的url是一样的
所以说可能是服务器有个自动删文件的脚本,我们可以让burp一直提交一直提交,然后在访问试试(当然python也可以,我就不造轮子了) 设置一个无payload的模式,然后让他一直发包就可以了
再次访问url得到flag