看得雜;《Web之困》中文翻譯真的不行,不知道在講啥
0x00 https建立過(guò)程
https很好的解決了http的三個(gè)缺點(diǎn)(被監(jiān)聽(tīng)、被篡改、被偽裝)
請(qǐng)求鏈接到數(shù)據(jù)傳輸過(guò)程中用到了
- 對(duì)稱加密
- 公鑰加密
- 信息摘要
- 數(shù)字證書(shū)
過(guò)程如下
- 客戶端發(fā)送自己支持的加密協(xié)議及版本,SSL、TLS
- 服務(wù)端從中篩選選擇合適的加密協(xié)議
- 服務(wù)端返回證書(shū),證書(shū)中有公鑰
- 客戶端使用根證書(shū)驗(yàn)證證書(shū)合法性
- 客戶端生成對(duì)稱密鑰,通過(guò)證書(shū)中的公鑰進(jìn)行加密,發(fā)送到服務(wù)端
- 服務(wù)端使用私鑰解密,獲取對(duì)稱密鑰,使用對(duì)稱密鑰加密數(shù)據(jù)
- 客戶端解密數(shù)據(jù),SSL通信
0x01 同一進(jìn)程中線程
共享的內(nèi)容包括
- 進(jìn)程代碼段(data section)
- 進(jìn)程的共有數(shù)據(jù)(利用共享數(shù)據(jù),容易實(shí)現(xiàn)線程間通信)
- 進(jìn)程打開(kāi)的文件描述符(file fd)
- 信號(hào)的處理器
- 進(jìn)程的當(dāng)前目錄
- 進(jìn)程用戶ID和進(jìn)程組ID
每個(gè)線程獨(dú)有的
- 線程ID
- 寄存器組的值(register set)
- 線程的堆棧(stack)
- 錯(cuò)誤返回碼
- 線程的信號(hào)屏蔽碼
0x02 CRLF-Injection
CRLF字符(%0d%0a)在許多互聯(lián)網(wǎng)協(xié)議中表示行的結(jié)束,當(dāng)該字符與HTTP協(xié)議請(qǐng)求和響應(yīng)的頭部一起聯(lián)用時(shí)就有可能出現(xiàn)漏洞
HTTP響應(yīng)分為head部分和body部分,head部分各個(gè)字段之間的分隔是\r\n,head與body的分隔是兩個(gè)\r\n
將惡意代碼注入到body中就可以執(zhí)行,例如xss
注入到head中,可以設(shè)置session,例如利用會(huì)話固定漏洞(一旦用戶sessionid固定為攻擊者設(shè)定的,攻擊者就可以利用sessionid冒充用戶進(jìn)行操作)