<보안 study> 53

[TamilCTF2021] HeyImAB

HeyImAB #Android #ab file 원본WriteUp - https://github.com/goseungduk/CTF_WriteUp/tree/master/Tamil_2021/rev/HeyImAB 안드로이드 백업파일 문제이다. .ab 파일확장자는 처음 보았는데 안드로이드 백업파일이라고 한다. adbextractor 링크 위의 extractor 를 이용하여 안의 파일을 추출할 수 있다. java -jar abp.jar unpack backup.ab res.tar 해당 명령어로 추출을 하면, tar 파일 하나가 나온다. 그 파일안에 아래와 같은 경로의 파일을 살펴보다 플래그를 발견했다. apps\com.example.devpack\r\app_flutter\flutter_assets\kernel_bl..

<보안 study>/CTFs 2021.10.07

[TamilCTF2021] Guesser

Guesser #reversing #DotNet #IL Spy #z3 원본WriteUp - https://github.com/goseungduk/CTF_WriteUp/tree/master/Tamil_2021/rev/Guesser 처음에 바이너리를 IDA로 열어보니 .Net 바이너리로 인식하길래 바로 IL Spy 툴로 열어보았다. 소스가 매우 정직하게 잘 나오는 것을 확인할 수 있다. Main 함수를 보면 처음에 Login 을 진행하는 것을 알 수 있는데, check 로직은 생각보다 매우 간단하다. 생각보다 어려운 로직이 없어서 실제로 풀때는 눈으로 그냥 보고 풀었지만, 소스 첨부도 해본다. from z3 import * s=Solver() username=[BitVec(&#39;user_%i&#39;%i..

<보안 study>/CTFs 2021.10.07

[TamilCTF2021] digital_play

digital_play #논리회로 #digital 원본WriteUp - https://github.com/goseungduk/CTF_WriteUp/tree/master/Tamil_2021/rev/digital_play misc 에 가까운 문제가 아닐런지...? 어렵지 않아서 장황한 설명은 하지 않는다. 우선 주어진 .dig 파일은 아래의 프로그램에서 열린다. Digital - 논리회로 설계 프로그램 digital.dig 파일을 Digital 프로그램에서 로드하면 위와 같이 나온다. // enc.txt 00110110111111100000011000101 100001000000100000011000010101 001001111110101001110011001011 11111000001010100001101..

<보안 study>/CTFs 2021.10.07

[TamilCTF2021] Fool Me

foolme #z3 #reversing 원본WriteUp - https://github.com/goseungduk/CTF_WriteUp/tree/master/Tamil_2021/rev/foolme 우선 main 함수가 디컴파일 된 모습은 이러한데... sub_5611AE2071A5 함수가 exit(0) 로 통하는 함수이다 보니 분명 다른 로직이 있다고 판단하였고... 어셈블리로 보면, 해당 함수 호출 이후에 추가 로직이 존재했다. 이 부분은 풀면서 적당히 우회 했다. 그리고 이후 로직은 s 변수에 문자열 입력하고, 해당 문자열에 대해서 first, second, final 함수를 통과해야된다. 1. first 함수 first 함수는 처음에 s 값을 받아서 26바이트 문자열을 갖고있는지 확인한다. 그리고 ..

<보안 study>/CTFs 2021.10.07

WASM(Web Assembly) 정리

#WASM #Web Assembly #웹어셈블리 웹 브라우저에서 js 가 아닌 코드가 컴파일 되어 실행되는 컨셉이다. wasm 은 브라우저에서 text format 으로 나타내어 보여준다. 개인 공부용으로 해당 text format 의 명령어나 문법을 간략히 정리해본다. (module ... )(module ... ) 안에는 해당 웹어셈 프로그램에 쓰인 요소들이 들어간다. 안에 들어가는 요소는 func, global, memory, table, 등등이 있다. (;0;) (;1;) 그리고 위와 같이 각 요소들은 순서에 따라 서수(ordinal)를 갖게된다. (0번 요소, 1번 요소 , ...) (func $함수변수이름 (;0;) (export "사용할 함수이름") (param $인자로 쓰이는변수 i32) ..

<보안 study>/웹 2021.08.31

CSP(Content-Security-Policy) 정리

#CSP #Content-Security-Policy #Web 공격자가 xss 로 웹에 허용되지 않은 script 를 삽입하거나 외부페이지에 혹은 외부페이지로 부터 HTTP 요청 을 보내는 것을 막을 수 있도록 Response Header 에 마련된 정책이다. CSP 는 웹 서버에서 Content-Security-Policy 헤더를 리턴하도록 해야 사용가능하다. (PHP, Python 등에서) 혹은 정적인 html 페이지에서 태그를 활용할 수도 있다. 아래는 예제 코드 1. 실행가능한 소스, 함수 등을 제한하여 외부의 XSS 방지 2. 외부 -> 웹페이지로 로드 되는 URL, Protocol 등을 제한하여 패킷 스니핑 공격 방지 실제 사용사례 위 html 태그에서 보이듯이 content 값에 따라 무언가..

<보안 study>/웹 2021.08.23

DreamHack CTF 문제에서 배우는 NOSQL Injection

당직근무 마치고 근무취침 잠깐 취하고 나니까 드림핵 ctf 가 시작되어있었다. 대회가 1시간여밖에 안남아서 부랴부랴 한 문제 풀었는데, 나에겐 조금 낯선 NOSQL 에 대해 공부할 수 있었다. 이번 글은 DreamHack CTF 의 Web 분야문제 중, Mango 문제도 살펴보는 겸 Not Only SQL Injection 에 대해 공부하는 글이다. - NOSQL 이란? Not Only SQL 이란 뜻으로 단순히 mysql,OracleDB 같은 RDBMS 에서의 SQL 뿐만아니라 다른 형태,형식 등으로 데이터를 조직할 수 있는 DB 언어이다. RDBMS 가 주로 XML, 스프레드시트같은 테이블 구조의 정형화 된 데이터를 담는다면, NOSQL 은 바이너리파일(미디어파일, 프로그램 등등)이나 텍스트파일 같은..

<보안 study>/웹 2020.09.30

[IDA] Hex-Rays Code Skip 현상

#IDA #Hex-Rays IDA 디컴파일러를 쓰면 종종 발견할 수 있는 디컴파일을 안해주고 코드 스킵을 하는 현상에 대해서 알아보기로 하자. 크게 중요한 부분은 아닌데, 그냥 궁금증에 찾아본다. IDA Pro - Hex-Rays skips code 이 질문글에 달린 답변들을 종합해보면, IDA 6.8 ~ 7.2 까지는 디스어셈블리에서 문제가 있는 부분은 디컴파일 하지않고 스킵 한다고 한다. 예를 들면, 질문글에서 해당 오류는 stack pointer 관련 오류로 IDA Error : positive_sp_value_has_been_found 해당 docs 에서 조치방법도 확인할 수 있다. 그리고 위 링크를 통해서 여타 다른 에러도 볼 수 있으니 참고하자.

[RSA 이해를 위한 몸부림 - 3] RSA 암호화 간단히 이해

RSA 암호화 RSA는 공개키 암호화 방식중 하나이다. 우선, 암호화 하는데에 KEY가 필요하겠다. 키는 총 두 가지의 KEY가 관여하는데 하나는 공개키, 하나는 개인키(비밀키)이다. 먼저 이 KEY들이 어떻게 만들어지는지 보자. 1. KEY 우선 공개키. 임의의 서로소인 수 p, q를 정하자. 그리고 n = p * q Φ(n) = (p-1) * (q-1)이라 하자. (Φ는 "파이" 라고 읽으면 된다) 그리고 1 < e < Φ(n) 이면서 Φ(n)과 서로소인 e를 정한다. 여기까지 잘했다면 공개키는 두 수 n과 e의 조합인 로 정할 수 있다. 다음은 개인키. 여기서 이전에 설명했던 모듈러 연산 및 역원이 쓰이는데 공개키 e와 곱해져서서 Φ(n)으로 나눴을 때 나머지가 1이 되는 d가 개인키에 이용된다. ..

반응형