介绍
这是面对初学者很友好的一个ctf,持续两周时间,结束后会有官方writeup。
Web Exploitation
0x01 findme
使用test/test! 登录
302跳转的两个数据包id参数值为flag的base64编码。
picoCTF{proxies_all_the_way_25bbae9a}
0x02 MatchTheRegex
根据提示输入满足正则的文本。
picoCTF{succ3ssfully_matchtheregex_8ad436ed}
0x03 SOAP
简单的xml注入
picoCTF{XML_3xtern@l_3nt1t1ty_4dbeb2ed}
0x04 More SQLi
根据显示的sql语句构造注入登录。
picoCTF{G3tting_5QL_1nJ3c7I0N_l1k3_y0u_sh0ulD_c8ee9477}
0x05 Java Code Analysis!?!
查看java代码,jwt的SECRET_KEY
由secretGenerator
生成
查看secretGenerator
代码
默认使用server_secret.txt
文件作为密钥,当文件不存在时,生成密钥为1234
使用jwt.io查看jwt,密码的确为1234.
修改role为Admin
查看Admin用户的userId
修改userId为2
查看到flag
picoCTF{w34k_jwt_n0t_g00d_7745dc02}
Cryptography
0x01 HideToSee
使用steghide
提取出txt
使用atbash解密
picoCTF{atbash_crack_23e713cd}
0x02 ReadMyCert
使用openssl
openssl req -text -in C:\Users\24217\Downloads\readmycert.csr -noout
picoCTF{read_mycert_96d48a46}
0x03 rotation
凯撒密码很简单。
picoCTF{r0tat1on_d3crypt3d_0105782a}
0x04
Reverse Engineering
0x01 Ready Gladiator 0
有一个在线模拟游戏的网站
https://crypto.stanford.edu/~blynn/play/redcode.html
可以看到当不输入任何指令时,就会输。 🤣
picoCTF{h3r0_t0_z3r0_4m1r1gh7_e476d4cf}
0x02 Reverse
直接使用IDA查看
picoCTF{3lf_r3v3r5ing_succe55ful_c83965de}
0x03 Safe Opener 2
使用jd-gui打开
picoCTF{SAf3_0p3n3rr_y0u_solv3d_it_7db9fb8c}
0x04 timer
使用jadx打开即可
picoCTF{t1m3r_r3v3rs3d_succ355fully_17496}
0x05 Virtual Machine 0
dae后缀文件为3D模型的文件,使用在线Autodesk打开
https://viewer.autodesk.com/
可以由两个齿轮的比例,计算出结果。
from Crypto.Util.number import long_to_bytes
a = 39722847074734820757600524178581224432297292490103995897672826024691504153
a *= 5
print(long_to_bytes(a))
picoCTF{g34r5_0f_m0r3_05e5104d}
0x06 No way out
unity游戏逆向,不知道怎么弄,用dotpeek看了反编译的代码,没有发现有出现flag的地方。
参考视频 https://www.youtube.com/watch?v=yAl_6qg6ZnA
使用cheat engine搜索值,通过改变高度,定位到高度值后,修改,即可通过空气墙。
picoCTF{WELCOME_TO_UNITY!!}
0x07 Ready Gladiator 1
随便找了一个策略dwarf
ADD #4, 3
MOV 2, @2
JMP -2
DAT #0, #0
picoCTF{1mp_1n_7h3_cr055h41r5_ec57a42e}
0x07 Ready Gladiator 2
找到策略如下:https://corewar.co.uk/heremscimitar.htm
;redcode-94
;name Herem/Scimitar
;author A.Ivner,P.Kline
;strategy bomber
;macro
step equ 27
count equ 1470
jmp clr
start mov sb,@st
st mov {100,cnt-(2count*step)-1
add bmb,st
cnt djn start,#count-1
sb spl #step,0
clr mov bmb,>-13
djn.f clr,{-14
for 22
dat 0,0
rof
dat <4,step+step
bmb dat <4,step+step
start
end
picoCTF{d3m0n_3xpung3r_fc41524e}
Forensics
0x01 hideme
用010editor进行查看
图片IEND结尾还有数据,并且开头为50 4B 03 04
,很明显是zip文件。
拆分出来。
解压即可得到flag。
picoCTF{Hiddinng_An_imag3_within_@n_ima9e_5678a337}
0x02 PcapPoisoning
pcap文件,直接使用wireshark打开
搜索picoCTF相关字符
picoCTF{P64P_4N4L7S1S_SU55355FUL_ed4df487}
0x03 who is it
查看邮件文件,发现发送邮件SMTP邮件服务器ip地址:173.249.33.206
使用whois
命令查询
picoCTF{WilhelmZwalina}
0x04 FindAndOpen
查看到第48个数据包有base64格式数据。
用密码解密压缩文件,得到完整flag
picoCTF{R34DING_LOKd_fil56_succ3ss_c2043b9b}
0x05 MSB
用StegSolve
打开图片,可以看到在red green blue pannel 7图片有明显差别。
提取RGB pannel 7.
picoCTF{15_y0ur_que57_qu1x071c_0r_h3r01c_60dd217e}
0x06 Invisible WORDs
0x07 UnforgottenBits
General Skills
0x01 chrono
ssh连接服务器,查看计划任务文件/etc/crontab
picoCTF{Sch3DUL7NG_T45K3_L1NUX_9d5cb744}
0x02 money-ware
google一下,就能搜到。
picoCTF{Petya}
0x03 Permissions
使用sudo -l
查看到可以使用vi
命令提权
使用命令sudo vi -c '!sh'
picoCTF{uS1ng_v1m_3dit0r_89e9cf1a}
0x04 repetitions
做6次base64即可
picoCTF{base64_n3st3d_dic0d!n8_d0wnl04d3d_de523f49}
0x05 Rules 2023
在F12
控制台中使用ctrl+shirft+F进行全局搜索。
picoCTF{h34rd_und3r5700d_4ck_cba1c711}
0x06 useless
无语,flag在man page里
输入man useless
picoCTF{us3l3ss_ch4ll3ng3_3xpl0it3d_4373}
0x07 Special
这题所有输入命令都会做拼写检查,并且首字母大写,使用|
和*
进行绕过。
0x08 Specialer
这题只允许使用bash内置命令,可以使用help
查看。
使用type命令可以查看到目录。
使用echo "$(<FILENAME)"
的方式查看文件内容。
picoCTF{y0u_d0n7_4ppr3c1473_wh47_w3r3_d01ng_h3r3_d5ef8b71}
Binary Exploitation
0x01 babygame01
使用IDA进行分析。
程序大致逻辑是wasd来控制@走迷宫。
但是想要获取flag,需要v6
不为0,但是程序初始化后没有对v6
有任何操作。
分析move_player
函数
这里将原来所在点赋值为.
,移动后点赋值为player_tile
,默认及@
这里是存在数组指针溢出的。
根据v7[2000]
地址为esp+Eh
,v6
地址为esp+Ah
,计算出偏移量为-4
.
使用wwwwaaaaaaaa
将点移动到[0,-4]的位置。
然后输入la
可以看到v6
被赋值为了a
我们可以用这种方法来改变v6
为任意值。
这里不输入la
也行,因为程序在输入wwwwaaaaaaaa
时就将v6
赋值为@
了。
然后solve_round
函数就不用仔细看了,这个函数可以让我们自动完成迷宫。
输入p
得到flag
picoCTF{gamer_m0d3_enabled_2bcdc8e6}
0x02 two-sum
分析代码,明显是整数溢出。
int型,默认为有符号整数,长度为4字节,即-2,147,483,648 到 2,147,483,647
picoCTF{Tw0_Sum_Integer_Bu773R_0v3rfl0w_ccd078bd}