LitCTF一些题解

WEB

导弹迷踪

F12 在源代码中找到flag

image-20230519155006089

NSSCTF{y0u_w1n_th1s_!!!}

我Flag呢?

bp使用repeater看一下

image-20230519155501335

NSSCTF{6ea58035-0f11-4048-ad1d-39be33c5d5c6}

同时在网站的控制台处可以找到第一个彩蛋

image-20230519155800019

image-20230519155809078

LitCTF{First_t0_The_k3y!

Follow me and hack me

简单的hackbar的使用 用post和get方法分别进行传参

image-20230519160049607

NSSCTF{957f8756-66e3-45d2-9e1c-bcf6dd96c2ee}

常见的网站备份文件名都试一下

发现输入www.zip可以进行下载 下载后得到备份文件index.php.bak

image-20230519163046047

得到第三个彩蛋

_R3ady_Pl4yer_000ne_

这是什么?SQL !注一下 !

image-20230519165142849

在网页下方可以看到传入id参数的sql语句

尝试输入1、2等 直接看到了第四个彩蛋

F1rst_to_Th3_eggggggggg!}

使用sqlmap进行一个梭

python sqlmap url --dbs
python sqlmap url -D ctftraining -T flag -C "flag" --dump

得到NSSCTF{9ff959f5-1a7e-484a-8295-225ca817bef1}

就当无事发生

给了探姬的博客https://ProbiusOfficial.github.io

那就进去看看 第一篇文章就是题目相关的 “什么是flag ”

那进入github找到探姬存放数据的库

image-20230519182641671

定位到博客的库

image-20230524211251005

点击branch

image-20230519182751017

发现main分支最近更改过 “什么是flag”这篇文章也是最近发布的

image-20230519183002787

查看commit 一个commit可以认为是一个改动的节点 进入后查看新提交的commit的位置

image-20230519183157172

在这里有一个红 × 进入后找到“什么是flag呢” 对应的index.html
image-20230519183400263

找到flag:LitCTF{g1thub_c0mmit_1s_s0_us3ful}

Http pro max plus

考察http协议伪造

首先,显示只允许本地访问

image-20230519191538249

使用ip地址欺骗的字典 一键全部复制粘贴

X-Forwarded-For: 127.0.0.1
X-Forwarded: 127.0.0.1
X-Forwarded-With:127.0.0.1
X-Forwarded-Proto:127.0.0.1
X-Forwarded-Host:127.0.0.1
Forwarded-For: 127.0.0.1
Forwarded: 127.0.0.1
X-Forwarded-Host: 127.0.0.1
X-remote-IP: 127.0.0.1
X-remote-addr: 127.0.0.1 
True-Client-IP: 127.0.0.1 
X-Client-IP: 127.0.0.1
Client-IP: 127.0.0.1
X-Real-IP: 127.0.0.1
Ali-CDN-Real-IP: 127.0.0.1
Cdn-Src-Ip: 127.0.0.1
Cdn-Real-Ip: 127.0.0.1
CF-Connecting-IP: 127.0.0.1
X-Cluster-Client-IP: 127.0.0.1 
WL-Proxy-Client-IP: 127.0.0.1 
Proxy-Client-IP: 127.0.0.1 
Fastly-Client-Ip: 127.0.0.1 
True-Client-Ip: 127.0.0.1

第二层 you are not from pornhub.com

伪造Referer

image-20230519192324761

第三步 用chrome浏览器啊

伪造User-Agent

image-20230519192354974

第四步 修改代理服务器地址

伪造via

image-20230519192546047

提示查看/wtfwtfwtfwtf.php

image-20230519193646867

回显内容并没有用 f12看源代码

image-20230519193726024

转到sejishikong.php

得到NSSCTF{6dc39953-2c34-4dde-8217-5a76f14a385f}

http伪造相关知识

1.请从本地访问/提到ip ip地址欺骗

2.从什么网址访问 修改Referer

3.通过什么浏览器访问 修改User-Agent

4.使用什么代理服务器 修改via

5.http状态码

image-20230519195205508

6.cookie欺骗 认证 伪造

cookie机制是在浏览网页的时候,服务器将你的登录信息,浏览信息等发送给客户端并保存一定的时间。当你下一次访问这个网站的时候,就能读取上一次你的记录

cookie是一段小型的文本数据是由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。我们只要伪造了这个信息就可以绕过登录页面,直接登录。

HTTP基本认证

是允许http用户代理在请求的时候 提供用户名和密码的一种方式

认证过程:

1.客户端请求

2.服务端应答 包含字段WWW-Authenticate: Basic realm=”Secure Area” Basic为验证模式 realm=”Secure Area”是保护域

3.客户端输入用户名和密码 进行处理,在原先的请求上增加认证消息头(Authorization)然后重新发送再次尝试。过程如下:

  1. 将用户名和密码拼接为用户:密码形式的字符串。
  2. 如果服务器WWW-Authenticate字段有指定编码,则将字符串编译成对应的编码(如:UTF-8)。
  3. 将字符串编码为base64。
  4. 拼接Basic ,放入Authorization头字段,就像这样:Authorization Basic 字符串。 示例:用户名:Aladdin ,密码:OpenSesame ,拼接后为Aladdin:OpenSesame,编码后QWxhZGRpbjpPcGVuU2VzYW1l,在HTTP头部里会是这样:Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l

image-20230519200031252

image-20230519200053714

由此原理 可以对cookie进行爆破 伪造等操作

PHP是世界上最好的语言!!

一句话命令

image-20230519201410989

NSSCTF{6eb8d6fb-3f6b-44b8-8698-979458e6df93}

作业管理系统

登陆页面 admin admin直接过

在上传文件处找到第二个彩蛋 _S0_ne3t?

简单的文件上传

在上传文件处写入file:///flag 上传-继续编辑 就可以看到flag

NSSCTF{e2a030e7-c7f3-4587-a3b2-ea2243537015}

MISC

easy_shark

首先压缩包含有伪加密

image-20230524090146235

image-20230524090158520

修改后得到一个流量包

过滤http 在最后一个包中找到flag (前面是一堆fake的flag)

image-20230524090915381

有一个方程组 解为17 和 77 gezx{j13p5oznp_1t_z_900y_k3z771h_k001} 看起来是什么加密

猜测是仿射密码

image-20230524091412869

flag{w13e5hake_1s_a_900d_t3a771c_t001}

image-20230524091840267

在tcp流中可以找到上传了一句话木马文件

所以木马的key就是a

flag{w13e5hake_1s_a_900d_t3a771c_t001_a}

两仪生四象

拿到加密脚本

其实现的过程是:截取了flag中大括号内的内容 将其每个字符转化为10个二进制字符 再将他们一起拼接到binary_text文件中 将binary_text文件中 每三位二进制字符 对应_reverse_hash表中的数字与卦象进行转换 保存在encode_text中 最后对其进行输出

_hash = {"乾": "111", "兑": "011", "离": "101", "震": "001", "巽": "110", "坎": "010", "艮": "100", "坤": "000"}

encoded_text = "坤乾兑艮兑坎坤坤巽震坤巽震艮兑坎坤震兑乾坤巽坤艮兑震巽坤巽艮坤巽艮艮兑兑艮震兑乾坤乾坤坤兑艮艮坤巽坤坤巽坎坤兑离坎震艮兑坤巽坎艮兑震坤震兑乾坤乾坎坤兑坎坤震艮离坤离乾艮震艮巽震离震坤巽兑艮兑坎坤震巽艮坤离乾艮坎离坤震巽坎坤兑坤艮兑震巽震巽坎坤巽坤艮兑兑坎震巽兑"
text = ''
binary_text = ""
for char in encoded_text:
    binary_text += _hash[char]
formatted_binary_text = " ".join(binary_text[i:i+10] for i in range(0, len(binary_text), 10))

print(formatted_binary_text)
# 0001110111 0001101000 0000110001 0001100011 0001101000 0001011111 0001100001 0001100111 0000110100 0001101001 0001101110 0001011111 0001110000 0001110010 0000110000 0001100100 0001110101 0001100011 0001100101 0001100100 0001011111 0001110100 0001101000 0001100101 0001011111 0000110011 0001101001 0001100111 0001101000 0001110100 0001011111 0001010100 0001110010 0000110001 0001100111 0001110010 0001100001 0001101101 0001110011

拿到在线二进制转文本工具中 得到flag内的结果

image-20230524094505475

NSSCTF{wh1ch_ag4in_pr0duced_the_3ight_Tr1grams}

ssvvgg

010editor打开发现base64 可以讲base64解码后在单独保存为一个文件 也可以找个工具直接梭 将base64转为图片

https://feling.net/base64/

image-20230524154633930

保存为1.png

在图片尾部提示使用steghide 且密码为六位数字

使用sh脚本爆破可以得到密码为666666

image-20230524173026457