bugku.ctf ---WEB(还有后续)

bugku.ctf ---WEB

1.Simple_SSTI_1

1.启动场景

2. 页面说你需要输入一个名为flag的参数。

3.查看网页源代码,提示在flask中,设置了secret_key。意思是在注入模板中输入内容就会显示对应的值。

4.传入?flag={{config.SECRET_KEY}}显示flag

 2.Simple_SSTI_2

魔术对象:

__class__:返回类型所属的对象

__mro__:返回一个包含对象所继承的基类元组,方法在解析时按照元组的顺序解析。

__base__"返回该对象所继承的基类          // __base__和__mro__都是用来寻找基类的

__subclasses__:获取当前类的所有子类

__init__ :类的初始化方法

__globals__:对包含(保存)函数全局变量的字典的引用

os.popen():

__globals__[‘os’].popen(‘ls’,‘r’).read()

1.启动好环境之后 依旧是服务端模板注入,查看源代码没有可利用的信息

2.http://114.67.175.224:19941/?flag={{config}}

3.使用ls查看有哪些文件:

?flag={{config.__class__.__init__.__globals__['os'].popen('ls','r').read()}}

4.发现了flag文件,直接cat查看?flag={{config.__class__.__init__.__globals__['os'].popen('cat flag','r').read()}}

3.Flask_FileUpload

新建txt,输入: import os os.system('ls /') 保存为a.png,然后上传,发现根目录下有个flag, 然后在修改txt内容为: import os os.system('cat /flag') 保存后,再上传,在新页面中查看源码,得到flag      ***因为python执行系统命令需要os这个库***

源码限制了白名单为jpg、png 上传php失败了

查看源代码意思为:上传文件,我会返回python运行的结果 

上传一下jpg

使用os模块,并把后缀改为jpg上传抓包,发现jpg内的代码执行成功,但是没有显示flag,说明不在当前目录下。

import os

os.system('ls/')

查看根目录下的文件,发现flag位置。

 import os

os.system('cat /flag')

4.留言板

5.滑稽

1.启动环境后页面显示这个

2.查看页面源代码

6.计算器

计算题答案填进去就行了,但是发现有长度限制

F12发现输入框maxlength="1",意思是最大长度是1,改大一点提交

7.GET

代码告诉我们用get方式对what进行传参

?what=flag即可。

8.POST

用POST方式对what进行传参。

抓包 在repeater模块下右键,改变提交方式,Change request method

9.矛盾

$num=$_GET['num'];//GET方式获取参数
if(!is_numeric($num))//is_numeric()函数是判断是否为数字或者数字字符串,且有bool is_numeric ( mixed $var )
{
echo $num;
if($num==1)//矛盾既要是1又要不是数字
echo 'flag{**********}';
}

构造payload语句 num=1e

114.67.175.224:11529/?num=1e

10.alert

F12打开后查找到script中的一串编码,复制粘贴刀一个新建文本文档中,然后将文本文档后缀改为html,双击打开即可

burpsuite抓包

然后发送到重放模块

把这个复制粘贴到html10解码  XSS平台-XSS测试网站-仅用于安全免费测试 (xssaq.com)



11.你必须让他停下

ctrl+u 一直刷新 到10.jpg就会出现flag

或者burpsuite抓包,然后发送到重放器,发送几次就有flag了

<think>好的,用户想将摩斯电码转换为文本,给出的摩斯码是:.-.. --- ...- . -.-- --- ..-。首先,我需要回忆一下摩斯密码的基本规则,每个字母或数字由特定的点和划组成,字母之间用空格分隔,单词之间通常用斜杠分隔。不过在这个例子中,用户提供的摩斯码中没有斜杠,只有空格分隔的各个部分,可能每个部分对应一个字母。 接下来,我需要逐个分解这些摩斯码字符: - 第一个是.-..,查表对应的是字母L。 - 第二个是---,对应字母O。 - 第三个是...-,对应字母V。 - 第四个是.,对应E。 - 第五个是-.--,对应Y。 - 第六个是---,对应O。 - 第七个是..-,对应U。 把它们连起来就是LOVE YOU。但要注意,用户可能没有用斜杠分隔单词,所以这里可能需要确认是否中间有单词分隔。不过按照常规,如果没有斜杠,可能会直接拼接成LOVEYOU,但根据常识,更可能是LOVE YOU,即中间的空格代表单词分隔。但根据摩斯密码的规则,单词之间的分隔通常用斜杠或者空格,但在这个例子中用户提供的输入是用空格分隔每个字母,所以可能需要检查是否有遗漏的分隔符。不过根据转换结果,组合起来是LOVE YOU的可能性很大,符合常见表达。 另外,用户提到使用在线工具,可能需要验证是否正确。根据引用中的例子,比如引用5提到的在线工具可能会有大小写问题,可能需要调整。但这里转换结果已经是正确的大写,可能用户只需转换为小写即可,但根据常规,摩斯密码转换结果通常大写,而flag可能要求小写,不过这里用户的问题只是转换为文本,所以直接LOVE YOU即可。 总结步骤:分解每个摩斯码字符,查表对应字母,组合成单词,注意可能的单词分隔。这里的结果应该是LOVE YOU。</think>要将摩斯电码 `.-.. --- ...- . -.-- --- ..-` 转换为文本,步骤如下: 1. **分割摩斯码**:以空格分隔每个字符对应的摩斯码: ``` .-.. | --- | ...- | . | -.-- | --- | ..- ``` 2. **查表转换**(对照摩斯密码表): - `.-..` → L - `---` → O - `...-` → V - `.` → E - `-.--` → Y - `---` → O - `..-` → U 3. **组合结果**:连接所有字母得到 `LOVE YOU`。 最终解密结果为:**LOVE YOU** (注:若需符合CTF题目格式,可能需调整为小写如`love you`或添加符号,但当前输入无额外编码需求)[^5]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值