일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
- web
- GetProcAddress()
- samsung ctf
- oh-my-zsh
- sctf 2021
- stack based buffer overflow
- docker
- powerlevel10k
- DOS Stub
- Windows Terminal
- zsh theme customization
- PE Header
- PE file format
- Tutorial
- Windows 11
- ubuntu
- SQL Injection
- 리버싱 핵심원리
- IMAGE_IMPORT_DESCRIPTOR
- NT Optional Header
- RVA
- BOF
- DOS Header
- NT Header
- NT File Header
- Windows
- Buffer Overflow
- attack vector
- WSL
- IMAGE_EXPORT_DIRECTORY
- Today
- Total
목록Security/CTF Write-Up (4)
나만의 메모노트
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Xm38o/btrdqiaVFgN/isRuPkVWvA0kNCj2m8tRC0/img.png)
이번 문제는 ShellCode를 획득하는 문제다. 1. Check Stack Frame #include #include char name[16]; void bofme() { char payload[16]; puts("What's your name?"); printf("Name > "); fflush(stdout); scanf("%16s", name); printf("Hello, %s.\n", name); puts("Do you wanna build a snowman?"); printf(" > "); fflush(stdout); scanf("%s", payload); printf("!!!%s!!!\n", payload); puts("Good."); } int main() { system("echo 'Wel..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/k2FuY/btrdrlEX0vN/Aq3jRPmO4bzIbrw14kPDsk/img.png)
BOF(Buffer Overflow) 프로그램이 데이터를 Buffer에 쓰는 동안 Buffer의 경계값을 초과하고 인접한 메모리 위치를 덮어 쓰는 이상 현상 Stack based Buffer Overflow (high → low) Heap based Buffer Overflow (low → high) 지역 변수(local variable)값 변조 가능 Return Address 변조 가능 Shell Code 삽입 및 실행 가능 #include //#include //#include #include #include void printflag(){ char buf[32]; FILE* fp = fopen("/flag", "r"); fread(buf, 1, 32, fp); fclose(fp); printf("%..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JNtAJ/btrcOfeUrt6/5P3dyc3X4QmzQ9S3I7FFt1/img.png)
Practicd: hidden 테이블을 찾고 column 이름들을 획득해라. 문제를 풀기에 앞서서 우선 검색바 상단 우측에 있는 [HINT]를 눌러 해당 페이지의 전반적인 소스 코드를 살펴보았다. 그 결과, 문제에서 요구하는 것과 매우 밀접한 관련이 있어 보이는 코드가 보였고, 그 코드를 살펴보니, books 테이블로부터 도서 정보를 검색하는 코드인 것을 알 수 있었다. 최종적으로 column 이름을 획득해보라는 것은 column에 flag가 숨겨져 있을 가능성이 높아 보이고, 해당 column을 찾기 위해 hidden 테이블을 찾아야 하며, 이 테이블은 books 테이블에 있을 것이라 추측된다. 하지만, 현재 books 테이블에 대한 정확한 정보가 없으므로 union 연산자를 이용하여 열의 개수를 파악..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cAv0Yw/btrc2oUSrpK/hOsRqdA0ESUiwohRYB4LWk/img.png)
SQL Injection이란? SQL (Structured Query Language) 삽입 공격은 데이터 기반 어플리케이션을 공격하는 데 사용되는 코드 주입 기술로 악성 SQL문이 입력 필드에 삽입되어 실행된다. (예: 데이터베이스 콘텐츠를 공격자에게 덤프) 사용자 입력이 포함된 SQL 구문의 특수 문자들이 제대로 필터링 되지 않았거나 사용자 입력이 제대로 구성되지 않고 의도된 것과 다르게 실행되는 경우 등의 보안 취약점이존재할 때 이를 이용한 SQL 삽입 공격이 발생한다. 'admin'으로 로그인 시도 일반적으로 SQL Injection을 이용하여 관리자 로그인을 하는 방법은 다음과 같다. http://sqli101.sstf.site/step1.php?id%3Dadmin%27%20or%20%271%2..