攻防世界web新手题解
攻防世界(XCTF)的攻防Web新手区,题目编号从WARMUP开始,世界手题一共十几道。攻防很多人第一次打开页面就懵了——没有登录框,世界手题没有输入点,攻防只有一个静态页面。世界手题别急,攻防新手题考的世界手题不是漏洞挖掘,而是攻防“你有没有看源码”。 先说第一道题: 第二道 第三道 第四道 第五道 第六道 第七道 第八道 第九道 第十道 还有几道命令执行和文件包含的,比如 做完这十几道,你会发现攻防世界的新手区根本不考“黑客技术”,考的是“你有没有认真看页面、看源码、看请求”。很多题flag就明晃晃放在某个你没注意的角落。别想复杂,先看全,再动手。view_source。世界手题页面就一行字,攻防提示“Flag在源码里”。世界手题你按F12,攻防或者右键查看网页源代码,世界手题直接搜flag就能找到。攻防这题存在的意义是让你养成习惯:拿到一个站点,先看源码,再看请求头,再看Cookie。别上来就掏扫描器。robots。页面什么都没有,但题目名字已经暗示了。访问/robots.txt,里面会写Disallow: /flag.php或者类似路径。直接访问那个被禁止的路径,flag就在响应里。这题教的是:robots.txt是给爬虫看的,但攻击者也会看。backup。题目提示“备份文件”。常见后缀:.bak、.swp、.zip、~。比如index.php.bak下载下来,里面直接有flag。有时候是www.zip,解压后得到源码。这题是让你知道:运维偷懒留备份,就是漏洞。cookie。页面说“只有admin才能看到flag”。你抓包看Cookie,发现cookie=value,把值改成admin,刷新,flag出现。简单粗暴。但新手容易卡在“怎么改Cookie”——浏览器F12的Application面板可以直接编辑,或者用Burp Suite拦截修改。disabled_button。页面上有个按钮,灰色不可点。F12找到那个<input>标签,把disabled属性删掉,按钮亮了,点一下flag出来。这题讲的是前端限制不可信,所有客户端验证都是纸老虎。weak_auth。登录框,随便输个admin/123,提示“密码错误”。题目叫弱认证,那就猜。admin/admin、admin/123456、admin/password。或者用Burp Intruder跑个小字典。这题就是告诉你:弱口令永远存在。simple_php。给了一段PHP代码,两个条件:a和b。第一个要求a==0且a为真,利用PHP弱类型,a=0a或者a=abc都行。第二个要求b不是数字且b>1234,用b=1235a。这题是PHP弱比较的经典入门。get_post。页面提示“请用GET方式提交一个名为a、值为1的变量”,然后“请用POST方式提交一个名为b、值为2的变量”。你可以直接在URL加?a=1,然后用hackbar或者Burp发POST请求带b=2。flag在响应里。这题是HTTP方法的基础操作。xff_referer。题目要求:IP必须是123.123.123.123,Referer必须是https://www.google.com。抓包,加X-Forwarded-For: 123.123.123.123和Referer: https://www.google.com,放行。flag出现。这题讲的是HTTP头伪造,XFF经常被用来绕过IP限制。webshell。页面提示“flag在flag.php里”,但直接访问flag.php没权限。题目叫webshell,那就找上传点或者已知后门。通常这题会给你一个shell.php,里面是<?php @eval($_POST['cmd']); ?>。用蚁剑或者直接POST cmd=system('cat flag.php');。这题是让你第一次碰webshell。command_execution,输入127.0.0.1; cat /flag,分号拼接命令。或者include,用?file=php://filter/convert.base64-encode/resource=flag.php读源码。这些题的核心就一句话:用户输入没过滤,直接进了系统命令或者文件包含函数。