BUUCTF Web实战:从SQL注入到文件上传的CTF解题全解析
1. SQL注入漏洞实战解析SQL注入是CTF中最常见的Web漏洞类型之一。记得我第一次参加BUUCTF比赛时遇到的第一道Web题就是SQL注入。当时完全不知道什么是万能密码现在回头看才发现这其实是入门必学的知识点。在BUUCTF的[极客大挑战 2019]EasySQL这道题中解题关键就是使用经典的万能密码1or11。这个payload的原理很简单 - 它利用了SQL查询中的逻辑判断漏洞。当后台代码使用字符串拼接方式构造SQL语句时这个payload会让WHERE条件永远为真从而绕过认证。不过要注意几个细节单引号必须使用英文的注释符#后面要加空格不同数据库的语法可能有差异我遇到过最坑的情况是题目把空格过滤了这时候可以用/**/代替空格。还有一次遇到把单引号转义的情况这时候就要用\来转义转义符。2. 文件包含漏洞深度剖析文件包含漏洞在[ACTF2020 新生赛]Include这道题中体现得很典型。题目给出了?fileflag.php的提示这明显指向文件包含漏洞。文件包含主要分两种本地文件包含(LFI)包含服务器上的文件远程文件包含(RFI)包含远程URL的文件PHP中常见的危险函数包括include()include_once()require()require_once()我常用的利用方法是使用PHP伪协议。比如?filephp://filter/readconvert.base64-encode/resourceflag.php这个payload会让服务器以base64编码方式读取flag.php避免直接执行PHP代码。获取到base64编码后再用在线工具解码就能看到flag了。3. 命令执行漏洞绕过技巧[ACTF2020 新生赛]Exec这道题展示了最简单的命令执行漏洞。直接使用127.0.0.1 || cat /flag就能获取flag。但在实际比赛中题目往往会设置各种过滤。比如[GXYCTF2019]Ping Ping Ping这道题就过滤了空格特殊符号关键词flagbash等命令这时候就需要各种绕过技巧空格绕过使用$IFS、${IFS}、%20等关键词绕过使用通配符*、变量拼接等命令分隔使用;、||、等我常用的payload是?ip127.0.0.1|cat$IFSls这个payload使用了内联执行和空格绕过技巧。4. 文件上传漏洞实战文件上传是Web安全中的重要议题。[极客大挑战 2019]Upload这道题展示了典型的文件上传漏洞利用过程。常见的防御措施包括检查文件扩展名检查文件内容重命名上传文件限制上传目录执行权限绕过方法也有很多修改扩展名php→phtml、php5等添加文件头GIF89a使用特殊标签script languagephp大小写混淆PhP我成功上传webshell的步骤通常是制作包含恶意代码的图片文件使用BurpSuite修改上传请求找到上传后的文件路径用蚁剑等工具连接5. HTTP头注入与伪造[极客大挑战 2019]Http这道题考察的是HTTP头注入知识。通过伪造Referer、X-Forwarded-For等头部字段可以绕过服务器的访问控制。常见的需要关注的HTTP头包括Referer来源页面User-Agent客户端信息X-Forwarded-For客户端IPCookie会话信息在实战中我通常会用BurpSuite的Repeater模块修改这些头部字段。有时候还需要配合使用Intruder模块进行爆破。6. 综合漏洞利用实战真正的CTF比赛中往往需要组合使用多种漏洞。[强网杯 2019]随便注这道题就需要先通过SQL注入获取信息再结合其他技术获取flag。我的解题思路通常是信息收集查看源码、抓包分析漏洞探测尝试各种payload漏洞利用获取初步权限权限提升获取更高权限获取flag找到并读取flag文件在这个过程中保持耐心很重要。有时候一个看似简单的题目可能需要尝试几十种payload才能找到正确的解法。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2613574.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!