분류 전체보기(82)
-
[어설픈] webhacking.kr old-56번 문제풀이
새롭게 바뀐 webhacking.kr old 56번 문제를 풀어보도록 하겠습니다. 문제에 접속을 하니 아래와 같이 나옵니다. 게시판이 있고, 작성자 id와 내용 그리고 번호가 보이네요. 딱봐도 admin의 readme가 어그로를 계속 끌어서 한번 눌러보면 아래와 같이 access denied(접근 제한)이 뜹니다 read라는 parameter에 admin이라는 값을 입력하네요 그러면 guest의 hi~를 클릭해보면 어떻게 될까요 눌러봤더니 아래와 같이 뜨네요.. hello~ 그래서 처음에는 read라는 parameter에 SQL INJECTION 하는 문제인가? 라고 생각을 해서 read에 /?read= ' or 1 h,e,l,o,~중에 하나만 검색창에 쳐도 hello~ 검색한 것 처럼 똑같이 나옵니다!..
2020.01.06 -
[디버거] PEDA, PWNDBG,gef 설정방법! (feat. gdbinit)
안녕하세요, 오랜만에 포스팅 하네요! 비오비에서 공부하느라 블로그에 소홀했네요.. 될때마다 틈틈히 올리도록 하겠습니다. 각설하고 오늘 포스팅 할 내용은, pwnable 할 때 쓰는 다양한 디버거를 어떻게 동시에 쓰냐! 에 관한 것입니다 저희가 CTF나 문제 풀때 gdb-peda, pwndbg, gef등 다양하게 디버깅 툴이 존재하고, 각각의 장점이 모두 있죠? 근데 사이트 찾아보면 다 이렇게 나오더라구요 너무 막 어렵게 나와서..... 저는 간단하게 알려드리겠습니다! -------------------------------------------------------------------------------------------------------------------------------- 준비물은 ..
2019.09.18 -
[LOS] Gremlin writeup
안녕하세요!오늘은 Lord of sqlinjection(LOS) 첫 번째 문제인gremlin을 풀어보도록 하겠습니다! 일반적으로 초반 문제들은 쉬운 문제들이나, 쉬운 문제들의 write-up을 보는 사람들의 실력을 고려하였을 때 그들의 수준에서최대한 이해 가기 쉽도록상세하게 설명하도록 하겠습니다! 문제를 들어가 보시면 위에 query라고적혀있습니다!이 query를 조작해서 저희가 문제를 푸는 겁니다! 근데 쿼리를 이해 못하시는 분들이 계실까봐제가 mysql에서이 문제와 똑같은 prob_gremlin이라는 table을 만들었습니다(환경을 비슷하게 구축했습니다) 현재 두 명이 가입해 있습니다!admin과 guest! 그리고이해를 돕기 위해서!쿼리를 살짝 바꿨습니다 select (id) from (prob_g..
2019.05.06 -
pwnable.kr [random] writeup
안녕하세요!오늘은 pwnable.kr random문제를풀어보도록 하겠습니다! 소스코드는 아래와 같습니다! 문제 제목에서부터 random이라고 명시해놨으니,random 한 것과 관련이 있는 문제겠죠? 우선 코드를 쭉 보고 어디가 취약한지 분석해보도록 하겠습니다! 맨 위에 random이라는 변수가 선언이 되었구요,random이라는 변수에 rand( )함수를 이용해서 값을 넣습니다!(랜덤한 값이겠죠..?) 그 다음에 key 변수를 선언하고 0으로 초기화 합니다!그다음에 이 key 값에scanf함수를 통해서 사용자에게 입력을 받아서key값에 기록합니다! 그리고 이 key에 적힌 값과 random에 적힌 값을 ^연산해서 (xor 연산)0xdeadbeef가 나오면문제가 풀리게됩니다! xor연산 : 두 값이 같으면 ..
2019.05.03 -
pwnable.kr [collision] writeup
안녕하세요!오늘은 pwnable.krcollision 문제를 풀어보도록 하겠습니다! 소스코드는 아래와 같습니다! 제일 위에hashcode라는 변수에 0x21DD09EC라는 값이 담겨있네요! 그리고 check_password라는 함수가 있습니다!인자로는 char형의 포인터가 들어갑니다!근데 이후에 바로 이 포인터가 형 변환이 일어납니다! char 형의 포인터에서 int형의 포인터로 말이죠!char* p -> int * p(이 바뀌는 부분이 끼칠 영향은 아래에서 더욱 자세하게 설명드릴게요) 왜냐하면 (int*)p라고 되어있잖아요!그리고 이 변환된 pointer는 ip의 포인터에 담기게 됩니다! 그리고 i라는 변수가 선언되고res라는 변수도 0으로 선언과 동시에 초기화가 됩니다 그리고 5번 for문을 돕니다!..
2019.05.02 -
pwnable.kr [bof] writeup
안녕하세요!오늘은 pwnable.krbof 문제를 풀어보도록 하겠습니다! 문제에 있는소스코드는 아래와 같습니다! 맨 위에 func이라는 함수가 보이네요!func의 인자로 key라는 인자가 들어갑니다! 그리고 overflowme[32]라는 건방진?! 버퍼가 있구요gets함수로(취약한 함수)overflowme 버퍼에 값을 씁니다! 주석에도 smash me라고 나와있듯,gets 함수가 얼만큼 받을지길이 제한이 안되기 때문에, 저희가 원하는 만큼 덮어 쓸 수 있습니다! 그리고 if 문으로key 값이 cafebabe가 되었는지확인을 합니다! cafebebe인 경우 shell이 획득되며, cafebabe를 제외한 모든 값들은모두 nah...(아니야..)를출력하게 됩니다 main함수를 보니fun함수에 0xdeadbe..
2019.05.01