[护网杯 2018]easy_tornado】的更多相关文章

[护网杯 2018]easy_tornado 1.看看题目给了我们三个文件: /flag.txt url=?filename=/flag.txt&filehash=98c6aac4fbecf1b8604767afad2b65ef 告诉flag在/fllllllllllllag里面. 把fliename替换后报错: /welcome.txt url=?filename=/welcome.txt&filehash=b974cea7b45f12a2d446e8e7843ce2fb 题目是torn…
复现一道关于tornado的题目 首先可以得知此题用的是tornado,基于python的后端框架,多半是ssti注入 有三个文件,首先可得知flag在何处 然后观察hint和url就知道要根据cookie_secret来伪造请求,所以现在就只要找cookie--seceret url出错后会跳到此界面,发现注入点. 首先了解下tornado的相关知识 自己上手写下 了解下粗略的过程,tornado会用tornado.web.Application来构造实例,而其中参数handlers传入了正则…
简介 原题复现:  考察知识点:模板注入  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 [护网杯 2018]easy_tornado 打开页面发现三个链接依次打开  发现各自的文本 flag in /fllllllllllllag render md5(cookie_secret+md5(filename)) 从上面三个信息我们的值flag在/fllllllllllllag文件 render这个卡住了看了WP…
前言 题目环境 buuoj 上的复现,和原版的题目不是完全一样.原题使用的是 nginx + mysql 而 buuoj 上的是 apache + sqlite composer 这是在 PHP5.3 以上的一个依赖管理工具.感觉和 docker 很像,docker-compose 根据 docker-compose.yml 中配置的服务和镜像,生成虚拟机.PHP 中的 composer 则是根据 composer.json 加载配置的 php package 配置更新源,Composer 镜像…
1.打开之后给出了三个连接,分别查看下三个连接内得信息,结果如下: 2.url中参数包含一个文件名与一串应该是md5得加密的字符串,文件名已经获得了,就需要获取加密得字符串,但是加密字符串时需要使用到cookie_secret.搜索下tornado render信息,显示是找到模板进行渲染,因此就想到了ssti注入. 3.开始思考获取cookie_secret,未在三个页面中发现存在可利用得地方,然后就只能开始目录扫描,发现了error页面,就想到了修改前面正常的参数,然后看下报错界面,发现了错…
护网杯预选赛 WP转载自:https://qingchenldl.github.io/2018/10/13/%E6%8A%A4%E7%BD%91%E6%9D%AFWP-BitPwn/#more WEB easy tornado 打开链接是几个文件的列表,分别打开,关注url和内容 http://49.4.79.198:31809/file?filename=Orz.txt&signature=0434ba1fadd43ce31661c315fbb8a9c6 Orz.txt render() ht…
强网杯2018 - nextrsa - Writeup 原文地址:M4x@10.0.0.55 所有代码均已上传至我的github 俄罗斯套娃一样的rsa题目,基本把我见过的rsa套路出了一遍,值得记录一下 level 0 QWB_nextrsa [master●] python exp.py [+] Opening connection to 39.107.33.90 on port 9999: Done [*] Switching to interactive mode ok! Firstly…
题目名称:baby_forensic题目描述:can you catch the flag?附件:“data.7z” 2019护网杯初赛的一道取证题,比赛时没做出来,赛后又研究了一下. 获取profile的类型,因为不同的系统数据结构不一样,所以需要用--profile=来指定. 这里自动猜解可能的系统类型,一般情况下第一个是正确的,如果不对每个都试一下. volatility -f /root/data.vmem imageinfo 列出所有的进程 volatility -f /root/da…
考点:SSTI注入 原理: tornado render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页,如果用户对render内容可控,不仅可以注入XSS代码,而且还可以通过{{}}进行传递变量和执行简单的表达式. 网上看到的例子: #!/usr/bin/env python # -*- coding:utf-8 -*- from tornado.web import UIModule from tornado import escape class cust…
题目docker环境: https://github.com/sco4x0/huwangbei2018_easy_laravel git clone下来直接composer up -d 运行即可,可以把端口映射改为8080:80 使用 docker exec -it 容器name bash就可以交互式地进入容器进行操作 开始做题: 首先F12查看源码发现源代码路径: 但是现在复现的时候已经关闭了,从github上题目源码中直接把源码拷过来吧. 遇到有composer.json的题目,首先comp…
前言 本文对强网杯 中除了 2 个内核题以外的 6 个 pwn 题的利用方式进行记录.题目真心不错 程序和 exp: https://gitee.com/hac425/blog_data/blob/master/qwb2018/ 正文 silent 漏洞 在 free 的时候指针没有清空,而且程序没有 检测指针是否已经被释放 double free, 后面的 编辑功能也没有检验指针是否已经被 free ,所以 uaf signed __int64 free_() { int i; // [rsp…
参考: https://www.cnblogs.com/hac425/p/9416787.html http://tacxingxing.com/2018/03/28/2018qwb/ 事后复盘pwn,对于Gamebox一题发现网上wp都是大佬们利用堆玩出花,本菜鸡看到有printf格式化字符串漏洞,而且也没有防护,就想试试.但是难点在于printf(s)的s在堆上 由于printf(s)的s在堆上,利用起来没有栈上好用,需要在栈上找到这么一块内存.stack: param 15 -> para…
护网 又是签到 一天 这道题一开始 不懂得如何泄露 libc 信息,就蒙了  后来群里师傅也是刚刚好 做出 到这里 我就接着做了 . 先看下保护,发现  全开了 然后 就看下流程 大概 就是添加  chunk  show  合并两个chunk 可利用的 洞就是 int merge() { int v1; // ST1C_4 signed int i; // [rsp+8h] [rbp-18h] int index1; // [rsp+Ch] [rbp-14h] int index2; // [r…
import os def xor(a,b): assert len(a)==len(b) c="" for i in range(len(a)): c+=chr(ord(a[i])^ord(b[i])) return c def f(x,k): return xor(xor(x,k),7) def round(M,K): L=M[0:27] R=M[27:54] new_l=R new_r=xor(xor(R,L),K)#先将前27和后的27异或 然后将得到的27 位再跟k异或 re…
Web签到 比赛链接:http://39.107.33.96:10000 比赛的时候大佬对这题如切菜一般,小白我只能空流泪,通过赛后看别人的wp,我知道了还有这种操作. 这个赛题分为3层 第一层 The Fisrt Easy Md5 Challenge 为MD5弱类型比较,这时候传入两个加密后开头为0e的不想等值就可以绕过了. if($_POST['param1']!=$_POST['param2'] && md5($_POST['param1'])==md5($_POST['param2…
前言 相关题目位于 https://gitee.com/hac425/blog_data/tree/master/hwb task_shoppingCart 漏洞位于 00BD9 用户输入 idx 然后根据索引找到表项( T ), 然后取 T 开头的 8 字节作为指针,先打印内容,然后修改. 通过漏洞,加上上图那种逻辑结构我们就可以查看并修改 data 的数据. 这个题的关键工作就是构造上图的结构. 开始以为和之前的一场比赛的题一样,程序中会有一个地方存着指向 got 表的指针 https://…
1.题目源码 https://github.com/ZhangAiQiang/three-hit 题目并不真的是当时源码,是我根据做法自己写的,虽然代码烂,但是还好能达到复现的目的 ,兄弟们star一下就是最大的鼓励啊. 2.is_numeric()漏洞 is_numeric()检查是否是数字字符串,同时也可以是十六进制. 比如 is_numeric(1) true is_numeric('a') false is_numeric('2a') false is_numeric(0xabcedf)…
这是事后才做出来的,网上没有找到现成的writeup,所以在这里记录一下 UPX加壳,而且linux下upx -d无法解,也无法gdb/ida attach 因为是64位,所以没有pushad,只能挨个函数进入,退出,看看程序是否恢复. 当运行到一0x400dd0,发现此时已经可以看见字符串了 用dumphex的脚本来dump出内存,见hide_dump static main(void) { auto fp, begin, end, dexbyte; fp = fopen("C:\\dump.…
首先进入网页后,观察到有sign up 点击sign up 进行注册 再点击sign in 进行登录 进入一个买辣条的界面,可以知道,5元可以买一包大辣条,多包大辣条可以换一包辣条之王,多包辣条之王可以换Flag 进入info查看余额,发现,至多可以买4包大辣条,不满足辣条之王的兑换 尝试条件竞争打开burpsuit点击大辣条的购买窗口,抓取数据 发送到Intruder,点击Positions,点击clear 点击Payloads 这里算是纠结了一下,最后想到利用条件竞争,试验发现一个账户的两个…
第一次遇到模板注入的题,赶紧记笔记,此篇相当于对大佬的做法的复现Orz,师傅太强了https://blog.csdn.net/weixin_44255856/article/details/97687299,这道题出自 2018的护网杯 在hints里看到条件,猜测  ” filename=/fllllllllllllag&filehash=?“,只要构造出这个就行了,但是现在还缺一个cookie_secret 一开始还以为是自己的cookie,构造好提交出现了一个新的界面 菜鸡无奈开始寻求wp…