Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 포트스캔
- 취약점분석
- 메타스플로잇
- 스캐닝
- load of sqlinjection
- Hacking
- 해킹
- 칼리리눅스
- Metasploit
- Samba
- CTF
- SQL Injection
- 스캔
- 취약점
- smb
- root권한
- 해킹툴
- 권한상승
- 시스템 해킹
- web hacking
- Kioptrix
- 해킹도구
- 모의해킹
- 침투테스트
- sql
- SQLINJECTION
- Los
- 취약점 스캔
- 암호해독
- 내부침투
Archives
- Today
- Total
감자 텃밭
wolfman 본문
해당 계정으로 접속 후 동일하게 실행 프로그램과 c언어 소스 코드 파일이 있다 c언어 소스코드를 확인해보자.
해당 코드 내용으로는 이전과 같이 하나 이상의 인자를 받아야하며, 환경변수는 사용불가, 버퍼 48번째 자릿수에는 \xbf가 있어야고, 버퍼 헌터가 있어 버퍼의 값이 초기화된다. 여기서 새롭게 추가된 것은 첫 번째 인자 값의 크기가 48 이상이면 프로그램이 종료가 된다,... 훔
그럼 이문제에서는 argv [2]즉 두 번째 인자 값을 쓰면 될 거 같다.
추측한 payload로는 buf [40]+rsp [4]+esp [4 [argv2 주소]] payload2= argv [2] 주소에 nop sled+쉘 코드를 삽입하면 될 거 같다.
작업을 위해 tmp로이 동해 보자
일단 argv [2]의 주소를 얻기 위해 인자 값을 입력 후 core dump로 확인할 것이다 (gdb로 까서 실행시켜 확인하는 거보다 편하다....)
첫 번째 argv [1]의 값으로 41 [A]를 넣고 RET주소에 bffffff를 넣었고 argv [2]에 \x90을 넣었으니
해당 argv [2] 주소를 알아낼 수 있었다. argv [2]의 주소는 0 xbffffbfc이다. 그럼 이제 payload를 작성해서 실험해보자
성공적으로 쉘을 획득하고 패스워드를 획득할 수 있었다.