[Write-Up][ສະເຫລີຍ] MISC 100: Algebra ແກ້ສົມຜົນໄວຂັ້ນເທບ | CSAW CTF’18
ຄຳອະທີບາຍ: Are you a real math wiz?nc misc.chal.csaw.io 9002
ສຳລັບໂຈດນີ້ແມ່ນໃຫ້ເຮົາ connect ເຂົ້າໄປ server ຜ່ານ netcat ເມື່ອເຊື່ອມຕໍ່ເຂົ້າໄປແລ້ວເຮົາຈະໄດ້ຂໍ້ມູນ response ກັບມາແບບນີ້
ຈະມີສົມຜົນໃຫ້ເຮົາແກ້ແລ້ວສົ່ງໄປ ແຕ່ມັນຈະຂຶ້ນມາໃຫ້ເຮົາຕອບເລື້ອຍໆບໍ່ຮູ້ວ່າຕອບໄປເທົ່າໃດຈຶ່ງຈະໄດ້ flag ມາສັງເກດໄດ້ວ່າຍິ່ງເຮົາຕອບໄປເລື້ອຍໆໂຈດຈະສັບຊ້ອນຂຶ້ນໄປເລື້ອຍໆໆ ແລ້ວເວລາໃນການຕອບເຮົາມີຈຳກັດປະມານ 1 ນາທີ ແລ້ວເຮົາກະບໍ່ຮູ້ຕ້ອງຕອບຫລາຍປານໃດອາດຈະ 20 ຫລື 30 ຂໍ້ຂຶ້ນໄປກະບໍ່ຮູ້ໄດ້ ຖ້າຈະມາໄລ່ເອງເທື່ອລ່ະໂຈດບໍ່ມີທາງເຮັດໄດ້ທັນເວລາແນ່ນອນຖ້າສົມມຸດມັນມາໃນຮູບແບບ
(((((3 - X) + (1 * 19)) - ((16 * 7) * (15 * 19))) - (((2 * 15) - (5 * 4)) * ((6 * 5) - (3 * 15)))) - ((((5 * 16) + (5 * 15)) * ((13 - 4) * (10 + 18))) * (((6 - 11) + (2 * 10)) + ((15 + 4) + (1 - 10))))) - (((((16 - 11) - (2 * 15)) + ((18 + 9) * (9 - 3))) + (((2 - 7) * (5 - 17)) * ((6 + 9) * (10 * 13)))) - ((((9 - 18) * (17 - 1)) + ((4 + 17) * (2 - 7))) * (((4 + 17) * (18 + 15)) * ((20 * 7) - (3 - 6))))) = -25801054
ເຮົາບໍ່ໜ້າຈະໄລ່ມືລອດ ຫະຫະ ຊັ້ນເຮົາມາຂຽນໂປແກມແກ້ສົມຜົນກັນເລີຍ
ຜູ່ຂຽນຈະໃຊ້ sympy ເຊິ່ງເປັນ module ສຳລັບແກ້ເລກຕ່າງໆໄດ້ແບບສະບາຍໆ ແລະ pwntools ໃນການສົ່ງແລະຮັບ ຂໍ້ມູນຈາກເຊີເວີ້ ຍ້ອນຫຍັງຈຶ່ງໃຊ້ pwntools ບໍ່ໃຊ້ socket, telnet ບອກເລີຍວ່າຍ້ອນ pwntools ມັນຂຽນສັ້ນແລະເທບບບບ 55 ມັນເກີດສຳລັບ CTF ໂດຍສະເພາະ
ແລ້ວ final code ທີ່ໄດ້ແມ່ນແບບນີ້
ຈະເຫັນໄດ້ວ່າມີການໃຊ້ try-except ແລ້ວໃຫ້ມັນ run function algebra() ໃໝ່ທັງສອງເພາະວ່າ ໂຈດທີ່ໄດ້ບາງທີມັນກໍ່ບໍ່ສາມາດແກ້ໄດ້ເລີຍເກີດ error ຂຶ້ນວິທີແກ້ກໍ່ແບບນີ້ເນາະຖ້າເກີດ error ແລ້ວໃຫ້ມັນ run function ໃໝ່ຈົນກວ່າຈະເຫັນ flag ແລ້ວເຮົາມາລອງ run ໂປແກມທາງເທິງນີ້ເບິ່ງກັນເລີຍ!
ເຫັນວ່າຍິງຕອບໄປໆ ຍິ່ງໄດ້ໂຈດຍາກຂຶ້ນແບບເຫັນບໍ່ທັນເວລາແທ້ໆຖ້າມາໄລ່ມືເອງຫລັງຈາກທີ່ປະໃຫ້ມັນ run ຕອບໄປເລື້ອຍໆເຮົາກໍ່ໄດ້ flag ມາແລ້ວ!!
ແລ້ວ flag ທີ່ໄດ້ແມ່ນ
flag{y0u_s0_60od_aT_tH3_qU1cK_M4tH5}
YEY!~ ພົບກັນ blog ຕໍ່ໄປ~