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 | 31 |
Tags
- 모의해킹
- 암호해독
- 내부침투
- smb
- 해킹
- sql
- 해킹툴
- Metasploit
- 메타스플로잇
- web hacking
- Samba
- Hacking
- SQL Injection
- 취약점분석
- 스캐닝
- Los
- 칼리리눅스
- CTF
- Kioptrix
- SQLINJECTION
- load of sqlinjection
- 포트스캔
- 취약점 스캔
- 침투테스트
- 취약점
- 스캔
- 권한상승
- 시스템 해킹
- 해킹도구
- root권한
Archives
- Today
- Total
감자 텃밭
[pwnkr] - random 본문
해당 문제와 함께 제공되는 소스코드는 아래와 같다.
해당 내용을 보면 random 변수에 radn() 함수를 이용하여 나수를 저장하고 scanf를 사용하여 key변수에 입력을 받는
그 후 key값과 random값을 xor한 값이 0 xdeadbeef값과 같으면 플래그를 출력해준다.
해당 코드에서 취약점이라 할것은 rand함수이다 해당 함수는 난수를 생성해주지만 해당 매번 생성되는 난수의 값은 일정하다.
즉 한번 난수가 설정되면 그 값은 유지된다 만약 프로그램 실행 시 계속해서 바뀌는 진짜 난수 값을 설정하려면
rand(time(null))로 설정해주어야 한다.
이를 알아내기위해 gdb를 사용했다.
rand함수의 실행결과는 eax에 저장되므로 eax는 rbp-0x4부분에 mov 시킨다. 이를 확인하기 위해 21번 줄에 bp를 걸고
실행시켜 해당 주소값에 저장되어 있는 값을 확인했다.
위의 값과 deadbeef를 xor 하여 나온 값을 인자 값으로 주면 해당 플래그를 획득할 수 있다.
'my_study > pwn.kr' 카테고리의 다른 글
[pwnkr] - mistake (0) | 2021.09.01 |
---|---|
[pwnkr] - input문제 (0) | 2021.09.01 |
[pwnkr] - passcode (0) | 2021.09.01 |
[pwnkr] - flag (0) | 2021.09.01 |
[pwnkr] - bof 문제 (0) | 2021.09.01 |