



계정은 밑에 3가지가 있고,
-> id : pw
guest : guest
user : user1234
admin : FLAG (관리자 계정의 암호)
1. username과 password 값을 입력받아, 패스워드를 pw에 저장함
2. 값이 일치하면 index 페이지로 응답을 함
* urandom = 무작위 *
3. os.urandom(4).hex 함수를 이용하여 4바이트의 무작위 값을 hex로 형변환한 값을 session_id에 저장함
4. session_id는 로그인에 성공한 username이 됨
5. sessionid의 쿠키로 응답을 함
여기서부터 답에 대한 힌트를 얻을 수 있는데,
if문 안의
session_storage[os.urandom(1).hex()]='admin' -> id를 정의하고 있음
admin의 id는 1바이트의 무작위 값을 hex로 설정했기 때문에 256가지를 이용하여 답을 찾을 수 있음
=> 즉, burp suite를 이용하여 무작위 대입 공격을 시도해야 함




1Byte의 Hex 값을 구하기 위해선 'abcde0123456789' 이 문자를 조합하여 공격을 수행해야 함

공격을 하던 중에 Length가 다른 패킷이 나오는데, 이것을 클릭해보면 플래그를 찾을 수 있음
답: DH{73b3a0ebf47fd6f68ce623853c1d4f138ad91712}
'인터루드' 카테고리의 다른 글
| funjs (0) | 2022.11.19 |
|---|---|
| blind sql injection advanced (0) | 2022.11.19 |
| proxy-1 (0) | 2022.11.13 |
| simple-ssti (0) | 2022.11.10 |
| php-1 (0) | 2022.11.08 |