集训第二周学习
virink_2019_files_share
打开靶机,是一个魔方游戏,看源码有hint说flag在 f1ag_Is_h3re
,一开始去js文件里面看了一下,没有发现平时游戏题目中可以利用的点
发现有一个uploads/favicon.ico
,直接访问./uploads/
,存在两个文件都分别抓一下包,在preview里面发现get传的参,猜测会不会存在文件包含
这里Server是openresty
,百度之后发现是基于nginx,那么直接试着看nginx的配置文件啥的
尝试之后发现有些字符被ban掉了,可以自己试着能不能通过重复等绕过,绕过过滤之后还要进行目录穿越
那么,想要其他文件就直接在后面改吧,根据提示直接去f1ag_Is_h3re
找flag
payload1:
1 | ?f=....//....//....//....//....//....//f1ag_Is_h3rere |
但是显示该文件不存在,看了别的师傅的wp
在后面还要加上flag(为什么呢,虽然能理解f1ag_Is_h3re可能是个目录名,但是为什么能想到呢,可能还是一种思维吧
最终payload:
1 | ....//....//....//....//....//....//f1ag_Is_h3rere//flag |
[PASECA2019]honey_shop
- 经典买东西
- session伪造
- /proc/self
- /environ
靶机主页面,经典要用钱买flag,刚好差一块钱,先都看看吧:
抓包,发现又是session伪造,所以我们可以修改balance为1337,这样就可以购买flag了,但是我们不知道密钥呀!!
再次回到首页,康康源码,抓抓包
最后点击图片可以下载,抓包康康;这种样子不禁让人觉得有文件包含漏洞,用/etc/passwd
测试是否存在文件包含漏洞
目录穿越之后实现了文件包含
看师傅的wp,学到的新知识:
(因为这里用到了flask session伪造,所以应该是python的环境
1 | /proc/self 指向当前的进程 |
得到密钥那就直接伪造,修改session,购买flag吧
[watevrCTF-2019]Supercalc
- flask session伪造
{{config}}
打开靶机,是一个计算器
测试几次之后,抓包发现session,kali中解密之后可以确定是flask session,我们可以进行伪造,既然已经知道是flask框架,然后执行的代码又是{'1+1'}
这样的,那么可以猜测是ssti注入
但是同样的,重点还是找到密钥
这里利用{{config}}
,不过这里必须要是再前面的运算报错的情况下才能实现,这或许和后端的check有关(?可以去看一下源码
利用注释绕过判断,但是在执行过程中又会执行,得到密钥
之后直接打payload:
1 | {"history":[{"code":"__import__(\"os\").popen(\"ls\").read()"},{"code":"1 + 1"},{"code":"1 + 1"},{"code":"1 + 1"},{"code":"1 + 1"}]} |
发现有flag.txt
直接cat就好啦
payload2:
1 | {"history":[{"code":"__import__(\"os\").popen(\"cat flag.txt\").read()"},{"code":"1 + 1"},{"code":"1 + 1"},{"code":"1 + 1"},{"code":"1 + 1"}]} |
[b01lers2020]Scrambled
- python脚本编写
简单来说,transmissions两边的kxkxkxkxsh
都不会改变,而中间的0b29
指的是第29位是b,第28位是0,直接写脚本
1 | import requests |
最后:
学到的新知识点:
0x01:
/proc/self
指向当前进程
/environ
指向进程的环境变量信息
做了好多flask session伪造
0x02:
利用{{config}}
获取环境变量
flask框架ssti注入
———————–TBC—————————