随笔分类 - CTF-Web
CTF 中 Web 类题目的解题笔记,综合性较强的题单独分析,其他题目整理成专题,持续更新。
摘要:#双写绕过正则 直接传个 php 文件上去会被过滤掉。 将这个php文件修改后缀名为 jpg 上传,能上传说明前端有文件过滤功能。 抓包修改文件后缀为 php。 但是文件传输成功后,系统给出的路径没有“php”后缀,用蚁剑连接也连不上,说明此处后端有正则表达式替换非法文件后缀。 使用双写后缀绕过正则
阅读全文
摘要:#相关的函数和表 Oracle 的 SQL 注入和 MySQL 是一样的,不同在于数据库信息所在的表和一些函数不一样。 ##内置函数 | 函数 | 功能 | | | | | lenth() | 返回字符串的长度 | | count() | 返回在给定的选择中被选的行数 | | ascii() | 表
阅读全文
摘要:#相关的函数和表 SqlServer 的 SQL 注入和 MySQL 是一样的,不同在于数据库信息所在的表和一些函数不一样。 ##常用的函数 | 函数 | 功能 | | | | | db name() | 返回当前数据库的名称 | | host_name() | 返回计算机名称 | | curren
阅读全文
摘要:#基础知识 CTF-WEB:PHP 弱类型 CTF-WEB:PHP 变量 CTF-WEB:PHP 伪协议 CTF-WEB:PHP 反序列化 CTF-WEB:字符串和正则匹配 CTF-WEB:后台扫描与备份泄露 CTF-WEB:BurpSuite 工具应用 CTF-WEB:文件上传和 webshell
阅读全文
摘要:#文件包含 根据题目描述“其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统”,打开设备维护中心后查看 F12。 看到超链接中有 “?page” 这个 GET 方法传递的参数,考虑在这个参数使用 PHP 伪协议中的 “php://filter” 读取 index 的源码。 ?page=php:
阅读全文
摘要:#Git 源码泄露 开发人员会使用 git 进行版本控制,对站点自动部署。但如果配置不当,可能会将 .git 文件夹直接部署到线上环境,这就引起了 git 泄露漏洞,我们可以利用这个漏洞直接获得网页源码。 ##确定是否存在泄漏 想要确定是否存在这个漏洞,可以通过以下方式。首先是看看有没有提示醒目地指
阅读全文
摘要:#登录框 打开网页是个登录框,首先要先根据这个网页的情景走一遍,判断是否是 SQL 注入。 现在是不能登录的,也就是说我们要先注册个账号。打开注册页面随便输入个用户名和密码注册,注意到这是需要输入生日和地址。 使用注册的用户名和密码登录,但是在选择 Manage 时网页说我不是 “admin” 管理
阅读全文
摘要:#文件上传 ##一句话木马 利用文件上传漏洞往目标网站中上传一句话木马,然后就可以在本地获取和控制整个网站目录。利用一句话木马进行入侵时需要满足木马上传成功未被查杀,知道木马的路径在哪并保证上传的木马能正常运行。一个简单的 PHP 一句话木马如下: <?php @eval($_POST['flag'
阅读全文
摘要:#匹配过滤 在有的 Web 题目中会使用字符串匹配或正则表达式过滤传入的变量,此时看懂匹配规则构造正确的变量就很重要。 ##JavaScript match() 方法 match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。该方法类似 indexOf() 和 lastInde
阅读全文
摘要:#抓包 BurpSuite 是非常实用的抓包工具,使用 Burp Suite 之前需要先在 Firefox 设置代理。首先需要打开 Firefox 的设置页面,选择网络选项。 选择手动代理配置,BurpSuite 的 HTTP 协议默认代理是 127.0.0.1 的 8080 端口。 设置之后,Fi
阅读全文
摘要:#这是个啥? 打开网页,首先先了解下这个网页的正确打开方式。根据描述应该是个游戏,试着玩玩看,首先需要选择初始属性(有金庸群侠传内味了,哈哈)。 接下来根据提示,我们应该是要把蒙老魔干掉,但是每一次练功或者赚钱都需要花 5 秒时间,这段时间会卡一下很影响体验。 打开商店,根据提示应该要学习如来神掌,
阅读全文
摘要:#后台扫描 在拿到一个网页之后除了打开 F12 和抓包以外,还可以考虑扫一下后台,所谓扫描后台就是扫描站点的目录下还有哪些页面可以访问,看一下有没有类似管理员页面、备份文件泄露和其他文件等。 ##御剑后台扫描 御剑后台扫描是 T00LS 大牛的作品,可以用于扫描后台,同时这也为程序开发人员增加了难度
阅读全文
摘要:#文件包含漏洞 为了更好地使用代码的重用性,可以使用文件包含函数将文件包含进来,直接使用文件中的代码来提高重用性。但是这也产生了文件包含漏洞,产生原因是在通过 PHP 的函数引入文件时,为了灵活包含文件会将被包含文件设置为变量,通过动态变量来引入需要包含的文件。此时用户可以对变量的值可控,而服务器端
阅读全文
摘要:目录Request 库get 方法Request 对象Response 对象session 会话对象正则匹配re.match() 方法re.search() 方法例题:bugku-web 基础 $_POST例题:bugku-速度要快例题:bugku-秋名山老司机例题:bugku-cookies 欺骗
阅读全文
摘要:#特殊的变量 ##可变变量 一个可变变量 “$$” 获取了一个普通变量的值后,用这个值作为这个可变变量的变量名。一个美元符号表示提取变量中的值,而 2 个连续的美元符号表示用某个变量的内容作为变量名,再来访问该变量。例如以下代码: <?php a="b";b = "c"; $c = "a"
阅读全文
摘要:#序列化与反序列化 ##magic 方法 PHP 的面向对象中包含一些魔术方法,这些方法在某种情况下会被自动调用。 | magic 方法 | 功能 | | | | | __construct() | 类构造器 | | __destruct() | 类的析构器 | | __sleep() | 执行 s
阅读全文
摘要:#PHP 弱类型 PHP 比较 2 个值是否相等可以用 “ == ” 或 “ ”,“ == ” 会在比较时自动转换类型而不改变原来的值,因此这个符号经常出现漏洞。“ == ” 比较相等的一些常见值如下,当某些语句的判断条件是使用 “ == ”来判断时,就可以使用弱类型来替代。值得一提的是 “0e”
阅读全文