전체 글(244)
-
[Writeup]/[Lord Of SQLInjection] Goblin
→ 문제 접속하면 뜨는 창→ 코드를 해석해보면 id는 이미 guest로 고정 되어있고, no는 get방식으로 입력받는 것을 볼 수 있다.⇒ 그런데 코드 후반부에 id를 보면 admin으로 받아야 goblin 해결 문구를 볼 수 있다는 것을 파악할 수 있다.⇒ 따라서 id를 admin으로 변경해주는 쿼리문을 작성한다면 취약점을 뚫을 수 있다,먼저 no = 1로 설정하고 접속을 하면→ admin으로 접속된 게 아니라서 guest 관련 창이 뜨는 것을 볼 수 있다.→ no = 1에는 guest 권한이 할당 된 것을 확인할 수 있다.[도메인 값]no=3 or no=2→ no=3은 false라서 저절로 무시되고,→ no=2는 true라서 무조건 성립하는 것을 볼 수 있으며,→ 클리어 창이 띄워지는 것을 볼 수 있다.
2025.03.05 -
[Writeup]/[Lord Of SQLInjection] cobolt
→ 해당 브라우저로 접속하면 바로 이런 코드가 나온다.→ gremlin 문제와 매우 유사하나 md5로 암호화된 채 쿼리가 전송된다는 점에서 차이를 지닌다.if($result['id'] == 'admin') solve("cobolt");해당 코드를 보면 id는 admin이어야하고, pw=md5('{$_GET[pw]}')의 암호화 자체가 무시되어야하므로[도메인 값]?id=admin' or '1'='1이렇게 평문을 작성해서 브라우저 접속하면 인코딩 되어 페이로드에 접속할 수 있고→ 클리어한 화면을 볼 수 있다.
2025.03.05 -
[Writeup]/[Lord Of SQLInjection] gremlin
문제 화면을 열면 바로 이런 코드가 냅다 주어진다.해당 코드를 해석해보면$query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'";id와 pw가 코드 내에서 필터링 되고 있긴 하나 if 문 앞쪽의 정규식 /prob|_|\.|\(\)/i만을 막고 있다.‘, OR, AND, — 등은 막지 않는 형식인 것을 확인 할 수 있다.if(preg_match('/prob|_|\\.|\\(\\)/i', $_GET[id])) exit("No Hack ~_~");if(preg_match('/prob|_|\\.|\\(\\)/i', $_GET[pw])) exit("No Hack ~_~");prob, _, ., () 를 포함한 문자열은 필터..
2025.03.05 -
[Writeup]/[Dreamhack] Inject ME!!!
스터디에서 진행한 리버싱 문제 Writeup 입니다. 문제 링크https://dreamhack.io/wargame/challenges/119 Inject ME!!!드림이가 수상한 DLL 파일을 획득하였습니다. DLL 파일과 함께 있던 TXT 파일에는 조건을 맞춰서 DLL을 로드시키면 플래그를 얻을 수 있다고만 쓰여 있었습니다. 어떻게 해야 DLL 파일을 로드할 수dreamhack.io 해설→ 주어진 prob_rev.dll 파일을 IDA 로 열어보고, dllmain으로 진입한다.→ dllmain 함수에서 fdwReason값이 1(DLL_PROCESS_ATTACH)일 때 sub_1800011A0 함수를 호출하는 것을 확인할 수 있음→ 아래는 sub_1800011A0 함수 내부로 진입한 화면이다.→ sub_1..
2025.03.05 -
[WriteUp]/[CodeEngn/Dreamhack] MobileApp L01
스터디에 업로드했던 Write Up이다.문제 링크https://dreamhack.io/wargame/challenges/376해당 파일을 다운로드 해보면 .apk형식으로 되어있는데 .zip으로 파일 확장자명을 변경하면 다음과 같은 파일 조합을 발견할 수 있다.APK 파일의 구성AndroidManifest.xml: 앱의 메타데이터.classes.dex: 실행 코드.res/, assets/: 리소스 파일.META-INF/: 서명 정보.resources.arsc: 리소스 테이블.→ 해당 파일의 압축 파일을 풀면 기존 apk 파일의 구성 중 파일 명이 다른 것을 발견할 수 있다(정상 파일의 classes.dex → 해당 파일의 class.dex)→ 해당 파일을 안드로이드 스튜디오에서 애뮬레이터로 열려고 cmd ..
2025.03.05 -
[강의 퀴즈 해설] CS50 2019 Chapter 6. 자료구조 Quiz
Q1. int 자료형 2개로 이뤄진 배열 list를 int 자료형 5개를 담을 수 있는 배열로 확장하고 싶습니다. 이를 위해 임시 포인터 *tmp를 선언하는 올바른 realloc() 코드는 무엇인가요?A1. int *tmp = realloc(list, 5 * sizeof(int)); Q2. 같은 크기를 가지는 배열과 리스트가 있습니다. 첫번째 값이 아닌 위치의 값에 접근하려고 할 때 소요되는 시간에 대한 설명으로 옳은 것은 무엇인가요?A2. 배열이 리스트보다 빠르다. Q3. node라는 구조체 안에 number 멤버가 정의되어 있습니다. node *n; 변수가 선언되어 있을 때, (*n).number 와 동일한 의미의 코드는 다음 중 무엇인가요? A3. n->number Q4. 연결 리스트에서 값을 검색..
2025.03.03