CTF write_up/NCSC CTF
-
NCSC CTF 2019 [Reversing]2factorauth write upCTF write_up/NCSC CTF 2019. 2. 9. 01:19
↑문제 파일파일을 실행해 보니 다음과 같이 PASSWORD1을 물어보고는 답이 아닌지 :( 를 출력하네요 어떤 파일로 이루어 졌는지 보겠습니다.ELF 파일로 되어 있네요. IDA를 이용해서 분석해 보겠습니다.↑main 함수 일단 fgets로 11글자를 입력으로 받고 그 길이 만큼 rot13함수를 반복 시키네요 rot13함수를 한번 보겠습니다.아스키 코드를 이용해서 13을 더하고 빼는 함수 같네요 그리고 memfrob함수를 거쳐서 test와 test1을 비교해서 같으면 넘어가고 다르면 아까 처럼 :( 가 출력되는 것 같습니다. memfrob함수는 42랑 XOR하는 함수 입니다. 따라서 역연산 시에 42랑 XOR해야합니다. 25번줄 부터 보면 이번엔 PASSWORD2로 숫자를 입력합니다. v4 = (14 *..
-
NCSC CTF 2019 [Reversing]Warmup write upCTF write_up/NCSC CTF 2019. 2. 8. 23:43
bin파일은 ELF 파일로 되어 있기 때문에 IDA 프로그램으로 바이너리를 분석해 보도록 하겠습니다.↑main() 함수 FLAG 를 입력 하는데 입력한 문자열을 8번째 줄에 의해서 Hex로 변환해 줍니다. 그리고 func()로 들어가게 되는데↑func() 함수 12번줄 에서 재귀함수를 사용하고, 13번 줄에서 입력한 값의 Hex값을 역순으로 바꿔 주는 역할을 합니다. 그리고 나서 main()함수의 10번째 줄의 d71297374333f597374333f597374333b7374756e6962757365637 와 test를 비교해서 참이 되어야 합니다. D71297374333f597374333f597374333b7374756e6962757365637 -> 7365637572696e6574737b333473..
-
NCSC CTF 2019 [Crypto]crypto1 write upCTF write_up/NCSC CTF 2019. 2. 8. 23:17
파일에서 주어진 값은 다음과 같습니다. 1 2 3 n = 93587363287156334812299342740228308093795365883388785316655388313363539378259286962127927636210532538900920198550544117072392764271544799515433876778458261254334996572307192587527399669983018757929928245773886731002488376926853218802124573883439481717837639393599516660701804298344896143670444749710014423277 e = 65537 c = 6708345970428668167609844882584957784741432..
-
NCSC CTF 2019 [Crypto]Hmm.. write upCTF write_up/NCSC CTF 2019. 2. 8. 23:05
서버를 실행해 보면 다음과 같은 문구가 출력됩니다.Key값을 찾기 위해서는 a와 b의 값을 알아야 합니다. a와 b의 값을 찾는 Python코드를 작성해 보았습니다. 1 2 3 4 5 g = 15 p = 9605179 for i in range(0,100): print(str(i)+" "+str((g**i)%p)) ↑ a값구하기.py 1 2 3 4 5 g = 15 p = 9605179 for i in range(0,100): print(str(i)+" "+str((g**i)%p)) ↑ b값구하기.py 디피헬만 알고리즘에 의해서 KeyA = (gb % p)a % pKeyB = (ga % p)b % p 입니다. 값을 계산해 보면 둘다 값이 7901925가 나옵니다. 해당 키를 가지고 복호화를 해야하는데 문제..
-
NCSC CTF 2019 [Misc]Baby Hacker write upCTF write_up/NCSC CTF 2019. 2. 8. 22:39
다음과 같은 txt파일이 눈에 보입니다. 해당파일을 다운 받아 보겠습니다. 열어보니 헥스 파일이 있는데 아예 주소와 string까지 적혀있습니다. LZIP이라고 되어있는 맨위의 해더는 파일의 확장자를 의미 합니다. 그래서 파이썬 코드를 작성해서 앞 주소와 뒤 string을 지우고 Hex부분만 가져 오겠습니다.↑Hex부분만 추출하는 python코드이렇게 다른 메모장에 입력해 두었습니다. 전부 복사해서 HxD에 입력한뒤에 저장을 하고 칼리리눅스에서 확인해 보았습니다.Lzip이라고 나와서 .lz로 하고 압축을 풀어 보았습니다. Lzip 설치는 sudo apt-get install lzip 입니다.압축 해제를 하면 Flag 값 입니다. Flag : Securinet{Congr@T$_u_R_N0_LonGer_a_..
-
NCSC CTF 2019 [Misc]LOST FLAG write upCTF write_up/NCSC CTF 2019. 2. 8. 22:30
↑문제 파일 gz확장자에 tar확장자가 있기 때문에 칼리리눅스를 이용해서 압축을 풀어 보도록 하겠습니다. 확장자를 다 압축 풀었더니.. qr이라는 파일이 생성 되었습니다.다음과 같은 qr코드가 1000개가 있습니다. 그래서 파이썬 모듈을 이용해서 qr코드 인식을 해보기로 했습니다. 1 2 3 4 5 6 7 8 from qrtools import QR for i in range(0, 1001): my_QR = QR(filename = "/root/qr/image" + str(i) + ".png") my_QR.decode() print my_QR.data 출력되는 문자열을 전부 메모장으로 옮겨서 flag값을 찾아 봣습니다. Flag : Securinets{s0_YoU_H@vE_S0mE_PyTHoN_SkIll..
-
NCSC CTF 2019 [Web]Follow me write upCTF write_up/NCSC CTF 2019. 2. 8. 21:40
문제 화면입니다. 공짜로 FLAG를 준다고 해서 눌렀더니..404오류가 뜨길래… 소스코드를 확인해 봤습니다.33번줄에 주소가 있습니다.그래서 다시 눌러봤습니다. 똑같은 404 오류가 뜨는데… URL을 보니.. URL인코딩이 안된 상태로 i#have#the?flag가 들어가 있습니다. 그래서 url 인코딩을 해서 넣어봤습니다. https://web9.ctfsecurinets.com/i%23have%23the%3fflagFlag : securinets{Us1ng_UrL_3nC0dInG}