一、第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