Page cover

๐Ÿ˜ดRacecar

Race condition

Source

file-download
17KB

Analysis

main()

run()

triangle-exclamation

race()

get_flag()

Tแป•ng quan: Chฦฐฦกng trรฌnh yรชu cแบงu nhแบญp dแปฏ liแป‡u vร o(*racers[]) vร  lฦฐu nรณ lแบกi. Sau ฤ‘รณ tแบกo 1 thread con vร  gแปi vร o hร m random race() sau ฤ‘รณ in ra mร n hรฌnh: Our winner: ...

Exploit

แปž phแบงn nร y, ta ฤ‘ฦฐแปฃc nhแบญp tแป‘i ฤ‘a 256 bytes.

Sau ฤ‘รณ set break point tแบกi pthread_join ฤ‘แปƒ hร m race ฤ‘ฦฐแปฃc thแปฑc thi.

Sau khi pthread_join thรฌ stack bรขy giแป sแบฝ chแปฉa phแบงn payload mร  mรฌnh vแปซa nhแบญp vร o.

Bรขy giแป ฤ‘แปƒ overflow ฤ‘ฦฐแปฃc phแบงn RIP thรฌ phแบฃi ghi ฤ‘รจ ฤ‘แบฟn __libc_start_call_main(nhฦฐ แบฃnh trรชn).

Last updated