您现在的位置是:烟消火灭网 > 娱乐

ctfweb入门教程

烟消火灭网2026-10-17 07:48:28【娱乐】4人已围观

简介CTF里的Web题,说穿了就是在跟一个已经跑起来的网站较劲。你手里没有源码,没有服务器权限,只能通过浏览器和命令行去猜它哪里没锁门。我第一次打CTF的时候,对着一个登录框盯了半小时,最后发现用户名填a

CTF里的入门Web题,说穿了就是教程在跟一个已经跑起来的网站较劲。你手里没有源码,入门没有服务器权限,教程只能通过浏览器和命令行去猜它哪里没锁门。入门我第一次打CTF的教程时候,对着一个登录框盯了半小时,入门最后发现用户名填admin' --就直接进去了。教程SQL注入,入门就这么简单粗暴。教程

Web方向的入门核心就一句话:用户输入永远不可信。出题人会把flag藏在数据库里、教程文件系统里、入门环境变量里,教程甚至某个HTTP响应头里。入门你要做的,是找到那个能把你的输入带进敏感区域的入口。

先学会看

拿到一个靶机地址,别急着扫目录。先打开浏览器开发者工具,看Network面板。刷新页面,观察每个请求的参数、Cookie、响应头。很多题的线索就藏在Set-Cookie或者自定义头里,比如X-Powered-By: PHP/7.4这种信息泄露。

然后看URL。如果出现?file=about.html或者?page=home,大概率是文件包含或路径穿越。把about.html换成../../../../etc/passwd试试,成了就是LFI,没成也别灰心,可能被过滤了,换编码再试。

工具不是拿来炫的

Burp Suite是标配,但别一上来就Intruder爆破。先手动改几个包,看看服务端反应。比如把id=1改成id=1',如果报数据库错误,SQL注入基本坐实。再改成id=1 and 1=1和id=1 and 1=2,对比页面差异,布尔盲注的入口就找到了。

sqlmap能自动跑,但比赛里经常有WAF。手工构造payload反而更稳。我见过一个题,把union select里的空格换成/**/就绕过了,因为WAF只匹配了带空格的模式。这种细节,工具不会告诉你,得自己试。

文件上传和命令执行

上传题先看前端校验还是后端校验。前端校验直接改后缀就行,后端校验要看它怎么判断。有的只检查Content-Type,改成image/png就能传.php。有的会重命名文件,那就得找解析漏洞,比如shell.php.jpg在某些配置下会被当成PHP执行。

命令执行更直接。如果看到?cmd=ping这种参数,先试;id、|whoami、`ls`。没回显就用curl把结果外带,或者写个webshell到web目录。有个题过滤了空格和斜杠,用$IFS代替空格,${ PATH:0:1}代替斜杠,照样打通。

别忽略逻辑漏洞

不是所有题都靠技术漏洞。有的就是改个价格、越权访问、验证码复用。比如一个商城题,把price=100改成price=0.01,下单成功直接给flag。这种题考的是你对业务流程的理解,不是代码能力。

还有JWT。看到eyJ开头的token,先base64解码看payload。如果算法是none,直接把签名部分删掉,改alg为none,很多旧版本库会直接放行。或者把RS256改成HS256,用公钥当密钥签名,也能伪造。

多打比赛,少看教程

CTFWeb的套路就那么多,但每个题的环境和过滤规则都不一样。看十篇教程不如自己打一场比赛。靶场推荐DVWA、sqli-labs、upload-labs,但真实比赛里不会告诉你这是SQL注入还是文件包含。你得从零开始猜。

我现在的习惯是,每打完一个题,把payload和思路记下来。下次遇到类似的,直接翻笔记。Web题的手感,就是这么一点点喂出来的。

很赞哦!(129)