SQL Injection 분석도구 SQLMap 사용법
0x00. 개요
sqlmap(automatic SQL injection and database takeover tool)은 공개 모의침투 도구로 SQL구문삽입(SQL Injection) 취약점을 탐지/진단하고 데이터베이스에 직간접적으로 접근할 수 있는 취약점 분석 도구이다.
SQL 구문삽입 공격은 DB 구조 파악이 가장 힘든 작업인데, 수작업으로 진행하기에는 매우 많은 시간이 걸린다. sqlmap은 DB 구조파악, 테이블 내용 유출 등을 자동화해주기 떄문에 웹취약점에 대한 수동분석 과정에서 상당히 많은 시간을 절약할 수 있게 도와주는 매우 훌륭한 프로그램이다.
0x01. 설치방법
Linux 시스템에서 다...
SFP(Stack Frame Pointer) Overflow
SFP Overflow란?
SFP(Stack Frame Pointer) Overflow, FPO(Frame Pointer Overwrite), 1 Byte Overflow 라고도 불리는 공격기법이다.
SFP Overflow는 단 1Byte 만을 조작하여 IP(Instruction Pointer)의 흐름을 제어할 수 있는 공격기법이다.
SFP의 마지막 한 바이트를 Shell Code가 저장되어 있는 주소로 변조한다면 함수 에필로그에 의해 흐름을 제어할 수 있다.
SFP Overflow를 이해하기 위해서는 먼저 SFP(Stack Frame Pointer)가 무엇인지 알아야 한다.
SFP는 Saved Frame...
스택프레임(Stack Frame) 이란?
스택 프레임(Stack Frame)이란 함수가 호출될 때, 그 함수만의 스택 영역을 구분하기 위하여 생성되는 공간이다. 이 공간에는 함수와 관계되는 지역 번수, 매개변수가 저장되며, 함수 호출 시 할당되며, 함수가 종료되면서 소멸한다.
이 영역을 표현하기 위해 함수 프롤로그(Prolog)와 함수 에필로그(Epilog)라는 것을 수행한다.
1) 함수 프롤로그(Prolog)
함수 프롤로그란 함수가 호출되면 그 함수의 영역을 설정하기 위해 2개의 명령어를 사용한다.
push ebp, mov ebp, esp
함수 프롤로그
ebp를 push...
[pwnable.kr]Toddler/mistake
We all make mistakes, let's move on.
(don't take this too seriously, no fancy hacking skill is required at all)
This task is based on real event
Thanks to dhmonkey
hint : operator priority
ssh mistake@pwnable.kr -p2222 (pw:guest)
#include <stdio.h>
#include <fcntl.h>
#define PW_LEN 10
#define XORKEY 1
void xor(char* s, int l...
[pwnable.kr]Toddler/leg
Daddy told me I should study arm.
But I prefer to study my leg!
Download : http://pwnable.kr/bin/leg.c
Download : http://pwnable.kr/bin/leg.asm
ssh leg@pwnable.kr -p2222 (pw:guest)
문제에서 leg.c 파일과 leg.asm 파일이 주어진다.
0x00. Analysis
#include <stdio.h>
#include <fcntl.h>
int key1(){
asm("mov r3, pc\n");
}
int key2(){
...
[pwnable.kr]Toddler/random
Daddy, teach me how to use random value in programming!
ssh random@pwnable.kr -p2222 (pw:guest)
#include <stdio.h>
int main(){
unsigned int random;
random = rand(); // random value!
unsigned int key=0;
scanf("%d", &key);
if( (key ^ random) == 0xdeadbeef ){
printf("G...
[pwnable.kr]Toddler/passcode
Mommy told me to make a passcode based login system.
My initial C code was compiled without any error!
Well, there was some compiler warning, but who cares about that?
ssh passcode@pwnable.kr -p2222 (pw:guest)
#include <stdio.h>
#include <stdlib.h>
void login(){
int passcode1;
int passcode2;
printf("ent...
[pwnable.kr]Toddler/flag
Papa brought me a packed present! let's open it.
Download : http://pwnable.kr/bin/flag
This is reversing task. all you need is binary
이번 문제는 소스코드가 없고 바이너리 하나를 던져주고 리버싱으로 풀어야 한다.
0x00. Analysis
root@ubuntu:~/pwnable/flag# checksec flag
[*] '/root/pwnable/flag/flag'
Arch: amd64-64-little
RELRO: No RELRO
Stack: No cana...
69 post articles, 9 pages.