[Pwnable] offset

Wargame/HackCTF 2021. 10. 1. 01:08

1. offset file download 실행 시켜보면 permession denied가 뜬다. 2. nc 접속 호출하고 싶은 입력하래서 printf 입력했더니 그냥 종료된다. 일단 gdb로 분석해보자 3. 보호기법 확인 checksec으로 걸려있는 보호기법부터 확인 4. IDA로 execute flow 분석 pseudo 코드 main() 호출할 함수 이름을 gets()로 받아와서 select_func()에 인자로 주며 호출한다. select_func() int (*v3)(void); ->int형 함수 포인터 함수 포인터 참고 글 v3 = two; -> two 함수를 가리키는 함수 포인터 변수 v3 💡 strncpy()로 selection_func 호출 시 받은 인자 src를 30byte char 배열..

Article Thumbnail
OverTheWire : Bandit Level 1 ➡ Level 2

Wargame/Bandit 2021. 7. 14. 01:05

레벨 2로 가기 위한 단계! 이전 문제에서 알아낸 password로 bandit1 계정으로 로그인 한다. (1) 파일 찾기 ls -l 명령어로 보면 bandit1 계정에 읽기 권한이 있는 - 파일이 하나 있음을 알 수 있다. (2) 파일 읽기 cat으로 바로 읽어보려 하였으나 아무것도 뜨지 않는다. ※ cat - 에서 -는 linux에서 주로 명령어 옵션을 지정하는 용도의 예약어 이므로 linux 입장에서는 왜 옵션 지정하다 말았니? 가 되는 것이다... (3) 홈디렉터리 경로 이용하기 경로를 - 앞에 붙여 linux에서 파일 이름으로 인식할 수 있도록 한다. >> cat ./- 즉, 명령어 옵션이 아닌 현재 디렉토리에 있는 - 파일을 의미하게 하는 것이다. password가 깔끔하게 나왔다. Level..

Article Thumbnail
OverTheWire : Bandit Level 0 ➡ Level 1

Wargame/Bandit 2021. 7. 14. 00:40

OTW 사이트의 Bandit 0번->1번 문제 https://overthewire.org 사이트로 접속한 후 bandit을 클릭하면 레벨별로 문제들이 나열되어 있다. 가장 첫번째 문제부터 풀어보자. (1) putty 접속 대충 내용을 읽어보면 홈 디렉토리에 있는 readme 파일을 읽어봐야 할 것 같다. 사이트 왼쪽 상단에 적힌 SSH 정보를 토대로 host 주소와 port를 가지고 putty로 접속해보자. level0에 써진 username과 password를 입력하여 접속 성공 (2) readme 파일 ls -l 명령어 실행하면 readme 파일과 접근 권한 아래와 같이 설정되어 있는 것을 확인할 수 있다. 현재 접속한 계정은 bandit0이므로 readme 파일에 대한 읽기 권한이 설정된 상태라는 ..

Article Thumbnail
Pwnable 1번 [fd]

Wargame/pwnable.kr 2021. 5. 10. 10:33

http://pwnable.kr/play.php < 이 곳으로 접속해서 진행할 수 있다. http://pwnable.kr/play.php pwnable.kr 문제 1번 - [fd] 엄마! Linux에 있는 file descriptor가 무엇인가요?! (나도 모른다 아들아....) Linux의 파일 디스크립터 관련한 문제인 것 같다. 내 OS는 친근한 windows 이므로 문제를 풀기 위해서는 가상머신으로 Linux를 돌려 터미널로 들어가거나 putty를 이용하면 되는데 후자를 택하도록 한다. 오랜만에 하는 Putty ^_^ 1) putty 접속 문제 하단에 있는 설정대로 접속하도록 한다. ssh fd@pwnable.kr -p2222 (pw:guest) 2) pw 입력 guest 를 입력하면 정상적으로 로..

Article Thumbnail
LOS 문제 1번 [GREMLIN] 풀이

Wargame/LOS(Lord of SQL) 2019. 10. 29. 16:20

SQL Injection Web Hacking GAME 문제 1 Gremlin 정규표현식을 배우기 전에는 멋모르고 query문에 주구장창 prob_gremlin만 입력한 덕분에 매번 위의 저 No Hack ~_~ 문구와 마주했었다. Injection은 공격자가 악의적으로 주입한 데이터를 웹 애플리케이션에서 DB의 정상적인 쿼리문 일부로 인식을 하고 실행하게 되는 것을 말하며, SQL 인젝션은 DB 언어인 SQL문을 사용한다. 위의 문제에서 주목해야 할 점은 아래에서 3번째 줄 코드인 if ( $result ['id'] ) solve ("gremlin"); 이다. 쿼리문이 실행되었을 때 id의 값이 존재하기만 하면 문제가 풀린다는 것을 알 수 있다. id의 값을 무조건 참이 되도록 쿼리묵을 작성해보자 .p..

Article Thumbnail
1216 컨설팅 회사

Wargame/CodeUp 2019. 9. 1. 01:05

문제 대영이는 SNS를 이용한 컨설팅 회사를 운영하고 있다. 이 회사에서 획기적인 기획안을 개발하여 사람들에게 홍보를 하려고 한다. 홍보를 할 경우 수입과 그렇지 않을 경우의 수입을 알고 있을 경우, 홍보를 하는 경우가 유리한가? 홍보를 하지 않은 경우가 유리한가? 그것도 아니면 홍보를 하든 안하든 별 관계가 없는가? 이것을 알아내는 프로그램을 만드시오. 입력 입력으로 세 정수가 입력된다. 첫번째 정수는 홍보를 하지 않을 경우 수입, 두번째 정수는 홍보를 할 경우의 수입, 세번째 정수는 홍보비용을 의미한다. 출력 홍보를 하는 경우가 유리하면 "advertise" 그렇지 않은 경우가 유리하면 "do not advertise" 그것도 아니면 홍보를 하든 안 하든 별 관계가 없으면 "does not matte..

Article Thumbnail
1356 사각형 출력하기 2

Wargame/CodeUp 2019. 8. 17. 19:53

코드 ※ 번외로, n의 값이 위의 문제처럼 입력 받는 것이 아니라 값이 지정된 수의 경우 Switch 문을 이용해서도 작성할 수 있다. ( 절대 필자가 문제를 잘못 읽고 저렇게 코드를 짜서 틀린게 아까워 쓰는 것이 아니다 ) 예를 들어, 값이 5로 주어졌을 경우 다음과 같이 코드를 만들 수 있다.

Article Thumbnail
1288 nCr (Tiny)

Wargame/CodeUp 2019. 8. 17. 19:02

코드 팩토리얼 연산이 반복되므로 팩토리얼을 구하는 함수를 만들어 필요할 때마다 호출하도록 한다. main에서는 함수에서 연산된 각각의 팩토리얼 값들로 남은 곱과 나누기 연산만 하면 되므로 코드가 비교적 간결해진다.

Article Thumbnail
1409 기억력 테스트 1

Wargame/CodeUp 2019. 8. 17. 17:33

문제 주현이는 5살이라서 아직 기억력이 좋지 않은 편이다. 주현이 엄마는 주현이의 기억력을 향상시키기 위해 매일 훈련을 시킨다. 어느 날, 주현이 엄마는 주현이에게 10개의 숫자를 차례대로 말한 다음 "k번째 숫자는 뭘까요?"하고 물어본다. 이번에는 주현이가 좋아하는 '또봇'이라는 로봇변신 자동차가 상품으로 걸려있다. 주현이가 '또봇'을 가질 수 있도록 프로그래밍하시오. 입력 첫째 줄에 숫자 10개가 차례대로 입력된다. 둘째 줄에 k값이 입력된다. 출력 k번째 숫자가 무엇이었는지 출력한다. 입력 예시 10 9 8 7 6 5 4 3 2 1 3 출력 예시 8 코드 : 코드업 사이트에서는 위의 코드를 오답처리했다. 알고 보니, 배열 값도 scanf 로 받는 ..

Article Thumbnail
1355 삼각형 출력하기3 (별찍기)

Wargame/CodeUp 2019. 8. 12. 01:56

문제 길이 n이 입력되면 다음과 같은 역삼각형을 출력한다. 예) n이 5이면 ***** **** *** ** * 입력 길이 n이 입력된다. 출력 역삼각형을 출력한다. 입력 예시 3 출력 예시 *** ** * 코드 for문 안에서 for-for 문으로 별찍기 코드를 작성하는 것이 어려워 C언어 배울 초기에는 for문 안에 if-else로 짰던 기억이 난다. 확실히 예전보다는 실력이 조금이나마 늘은 것 같아 기쁘다.

Article Thumbnail