Type Confusion

System Hacking Advanced

[dreamhack] cpp_type_confusion

개념정리type confusion은 프로그램에서 사용하는 변수나 객체를 선언/초기화했을 때와 다른 타입으로 사용할 때 발생하는 취약점이다. C와 C++로 만들어진 프로그램에 Type Confusion 취약점이 존재한다면 메모리 커럽션이 유발되어 공격자가 시스템을 장악하는 것이 가능하다. 이러한 취약점은 형 변환(Type Casting)과정에서 발생한다. cast는 변수, 객체의 형태를 기존과 다른 타입의 형태로 바꾸는 것을 말한다. C++에서 객체의 형태를 변환할 때 사용되는 연산자는 다음과 같다. ○ 연산자 종류dynamic_cast런타임에 타입을 체크하여 다운캐스팅을 수행하는 연산자다. 다운캐스팅 시 안전한 형변환이 가능한 경우에만 캐스팅을 수행하며, 안전하지 않은 경우에는 NULL 포인터를 반환한다..

wargame.kr

[wargame.kr] type confusion

문제분석 & 풀이제목인 type confusion이 중요하다고 한다.  type confusion 취약점을 이용하는 문제라고 추측 할 수 있다. key == $key) { $ret = ["code" => true, "flag" => $FLAG]; } else { $ret = ["code" => false]; } die(json_encode($ret)); } function gen_key(){ $key = uniqid("welcome to wargame.kr!_", true); $key = sha1($key); return $key; }?>○ 코드 분석1) post 방식으로 json이라는 데이터를 받고 $json에 저장한다.2) sha1 해시값을..

keyme
'Type Confusion' 태그의 글 목록