bugku 12-16 write up(web)

一、第12题(头等舱)

先尝试火狐浏览器的开发者工具,发现响应头为136字节,可是参数确说有139字节,隐藏了3个字节
在这里插入图片描述
那么我们使用burp suit 抓包,然后使用repeater功能,go一下发现flag(flag即为隐藏的字节)
在这里插入图片描述

二、第13题(网站被黑)

首先,根据域名和网页提示,我们需要找到网站后台。我们使用御剑工具直接扫除后台
在这里插入图片描述
成功扫出网站后台
在这里插入图片描述进入网站后台,尝试了一些admin,password常用的密码之后,发现登入不了。
在这里插入图片描述
我们使用burp suite,爆破功能进行爆破
在这里插入图片描述
扫出密码为hack,输入密码即可得到flag

三、第14题(管理员系统)

使用火狐浏览器开发者工具查看源码
发现有段加密的base64代码
在这里插入图片描述
解密后为test123,题目又提示,IP禁止访问,请联系本地管理员登陆,IP已被记录.。那么我们就给header添加个X-Forwarded-For: 127.0.0.1参数。
在这里插入图片描述

四、第15题(web4)

观察源码发现,有一堆utf-8加密的字符,那么我们进行utf-8解密
在这里插入图片描述
这个是解密后的结果
在这里插入图片描述
观察eval函数语句可知,我们应该输入,p1+54aa2+p2的值,输入果然得出flag

五、第十六题(flag在index里)

在这里插入图片描述
点击进去。
发现这是个文件包含漏洞
在这里插入图片描述
那么我们采用PHP伪协议
输入http://123.206.87.240:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php会发现出现了base64代码。
在这里插入图片描述
进行解码得到index.php的源码,发现flag被注释掉这就是我们为什么要使用base64编码输出的原因。

<html>
    <title>Bugku-ctf</title>

<?php
    error_reporting(0);
    if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';}
    $file=$_GET['file'];
    if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
        echo "Oh no!";
        exit();
    }
    include($file); 
//flag:flag{edulcni_elif_lacol_si_siht}
?>
</html>

php://filter/是一种访问本地文件的协议,/read=convert.base64-encode/表示读取的方式是base64编码后,resource=index.php表示目标文件为index.php。

通过传递这个参数可以得到index.php的源码,下面说说为什么,看到源码中的include函数,这个表示从外部引入php文件并执行,如果执行不成功,就返回文件的源码。

而include的内容是由用户控制的,所以通过我们传递的file参数,是include()函数引入了index.php的base64编码格式,因为是base64编码格式,所以执行不成功,返回源码

本题参考这篇博客解答:https://blog.csdn.net/zpy1998zpy/article/details/80585443

0%