• 第二届红帽杯


    • Not Only Wireshark:

    用wireshark打开,筛选http,看到一些可疑的字符

    用python跑一下把这些可疑字符提取出来

    import re
    
    f = open("Not Only Wireshark.pcapng", "rb").read()
    
    a = re.findall(b"/sqli/example2.php?name=(...)", f)
    
    f1 = open("test.txt", "a+")
    
    for i in a:
    	j = i.decode()
    	strs = "".join(j)
    	f1.write(strs)
    
    f1.close()
    

    提取出来的字符

    在 1234 后面补个5,加上后面几位就是504B0304,这是zip的文件头

    生成zip文件

    a = "504B03040A0001080000739C8C4B7B36E495200000001400000004000000666C616781CD460EB62015168D9E64B06FC1712365FDE5F987916DD8A52416E83FDE98FB504B01023F000A0001080000739C8C4B7B36E4952000000014000000040024000000000000002000000000000000666C61670A00200000000000010018000DB39B543D73D301A1ED91543D73D301F99066543D73D301504B0506000000000100010056000000420000000000"
    a_b = bytes.fromhex(a)
    f = open('test.zip','wb')
    f.write(a_b)
    f.close()
    

    生成完成后打开

    看到一个flag文件,但是要密码

    解压密码在流量包中

    解压密码是 key= 之后的内容

    输入解压密码,得到flag

    • simple upload:

    随便输个账号密码

    burp 抓包

    发现一个可以的地方 admin=0,把 0 改成 1,发包

    在返回包里看到一个链接,访问一下

    是一个上传点

    上传个php脚本上去

    burp 改包

    admin=0 把 0 给成 1,shell.jpg 改成 shell.php

    主要是检测 Content-Type 这个,要是image/jpeg 或 png 的

    返回包中得到地址,访问一下

    直接是图片了,看一下是啥容器

    Tomcat,得上传 jsp 脚本上去

    在根目录看到一个 flag 文件

    查看内容,得到 flag

    biubiubiu:

    打开链接,是一个登陆页

    在地址处看到,index.php?page=login.php,可能存在文件包含

    试着读一下/etc/passwd,index.php?page=../../../../../etc/passwd

    成功读取了/etc/passwd

    接下来读取 nginx 的配置文件,index.php?page=../../../../../etc/nginx/nginx.conf

    读取错误日志文件的内容,index.php?page=../../../../../var/log/nginx/access.log 和 index.php?page=../../../../..//var/log/nginx/error.log,发现访问的链接地址都会被记录

    访问x.php<?php phpinfo();?>

    phpinfo 被成功执行

    写一句话

    • 听说你们喜欢手工爆破:

    题目提示:flag{}内英文字母为大写形式

    下载下来是一个 iso 文件,看一下里面的东西

    有个压缩文件,还有很多的 txt 文本文件

    全部提取出来

    压缩文件需要密码,这些 txt 里都是 base64 加密的 Th3r3 1s n0 f1ag,不是解压密码

    把这些 txt 的文件名提取出来

    import os
    
    a = os.listdir(r"C:UsershpDesktopOS_038c9291c8039792d1aad140f6664671")
    
    f = open("password.txt", "w")
    for filename in a:
        index = filename.rfind(".")
        name = filename[:index]
        if "情系海边之城" not in name:
        	f.write(name + "
    ")
    
    f.close()
    

    提取结果

    把这些用作字典用 ARCHPR 4.53 爆破一下

    爆出了密码

    打开 doc 文件,需要密码才能打开

    用工具 Advanced Office Password Recovery 爆破一下

    得到密码 5693,打开文档

    这里有一串字符

    百度一下情系海边之城

    情系海边之城又叫海边曼切斯特,联想到曼彻斯特编码

    n = 0x123654AAA678876303555111AAA77611A321
    
    flag = ''
    bs = '0' + bin(n)[2:]
    r = ''
    
    def conv(s):
    	return hex(int(s,2))[2:]
    
    for i in range(0, len(bs), 2):
    	if bs[i:i+2] == '01':
    		r += '0'
    	else:
    		r += '1'
    
    for i in range(0, len(r), 8):
    	tmp = r[i:i+8][::-1]
    	flag += conv(tmp[:4])
    	flag += conv(tmp[4:])
    
    print("flag" + "{" + flag.upper() + "}")
    

    得到 flag

  • 相关阅读:
    软件测试的定义及分类总结
    Selenium下拉菜单(Select)的操作Selenium快速入门(五)
    Selenium框架切换Selenium快速入门(七)
    元素(WebElement)Selenium快速入门(三)
    Selenium窗口切换Selenium快速入门(六)
    Selenium简介与环境搭配Selenium快速入门(一)
    测试用例的几种常见设计方法
    driver.get()和driver.navigate().to()到底有什么不同?Selenium快速入门(四)
    元素定位Selenium快速入门(二)
    关于VS2010与SQL Server2008 R2的安装问题
  • 原文地址:https://www.cnblogs.com/sch01ar/p/8992754.html
Copyright © 2020-2023  润新知