首页 > 其他分享 >[CISCN2019 华东南赛区]Web4

[CISCN2019 华东南赛区]Web4

时间:2024-07-07 14:22:15浏览次数:16  
标签:return url 赛区 app read flag session Web4 CISCN2019

进入题目

image

发现一个超链接、
右键检查
image

发现/read?url路径猜测后端语言不是php是python
点击超链接跳转到百度猜测存在ssrf漏洞
访问/etc/passwd成功
image

尝试访问/app/app.py源码成功
image

encoding:utf-8 import re, random, uuid, urllib from flask import Flask, session, request app = Flask(name) random.seed(uuid.getnode()) app.config['SECRET_KEY'] = str(random.random()233) app.debug = True @app.route('/') def index(): session['username'] = 'www-data' return 'Hello World! Read somethings' @app.route('/read') def read(): try: url = request.args.get('url') m = re.findall('^file.', url, re.IGNORECASE) n = re.findall('flag', url, re.IGNORECASE) if m or n: return 'No Hack' res = urllib.urlopen(url) return res.read() except Exception as ex: print str(ex) return 'no response' @app.route('/flag') def flag(): if session and session['username'] == 'fuck': return open('/flag.txt').read() else: return 'Access denied' if name=='main': app.run( debug=True, host="0.0.0.0" )

查看师傅解读

image

要访问/flag,用户为fuck且有session 抓包

image

发现jwt格式的session
解密

image

image

查看源码,看师傅解读
对于伪随机数,如果seed是固定的,生成的随机数是可以预测的,也就是顺序固定的,所以只要知道seed的值即可。这里的seed使用的uuid.getnode()的值,该函数用于获取Mac地址并将其转换为整数。
那么就需要读取Mac地址local_file:///sys/class/net/eth0/address
得到Mac地址:0xa275cf685e40
然后使用Python2得出**(Python2和Python3保留的位数不一样)
image

image

130.950614643
用flask_session_cookie_manager3.py工具

替换session

image

得到flag

标签:return,url,赛区,app,read,flag,session,Web4,CISCN2019
From: https://www.cnblogs.com/v3n0m-cccccc/p/18288451

相关文章

  • [CISCN2019 总决赛 Day2 Web1]Easyweb
    进入题目查看源码发现id参数可用sql注入脚本目录扫描发现robots.txt尝试fuzz爆破参数发现image.php.bak可用<?phpinclude"config.php";$id=isset($_GET["id"])?$_GET["id"]:"1";$path=isset($_GET["path"])?$_GET["path"]:"&......
  • [CISCN2019 华东南赛区]Web11
    进入题目注意到xff在url处随意输入目录·xff随之变化注意下放smarty是php模板猜测xff为模板注入点如下用if标签看到回显得到flagflag{6efda977-94fb-4d30-8668-fe28458ec2bf}......
  • [CISCN2019 华东南赛区]Double Secret
    进入题目由于请求不能过快,目录扫描工具失效可写脚本,根据题目两个secret,猜测有serect目录访问猜测还有一个secret参数随意输入发现源码泄露注意到有flask,考虑python模板注入注意到发现rc4加密找师傅的加密脚本importbase64fromurllib.parseimportquotedef......
  • ctfshow web 其他 web432--web449
    web432过滤了os|open|system|read|eval?code=str(''.__class__.__bases__[0].__subclasses__[185].__init__.__globals__['__builtins__']['__imp'+'ort__']('o'+'s').__dict__['po'+'pen'](......
  • ctfshow-web入门-命令执行(web37-web40)
    目录1、web37 2、web383、web394、web40命令执行,需要严格的过滤 1、web37 使用php伪协议:?c=php://inputpost写入我们希望执行的php代码:<?phpsystem('tacf*');?>拿到flag:ctfshow{5c555d9a-6f55-411a-a25f-d38b70240639}再看wp它用到是data://......
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk
    [CISCN2019华北赛区Day1Web5]CyberPunk在源代码中发现提示可能存在文件包含,并且还有search.php,change.php,delete.php这三个文件,通过php伪协议进行读取?file=php://filter/convert.base64-encode/resource=index.php?file=php://filter/convert.base64-encode/resource=sear......
  • ctfshow--web4
    这题和第三题有点不一样,这题的把php和data都过滤掉了一旦我们输入这个关键字就页面就会报error一开始是没啥头绪的,后面上网查了一下,可以通过日志记录来注入代码对于Apache,日志存放路径:/var/log/apache/access.log对于Ngnix,日志存放路径:/var/log/nginx/access.log和/var/......
  • 2023年全国青少年信息素养大赛 第9届Python编程挑战赛北京赛区(小学组)复赛试题解析
    2023年全国青少年信息素养大赛第9届Python编程挑战赛北京赛区(小学组)复赛试题解析T1.求余数题目描述:输入一个正整数,输出这个整数除以5的余数。输入描述:输入一行一个正整数输出描述:输出这个整数除以5的余数样例1:输入:12输出:2#示例代码n=int(input())print(n%5)......
  • [CISCN2019 华北赛区 Day2 Web1]Hack World 1 盲注
    页面打开如上获取到信息flag在flag表中的flag列中尝试注入发现对用户的输入进行了限制使用burp进行fuzz测试其中535代表该页面对该条件进行了过滤其中括号并没有被过滤所以可以利用括号来代替空格进行盲注已知f的ascii码为102构筑等式(select(ascii(mid(flag,1,1)......
  • [CISCN2019 华北赛区 Day2 Web1]Hack World
    [CISCN2019华北赛区Day2Web1]HackWorld页面中给了提示,数据表名和列名都为flag输入1尝试输入2尝试输入3提示获取结果出错输入1'尝试找注入点,根据返回结果判断可能是字符型注入使用永真语句尝试发现注入被过滤通过爆破发现部分关键字并没有被过滤这里通过师傅们(h......