linux的防護機制

2021-08-17 10:05:43 字數 1203 閱讀 7749

1、nx/dep:堆疊不可執行 ,將資料所在的記憶體頁標識為不可執行,當程式試圖在資料頁面執行指令時,cpu就會丟擲異常

繞過方法:rop ret2libc

關閉nx:gcc -z execstack -o pwn pwn.c

2、cannry:(棧保護)

當啟用棧保護後,函式開始執行的時候會先往棧裡插入cookie資訊,當函式真正返回的時候會驗證cookie資訊是否合法,如果不合法就停止程式執行。攻擊者在覆蓋返回位址的時候往往也會將cookie資訊給覆蓋掉,導致棧保護檢查失敗而阻止shellcode的執行。在linux中我們將cookie資訊稱為canary。

繞過方法:ssp洩露

關閉程式的canary:gcc -fno-stack-protector -o pwn pwn.c

3、aslr/pie:(位址隨機化)

alsr可以保證在每次程式載入的時候他自己和所載入的庫檔案都會被對映到虛擬位址空間的不同位址處,這就意味著我們不能使用自己在gdb中除錯的位址了。因為有可能變成另乙個。

繞過方法:

infoleak 、retdlresolve 、rop

如何關閉程式的aslr: gcc -no-pie pwn pwn.c

關閉整個linux的aslr保護:

sudo -s

echo o > /proc/sys/kernel/randomize_va_space

4、fortify: 一種用來防止棧溢位的機制 通過生成一些附加** ,對陣列大小的判斷 ,替換strcpy memcpy 和memset ,來達到防止棧溢位的目的

5、relro:

設定符號重定向**為唯讀或在程式啟動時就解析並繫結所有動態符號,從而減少對got(global offset table)攻擊。

'''現代棧溢位利用技術基礎:rop

利用signal機制的rop技術:srop

沒有binary怎麼辦:brop 、dump bin

劫持棧指標:stack pivot

利用動態鏈結繞過aslr:ret2dl resolve、fake linkmap

利用位址低12bit繞過aslr:partial overwrite

繞過stack canary:改寫指標與區域性變數、leak canary、overwrite canary

溢位位數不夠怎麼辦:覆蓋ebp,partial overwrite

現代棧溢位利用技術基礎:rop

Django 提供的 CSRF 防護機制

用 django 有多久,我跟 csrf 這個概念打交道就有久了。但是一直我都是知其然而不知其所以然,沒有把 csrf 的機制弄清楚。昨天稍微研究了一下,總結如下。你的 會以為這個請求是使用者自己發來的,其實呢,這個請求是那個惡意 偽造的。具體的細節及其危害見 wikipedia django 第一...

Linux基本防護

1 chage 修改賬戶屬性 格式 chage 選項 引數 賬戶名稱 chage l jim 最近一次密碼修改時間 9月 21,2019 密碼過期時間 從不 密碼失效時間 從不 帳戶過期時間 從不 兩次改變密碼之間相距的最小天數 0 兩次改變密碼之間相距的最大天數 99999 在密碼過期之前警告的天...

Linux基本防護措施

root svr5 passwd s lisi 檢視狀態 lisi lk 2013 08 14 0 99999 7 1 密碼已被鎖定。3 驗證使用者lisi已無法登入,說明鎖定生效 輸入正確的使用者名稱 密碼,始終提示 login incorrect 無法登入。4 解除對使用者lisi的鎖定 roo...