๐ฅUbuntu rar - FUSec 2023
Tรดi nhแบญn ฤฦฐแปฃc vร i thรดng tin sau vแป file:


Tรดi nghฤฉ khแบฃ nฤng cao lร Buffer Overflow

Sau khi chแบกy chฦฐฦกng trรฌnh tรดi thแบฅy chฦฐฦกng trรฌnh sแบฝ zip cรกc sแป trรนng nhau vร liแปn kแป nhau lแบกi vร ฤฦฐa ra kรญch thฦฐแปc + vร i thรดng tin ฤแบฑng sau khรกc.

Analysis
main()
compress_buffer()
compress_single_byte()
hex_dump()
Chฦฐฦกng trรฌnh cรฒn 1 hร m to_byte() nแปฏa nhฦฐng sau khi ฤแปc hแบฟt chฦฐฦกng trรฌnh tรดi thแบฅy nรณ lร hร m trฦก :v
Nhรฌn vร o thแบฑng oแป ฤรขy, chแบฏc hแบณn bแบกn cลฉng nhรฌn ra lร nรณ bแป overflow rแปi :>>

ฤแป mร o += 2 thรฌ bแบกn phแบฃi hoร n thร nh viแปc thแปฑc thi hร m compress_single_byte . Overview tiแบฟp hร m compress_single_byte . Thรฌ bแบกn cรณ thแป thแบฅy hร m nร y xแปญ lรญ cรกc kรญ tแปฑ trรนng lแบทp, nรณ kแบฟt thรบc khi gแบทp kรญ tแปฑ khรกc vแปi kรญ tแปฑ liแปn trฦฐแปc vร return vแป kรญch thฦฐแปc cแปงa chuแปi lแบทp ฤรณ.
Vแบญy nแบฟu pรขy giแป tรดi nhแบญp nhฦฐ nร y "abababababab" thรฌ sao?

Rรต rร ng lร tรดi nhแบญp vร o 13 kรญ tแปฑ nhฦฐng nhแบญn tแปi 27 kรญ tแปฑ ==> phแบงn output[o] ฤรฃ xแบฃy ra overflow nแบฟu tรดi nhแบญp "ab"*120.
Exploit
Setup payload:


Phแบงn khoanh ฤแป: ฤแปa chแป cแปงa
outputPhแบงn khoanh vร ng: ฤแปa chแป cแปงa
buffer2 phแบงn khoanh xanh: ฤแปa chแป
return pointer
Tiแบฟn hร nh ghi ฤรจ:
Kแบฟt quแบฃ:

Nhรฌn trรชn kia bแบกn cรณ thแป hรฌnh dung ฤรณ giแปng nhฦฐ 1 cรขu lแปnh hex $rsp.Thรฌ cรณ thแป thแบฅy phแบงn output cแปงa tรดi ฤรฃ bแป ngแบฏt quรฃng, vร nรณ ฤรฃ tiแบฟn hร nh ghi ฤรจ tiแบฟp xuแปng dฦฐแปi vร o phแบงn buffer ban ฤแบงu.
Vแบญy ฤiแปu gรฌ ฤรฃ xแบฃy ra?
Sau khi ฤแป รฝ kฤฉ hฦกn thรฌ tรดi thแบฅy thแบฑng o ฤรฃ bแป ghi ฤรจ ---> sแปฑ thay ฤแปi index ---> ghi ฤรจ khรดng ฤรบng รฝ muแปn. ฤรณ lร lรญ do nรณ nhแบฃy xuแปng dฦฐแปi phแบงn buffer vร ghi ฤรจ tiแบฟp.
Chแปnh 1 xรญu แป payload:
Chฦฐa cแบงn quan tรขm 5 dรฒng ฤแบงu, hรฃy nhรฌn tแปซ dรฒng thแปฉ 6. Tรดi ฤรฃ chแปnh kรญch thฦฐแปc cแปงa payload nร y sao cho: dร i 240 bytes buffer vร dร i 248 bytes output.
bytes thแปฉ 249 chรญnh lร bytes ghi ฤรจ biแบฟn o, vร tรดi sแบฝ ghi ฤรจ nรณ thร nh index cแปงa ret pointer ฤแป ghi ฤรจ nรชn nรณ.


Biแบฟn o bรขy giแป cรณ giรก trแป lร hex 0x106 == vแป trรญ cแปงa <main+204>
Bรขy giแป tรดi cรณ thแป return vแป mแปt chแป tรนy รฝ. Do trรชn file elf cรณ gadget quan trแปng nhฦฐ pop rdi nhฦฐng khรดng cรกc hร m system, sh nรชn tรดi sแบฝ phแบฃi dรนng kฤฉ thuแบญt ret2plt mแปฅc ฤรญch ฤแป leak libc address sau ฤรณ dรนng nรณ ฤแป khai thรกc.


Xแปญ lรญ byte leak vร rแปi hรฃy lร m tiแบฟp tฦฐฦกng tแปฑ nhฦฐ trรชn sau khi return vแป main 1 lแบงn nแปฏa.



QUOTE: Khi lร m bร i overflow, thรฌ phแบฃi biแบฟt ฤฦฐแปฃc lร nรณ overflow chแปฉ ฤแปซng cแบฏm ฤแบงu vร o over - Sifu
Last updated