Advertisement

CTF实验吧-WEB专题-3

阅读量:

1.安女神之名

这里写图片描述

题解

根据题目提示,在输入"安女神"时会显示为英文并返回到原始界面;删除cookie后方能看见最开始的原页面;随后涉及到了各种编码问题;具体采用了XEESS这一工具来进行处理;结果显示能够正确显示"安女神"却无法获取flag;经过分析判断基本上可以判断是另一种编码方案;最终采用unicode编码方法即可成功解码并获取flag。


2.思路很重要

这里写图片描述

题解

通过浏览源代码后发现该文件并未被删除,因此可能存在备份文件或残留数据.通常情况下,文件有两种常见的保存格式:一种是".swp"文件,另一种是".bak"文件.建议按照以下步骤进行排查:首先确认当前页面的内容是否对应于index.php页面;如果是的话,则可以通过".bak"文件恢复原始源代码.
在源代码中发现了名为"extract"的功能模块.该功能的作用是将键值对转化为变量名与其对应的值.例如:
["abc": 1, "ccc": 2]
经过"extract"处理后,等效于在当前位置插入以下两条赋值语句:abc=1;ccc=2;这一操作是否正确?
接下来使用"file_get_contents"功能模块获取文件内容.该模块的特点是在指定参数无效或文件不存在时会抛出错误信息,从而导致返回值为null.因此我们只需要确保变量 Shiyan 的取值也为null 即可.

因此,在参数中设置 flag=&shiyan= 即可完成操作;同样可以设置为 flag=77.php&shiyan=(因为该文件不存在的话)。实际上,在设置为空值或数字时,并不会导致程序崩溃;然而,在发生错误后,并不会停止执行后续代码——唉!真是让人头疼……如此看来,并非没有可能性——当然地,“{”,“}”,f,a,l,g 等字符确实存在于这段代码中——很可能采用了某种移位加密技术——于是决定采用凯撒密码进行处理——最终我们成功获取到了所需的 flag 值。


3.Forms

这里写图片描述

题解

利用 burpSuit 进行抓包时,并不需要手动查找 showsource 属性的位置。我们可以将该属性的值设置为 1,在返回结果中会包含原始代码内容。与此同时,在 PIN 处就能获取到该值,并成功提取了 flag 值


4.天网管理系统

这里写图片描述

题解

在查看源代码时观察到,在PHP的==弱类型处理中发现对方采用的方法用于处理username。具体而言,在传递一个md5加密后的结果以科学计数法表示时(即采用科学计数法进行操作),随后即可访问另一个网页获取地址并进一步分析password的处理方式。发现在该网页上发现对方是通过序列化来进行密码验证的,并且序列化过程中包含了user和pass字段值的信息。为了实现反向工程目标,在编写相应的PHP代码时需要直接生成能够模拟后台处理流程所需的代码结构

复制代码
    <?php
    $r = array();
    $r['user'] = 0;
    $r['pass'] = 0;
    echo serialize($r);
    ?>

得到反向处理结果,将之前的admin值加上,得到flag。

全部评论 (0)

还没有任何评论哟~