title: picoCTF-day1tags: CTF
abbrlink: fa61788
date: 2020-10-11 22:34:26

Lets Warm Up

If I told you a word started with 0x70 in hexadecimal, what would it start with in ASCII?

这应该就是签到题了吧?爱了爱了,十六进制转十进制再打表(突然ACM)转ASCII,得到‘p’,按照格式输入即可

The Numbers

下载图片后得到一串数字,根据格式盲猜开头是picoCTF,然后又是一波打表- -,根据这几个字母和他们的数字就硬解出了这道题,拿到了Flag

2Warm

进制转换,啊这,这才是签到题吧- -

Insp3ct0r

打开网页源代码,找到1/3的Flag,然后观察代码,发现一个css和一个js,可能答案藏在这里,打开之后分别找到第二第三部分,合并即可

Glory of Garden

下载图片,一看就是老套路,第一页题目盲猜不会太深,直接开stegsolve看图片信息,果然找到了flag

vault-door-training

题目太长不看,下载java文件打开源码即得flag

Warmed UP

梅开二度,仿照前面进制转换

vault-door-1

本题是前面vault变种,打开源码看应该是一个登录的密码核对的处理机制。

  1. import java.util.*;
  2. class VaultDoor1 {
  3. public static void main(String args[]) {
  4. VaultDoor1 vaultDoor = new VaultDoor1();
  5. Scanner scanner = new Scanner(System.in);
  6. System.out.print("Enter vault password: ");
  7. String userInput = scanner.next();
  8. String input = userInput.substring("picoCTF{".length(),userInput.length()-1);
  9. if (vaultDoor.checkPassword(input)) {
  10. System.out.println("Access granted.");
  11. } else {
  12. System.out.println("Access denied!");
  13. }
  14. }
  15. // I came up with a more secure way to check the password without putting
  16. // the password itself in the source code. I think this is going to be
  17. // UNHACKABLE!! I hope Dr. Evil agrees...
  18. //
  19. // -Minion #8728
  20. public boolean checkPassword(String password) {
  21. return password.length() == 32 &&
  22. password.charAt(0) == 'd' &&
  23. password.charAt(29) == '3' &&
  24. password.charAt(4) == 'r' &&
  25. password.charAt(2) == '5' &&
  26. password.charAt(23) == 'r' &&
  27. password.charAt(3) == 'c' &&
  28. password.charAt(17) == '4' &&
  29. password.charAt(1) == '3' &&
  30. password.charAt(7) == 'b' &&
  31. password.charAt(10) == '_' &&
  32. password.charAt(5) == '4' &&
  33. password.charAt(9) == '3' &&
  34. password.charAt(11) == 't' &&
  35. password.charAt(15) == 'c' &&
  36. password.charAt(8) == 'l' &&
  37. password.charAt(12) == 'H' &&
  38. password.charAt(20) == 'c' &&
  39. password.charAt(14) == '_' &&
  40. password.charAt(6) == 'm' &&
  41. password.charAt(24) == '5' &&
  42. password.charAt(18) == 'r' &&
  43. password.charAt(13) == '3' &&
  44. password.charAt(19) == '4' &&
  45. password.charAt(21) == 'T' &&
  46. password.charAt(16) == 'H' &&
  47. password.charAt(27) == 'f' &&
  48. password.charAt(30) == 'b' &&
  49. password.charAt(25) == '_' &&
  50. password.charAt(22) == '3' &&
  51. password.charAt(28) == '6' &&
  52. password.charAt(26) == 'f' &&
  53. password.charAt(31) == '0';
  54. }
  55. }

但是想要破解密码需要一点点技巧(一个一个手动核对实在是太麻烦了- -),感谢lrj学长的精心指导,让我想起了vs code可以对同样的字符片段进行批量操作,把前面的字符全部删除之后,利用python,把==变成:,然后以数字作为key进行sort排序,然后批量提取即可得到flag,这个记录可圈可点

what’s a net cat?

没啥说的,打开Kali,打开终端

  1. nc jupiter.challenges.picoctf.org 54271

即可得到flag

Strings it

这个下载下来,hint说的是不用打开,那就是hexo了,打开根据编码搜索‘ctf’无果,更换大小写‘CTF’查找几次之后即找到了flag

Easy1

这不就是OI的打表题吗,爱了爱了,根据给的table把他进行解码就可以得到flag

where are the robots

打开链接以后,根据题目,应该指的是robot.txt,那就访问robot,又得到一个html,即可得到flag

总结

dalao们都说picoCTF的题循序渐进,适合入门,看来确实是这样,今后就在这儿开坑了