๐ดRacecar
Race condition
Source

Analysis
main()

run()

Trong ฤรณ:
แป dรฒng 14 vร 47, memset sแบฝ thiแบฟt lแบญp giรก trแป cho con trแป แป vรนng nhแป stack
menu()

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 1thread convร gแปi vร o hร m randomrace()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
