SSP(Stack Smashes Protect) leak
1.利用的是_stack_chk_fail中的fortify的報錯泄露信息,在棧溢出的時候數組月結寫入,導致Canary值被修改,在函數退出的時候檢查canary,發現canary被修改,函數不能安全返回,call到stack_chk_fail打印argv[0]這個指針指向的字符串,默認是程序的名字。
2.如果我們把它覆蓋為flag的地址時,它就會把flag給打印出來
3.注意不要用原來flag的地址覆蓋,因為原來存儲flag的地址會被overwrite,但是由于ELF的映射方式,此flag會被映射兩次,另一個地方的flag的內容不會變,原因是stack_chk_fail會調用libc_message
4.主動觸發棧保護,知道覆蓋到argv[0]的值,實現任意內存讀取。