Heap 1
Use after free
Last updated
Use after free
Last updated
TáēĄi hà m option4():
Äáē§u tiÃĒn nÃŗ sáēŊ mov giÃĄ tráģ cáģ§a Äáģa cháģ 0x6020f0
và o thanh ghi rax
. Và là m cÃĄc bÆ°áģc tiáēŋp theo nhÆ° trÃĒn áēŖnh tôi ÄÃŖ ÄÃĄnh cÃĄc sáģ tÆ°ÆĄng áģŠng.
TáģŠc là Äáģ tháģa mÃŖn Äiáģu kiáģn trÃĒn thÃŦ Äáģa cháģ cáģ§a 0x6020F8
pháēŖi cháģŠa giÃĄ tráģ 0xABCDEF
.
Do chÆ°ÆĄng trÃŦnh báģ stripped nÃĒn tôi sáēŊ không dÚng gdb Äáģ phÃĸn tÃch tráģąc tiáēŋp mà tôi sáēŊ thông qua pwntools.
Script Äáē§u tiÃĒn:
ÄÃĸy là cÃĄc chunk sau khi tôi gáģi hà m option1 3 láē§n
Sau khi báēĄn malloc Äáģ§ nhiáģu thÃŦ Äáģa cháģ mà ta cáē§n so sÃĄnh sáēŊ náēąm trong cÃĄc chunk. NhÆ° áēŖnh bÃĒn dÆ°áģi thÃŦ láē§n cáēĨp phÃĄt tháģŠ 3 ÄÃŖ Äè lÃĒn Äáģa cháģ ÄÃŗ.
BÃĸy giáģ tôi sáēŊ free chunk ÄÃŗ. Sau ÄÃŗ thÃŦ cáēĨp phÃĄt láēĄi váģi kÃch thÆ°áģc tÆ°ÆĄng táģą Äáģ nÃŗ sáģ dáģĨng Äáģa cháģ chunk váģĢa ÄÆ°áģŖc free.
Sau khi chunk ÄÆ°áģŖc cáēĨp phÃĄt láēĄi thÃŦ Äáģa cháģ 0x6020f0 cháģŠa Äáģa cháģ cáģ§a chunk tháģŠ 2 cháģŠ không pháēŖi chunk Äáē§u tiÃĒn nhÆ° áēŖnh trÃĒn náģ¯a. Và cÃĄc chunk cÅŠng Äáģi cháģ cho nhau luôn.
NhÃŦn và o ÄoáēĄn code assembly áģ option4 Äáģ hiáģu vÃŦ sao tôi láēĄi so sÃĄnh giÃĄ tráģ 0x019490b8
thay vÃŦ Äáģa cháģ 0x6020f8
.
Viáģc cuáģi cÚng tôi cáē§n là m ÄÃŗ là gáģi option4
Khi gáģi láēĄi hà m option1 3 láē§n thÃŦ ta sáēŊ cÃŗ nháģ¯ng chunk váģi cÃĄc Äáģa cháģ sau ÄÃĸy:
NhÃŦn báēąng sÆĄ Äáģ thÃŦ báēĄn cÃŗ tháģ tháēĨy nhÆ° sau:
Sau khi free 2 chunk cuáģi cÚng báēąng option 2:
VÃ sau khi cáēĨp phÃĄt láēĄi báēąng 2 láģnh sau
ThÃŦ pháē§n dáģ¯ liáģu ÄÃŖ hoà n toà n báģ ÄáēŖo ngÆ°áģŖc
CÃŗ tháģ tháēĨy ÄÃĸy là láģi useAfterfree (UAF)