EYEN
wavlink-wn531p3 lighttpd 본문
디핑
경민님이 제공해주신 lighttpd로 함 근데 디핑해서 대상 범위를 줄여보자!가 목표였는데 거의 다 달라져서 의미가 없다.
free, malloc 함수 빼고 다 달라
lighttpd 구하는 링크
https://download.lighttpd.net/lighttpd/releases-1.4.x/

lighttpd 1.4.65에는 취약점이 있음
CVE-2022-37797
CVE Website
www.cve.org
read
1. http_chunk_append_file_fd


appended+v16=v5 에
v8만큼 저장...
stat_cache_open_rdonly_fstat

fdevent_open_cloexec의 반환값은 파일 경로, 혹은 파일 이름으로 4바이트
오픈소스랑 diffing을 해서 이 사람들이 공식 버전에서 따로 고친 함수가 뭐가 있는지/ 취약점이 발생하는 버전인데 업데이트를 안했는지를 확인하는 게 나을 것 같음. 검증이 많이 된 함수는 안 봐도 될 것 같음.

a3= 파일 경로 혹은 파일 이름 포인터
v5=파일 디스크립터
파일이 어디서 왔냐면(down->top)




시스템 내에서 사용되는 요소들을 저장하는... 동적으로 할당된 메모리 블록..
담는 크기를 봐야하겠지만... 488바이트 짜리긴 한데 포인터를 v5에 할당
2. fdevent_socket_read_discard


3. stream_open


stream_open 안전!
4. 41f820

5. http_response_read


fdevent_ioctl_fionread: v23 크기 반환하는 거라고 함.
6.sub 4068E8

1만큼만 읽어온다고 함
7. sub_41F820


word_43B5B0: 메모리의 특정 주소, 주소는 32비트 시스템이니까 4바이트
6u: 6만큼 읽어온다.
2바이트 오버플로우가 가능할지도?
RECV



printf


올바름, v12과 v13도 char형임.
fprintf
관련 cve: CVE-2021-28846
CVE Website
www.cve.org


ida에서는 다 fprintf() memcpy() 이렇게 나와서 기드라로 보려는데 기드라가 안 열림
array_print/ data_config_pcre_compile/ log_failed_assert/configparser/sub_40AFC4


주소를 가리키는 %s


잘됨


다 괜찮아보임...
memcpy



mmap




$v0=0,$v1=0, v0->0xE0+var_C8, v0<-0xE0+var_B8, v1->0xE0+var_C4, $a3=1, $v0->0xE0+var_D0, $a2=1


- $a0=맵핑될 메모리 영역의 시작 주소, $a1=길이, $a2= 맵핑된 리젼에 대한 액세스 권한, $a3=맵핑된 리젼의 속성, $ 맵핑될 파일 시스템 오브젝트 또는 공유 메모리 오브젝트의 파일 설명자를 지정, 맵핑이 시작되는 파일 바이트 오프셋을 지정
- 액세스 권한=1: write 권한
- 속성=1: 맵 대응되는 객체를 다른 프로세스도 공유할 수 있게
- v9: fd
- offset자리에 아무것도 없음? 그럼 0인건가?
- 암튼 a0에서 시작해서 a1의 길이 만큼을 fd에 해당하는 주소로 할당해준거임.
- https://seyun99.tistory.com/entry/mmap%EC%9D%B4%EB%9E%80
mmap이란?
mmap(2) 1. mmap이란? mmap(2)는 메모리의 내용을 파일이나 디바이스에 대응(mapping)하기 위해서 사용하는 시스템 호출이다. 2. 메모리관리와 mmap 각각의 프로세스는 프로세스마다 다른 프로세스와 중복
seyun99.tistory.com

mmap은 uaf 취약점이 발생할 수 있는데
1. free를 v11=0일 때만 함.
2. munmap을 안 하면 추후에 uaf가 발생할 수 도 있는데

stream_open에 실패하면 에러메시지를, 성공하면 stream_close를 실행하고, stream_close에서 munmap을 실행한다.
'대외활동 및 팀플 > 네뷸라 콘테스트' 카테고리의 다른 글
uhttpd 디핑&원데이 (0) | 2025.01.02 |
---|---|
부팅 과정 알기 (0) | 2024.12.30 |
wavlink-wn531p3 (0) | 2024.12.06 |
netis.cgi (0) | 2024.11.23 |
BISC 세미나 정리! (0) | 2024.11.23 |