我是靠谱客的博主 忧虑大树,最近开发中收集的这篇文章主要介绍i春秋 WEB GetFlag,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

i春秋 WEB GetFlag

一天一道CTF题目,能多不能少

打开网页,点击login来到登陆页面:
在这里插入图片描述
发现验证码是截取MD5的验证:substr(md5(captcha), 0, 6)=3aab4a
编写脚本来跑验证码:

import requests
import base64
import sys
import hashlib

def getMd5(index):
	for i in range(100000,100000000):
		x = i
		md5 = hashlib.md5(str(x).encode("utf8")).hexdigest()
		if md5[0:6] == index:
			return x;
print(getMd5("3aab4a"))

最后的到验证码:
在这里插入图片描述
既然能够得到验证码了,开始进行登陆测试
最后发现登陆框的username处存在注入,尝试万能密码登陆,成功:
在这里插入图片描述
进入网页看见三个文件,全部下载,最后发现一个提示(flag在根目录下):
在这里插入图片描述
开启抓包,抓下载链接的包,修改参数:
在这里插入图片描述
仿佛在逗我~
既然是根目录那就猜是不是/var/www/html/Challenges/flag.php
果然,得到源码:
在这里插入图片描述
源码:

<?php
$f = $_POST['flag'];
$f = str_replace(array('`', '$', '*', '#', ':', '\', '"', "'", '(', ')', '.', '>'), '', $f);
if((strlen($f) > 13) || (false !== stripos($f, 'return')))
{
		die('wowwwwwwwwwwwwwwwwwwwwwwwww');
}
try
{
		 eval("$spaceone = $f");
}
catch (Exception $e)
{
		return false;
}
if ($spaceone === 'flag'){
	echo file_get_contents("helloctf.php");
}

?>

尝试下载helloctf.php,但是不允许下载:
在这里插入图片描述
那就只能代码审计了,,,,
题目的要求提交flag参数到flag.php页面,然后页面会将flag参数对应的值赋给$spaceone,当POST提交的flag=flag的时候flag就会出现!!!
但是提交flag=flag什么都没有显示,发现过滤了很多的东西
没过滤分号?试试,flag=flag;还是没得卵用~~
只能等死了吗,,,看了看大佬的wp,好像有个啥php字符串特别的表示方法
百度一下PHP字符串表示方法,得到:
在这里插入图片描述
这就快乐了,不过这个要换行,用url编码一下传过去(注意不要太长,否则第一个if就过不了):
在这里插入图片描述
在这里插入图片描述
get flag:flag{04bcb2ca-39b9-4359-ae9b-22c5925cd9e0}

最后

以上就是忧虑大树为你收集整理的i春秋 WEB GetFlag的全部内容,希望文章能够帮你解决i春秋 WEB GetFlag所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部