黑客入侵網頁攻防修煉

黑客入侵網頁攻防修煉

《黑客入侵網頁攻防修煉》是由德瑞工作室所著,電子工業出版社出版。

基本信息

版權資訊

書 名: 黑客入侵網頁攻防修煉

作 者:德瑞工作室

出版社:電子工業出版社

定價:¥38.00

內容簡介

本書將PHP的技術技巧與Web套用相結合,分別對黑客的入侵和頁面設計時的防範措施進行了深入淺出的分析,通過實例演示了包括CommandInjection、ScriptInsertion、XSS、SQLInjection、CSRF、SessionHijacking和HTTPResponseSplitting等在內的18種技術,這其中包含了作者對網頁安全的獨到見解。

圖書目錄

第1章PHP網頁的安全性1

1.1什麼是安全性2

1.1.1黑客攻擊的方式2

1.1.2PHP網頁的安全性問題3

1.2RegisterGlobals4

1.3安全模式7

1.3.1限制檔案的存取8

1.3.2限制環境變數的存取8

1.3.3限制外部程式的執行9

1.4MagicQuotes9

1.4.1使用MagicQuotes的好處10

1.4.2使用MagicQuotes的壞處10

1.4.3取消MagicQuotes功能11

1.5修改PHP的設定值11

1.5.1在php.ini檔案中修改設定值12

1.5.2在httpd.conf檔案中修改設定值13

1.5.3在.htaccess檔案中修改設定值13

1.5.4在程式中修改設定值13

第2章CommandInjection–命令注入攻擊15

2.1PHP的命令執行函式16

2.1.1System函式16

2.1.2Exec函式17

2.1.3passthru函式18

2.1.4shell_exec函式18

2.1.5運算符19

2.2命令注入攻擊19

2.2.1攻擊實例一19

2.2.2攻擊實例二20

2.2.3攻擊實例三21

2.2.4命令注入的方式21

2.3eval注入攻擊22

2.3.1攻擊沒有作用23

2.3.2可變變數24

2.3.3pre_replace函式24

2.3.4ace函式26

2.3.5動態函式27

2.3.6call_user_func函式29

2.4防範的方法30

2.4.1使用escapeshellarg函式來處理命令的參數30

2.4.2使用safe_mode_exec_dir指定的執行檔的路徑32

第3章ScriptInsertion–客戶端腳本植入攻擊33

3.1客戶端腳本植入攻擊34

3.2攻擊實例:在留言板中插入腳本35

3.2.1開始攻擊:顯示簡單的對話框37

3.2.2沒有顯示對話框38

3.2.3打開InternetExplorer的活動腳本功能39

3.2.4關閉PHP的magic_quotes_gpc40

3.2.5利用資料庫來攻擊41

3.2.6本章的資料庫42

3.2.7瀏覽植入腳本的留言44

3.2.8破壞性的攻擊手法:顯示無窮盡的新視窗45

3.2.9引誘性的攻擊手法:跳轉網址46

3.3防範的方法48

3.3.1HTML輸出過濾48

3.3.2使用strip_tags函式來進行HTML輸出過濾48

3.3.3strip_tags函式的缺點50

3.3.4使用htmlspecialchars函式來進行HTML輸出過濾52

第4章XSS–跨網站腳本攻擊53

4.1什麼是“跨網站腳本攻擊”56

4.2跨網站腳本攻擊58

4.2.1本章的資料庫60

4.2.2登錄首頁61

4.2.3如何攻擊62

4.2.4開始攻擊62

4.2.5沒有顯示對話框64

4.2.6如何取得目標用戶的cookie內容64

4.2.7伺服器的記錄檔案67

4.3防範的方法67

4.4隱藏在$_SERVER["PHP_SELF"]變數內的腳本70

4.4.1實際範例71

4.4.2拆解 標籤的內容73

4.4.3避免$_SERVER["PHP_SELF"]被篡改74

第5章SQLInjection–SQL注入攻擊77

5.1SQL注入攻擊78

5.2攻擊實例:繞過賬號、密碼的檢查79

5.2.1如何攻擊81

5.2.2開始攻擊82

5.2.3隻填入賬號84

5.3攻擊實例:刪除資料庫的所有記錄84

5.3.1刪除留言的記錄86

5.3.2如何攻擊87

5.3.3開始攻擊88

5.4攻擊實例:盜取密碼89

5.4.1如何攻擊91

5.4.2開始攻擊91

5.5防範的方法93

5.5.1數字型變數的過濾方式93

5.5.2字元串變數的過濾方式:使用addslashes函式94

第6章CSRF–跨網站請求偽造攻擊97

6.1跨網站請求偽造攻擊98

6.2攻擊實例:刪除資料庫的一條記錄99

6.2.1刪除留言的記錄101

6.2.2如何攻擊102

6.2.3開始攻擊103

6.3攻擊實例:新增資料庫的一條記錄104

6.3.1如何攻擊105

6.3.2開始攻擊106

6.4防範的方法107

6.4.1檢查網頁的來源108

6.4.2檢查內置的隱藏變數111

6.4.3使用POST,不要使用GET113

第7章SessionHijacking–會話劫持攻擊115

7.1什麼是Session116

7.1.1sessionid116

7.1.2Session的名稱118

7.2PHP的Session機制119

7.2.1URL參數119

7.2.2表單中隱藏屬性的文本框120

7.2.3Cookie121

7.3會話劫持攻擊123

7.3.1攻擊的步驟124

7.3.2如何攻擊124

7.3.3開始攻擊127

7.4Session固定攻擊129

7.4.1攻擊的步驟130

7.4.2攻擊的方式131

7.5防範的方法132

7.5.1定期更改sessionid132

7.5.2更改Session的名稱133

7.5.3關閉透明化sessionid的功能133

7.5.4隻從cookie檢查sessionid134

7.5.5檢查瀏覽器是否改變134

7.5.6使用URL傳遞秘密參數135

第8章HTTPResponseSplitting–HTTP回響拆分攻擊137

8.1HTTP簡介138

8.1.1HTTP請求的格式138

8.1.2HTTP請求的方法139

8.1.3HTTP回響的格式139

8.1.4使用header函式傳送HTTP表頭143

8.1.5使用PHP的函式來替代Telnet143

8.2HTTP回響拆分攻擊144

8.3攻擊實例:跳轉地址149

8.4與Session固定結合攻擊150

8.5防範的方法150

8.5.1將session.use_only_cookies設定為1152

8.5.2使用最新版的PHP152

8.6隱藏HTTP回響表頭152

第9章FileUploadAttack–檔案上傳攻擊155

9.1檔案上傳156

9.1.1上傳檔案的大小157

9.1.2$_FILES數組變數158

9.1.3存放上傳檔案的資料夾159

9.1.4上傳檔案時的錯誤信息159

9.2檔案上傳攻擊159

9.2.1上傳執行檔160

9.2.2覆蓋原有檔案162

9.2.3癱瘓網站162

9.2.4存取上傳的檔案數據162

9.3防範的方法162

9.3.1關掉上傳檔案的功能163

9.3.2限制允許上傳的檔案大小163

9.3.3檢查是否真的是上傳的檔案164

9.3.4更改臨時資料夾的路徑166

9.3.5讀取上傳檔案的絕對路徑與檔案名稱稱167

9.3.6隱藏檔案的路徑168

第10章目錄/檔案攻擊169

10.1目錄穿越攻擊170

10.1.1如何攻擊170

10.1.2開始攻擊171

10.1.3Microsoft的IIS伺服器173

10.2遠程檔案引入攻擊173

10.2.1如何攻擊174

10.2.2開始攻擊174

10.2.3與目錄穿越結合攻擊175

10.2.4與HTTP回響分割結合攻擊177

10.3防範的方法179

10.3.1使用者輸入的檔案名稱179

10.3.2設定open_basedir181

10.3.3設定allow_url_fopen為Off182

10.3.4使用realpath與basename函式來處理檔案名稱182

第11章其他的攻擊183

11.1變數指定攻擊184

11.2URL攻擊187

11.2.1開始攻擊187

11.2.2防範的方法188

11.3表單欺騙攻擊189

11.4HTTP請求欺騙攻擊191

11.5拒絕服務攻擊193

11.5.1SYNFlood攻擊194

11.5.2LAND攻擊195

11.5.3PingofDeath攻擊195

11.5.4PingFlood攻擊195

11.5.5Teardrop攻擊195

11.5.6Pear-to-pear攻擊196

11.5.7分散式拒絕服務攻擊196

11.5.8防範的方法196

11.5.9SYNCookies197

11.5.10防火牆197

11.5.11分享器與路由器197

11.5.12應用程式前端硬體197

11.6網頁劫持攻擊198

11.7緩衝區溢位攻擊198

11.7.1基本範例199

11.7.2堆疊溢出199

第12章攻擊手法匯總201

12.1命令注入攻擊202

12.1.1程式代碼漏洞1202

12.1.2攻擊手法1202

12.1.3程式代碼漏洞2203

12.1.4攻擊手法2203

12.1.5命令注入的方式203

12.1.6防範的方法204

12.2eval注入攻擊204

12.2.1程式代碼漏洞1204

12.2.2攻擊手法205

12.2.3程式代碼漏洞2205

12.2.4攻擊手法205

12.2.5程式代碼漏洞3206

12.2.6攻擊手法206

12.2.7程式代碼漏洞4206

12.2.8攻擊手法206

12.2.9防範的方法207

12.3客戶端腳本注入攻擊207

12.3.1程式代碼漏洞1207

12.3.2攻擊手法207

12.3.3程式代碼漏洞2207

12.3.4攻擊手法208

12.3.5防範的方法208

12.4跨網站腳本攻擊208

12.4.1程式代碼漏洞1209

12.4.2攻擊手法209

12.4.3程式代碼漏洞2209

12.4.4攻擊手法209

12.4.5防範的方法209

12.5SQL注入攻擊210

12.5.1程式代碼漏洞1210

12.5.2攻擊手法211

12.5.3程式代碼漏洞2211

12.5.4攻擊手法211

12.5.5程式代碼漏洞3211

12.5.6攻擊手法212

12.5.7防範的方法212

12.6跨網站請求偽造攻擊213

12.6.1程式代碼漏洞1213

12.6.2攻擊手法214

12.6.3程式代碼漏洞2214

12.6.4攻擊手法214

12.6.5防範的方法215

12.7Session劫持攻擊216

12.7.1程式代碼漏洞216

12.7.2攻擊手法217

12.7.3防範的方法217

12.8Session固定攻擊218

12.8.1程式代碼漏洞218

12.8.2攻擊手法218

12.8.3防範的方法219

12.9HTTP回響拆分攻擊221

12.9.1程式代碼漏洞1221

12.9.2攻擊手法221

12.9.3程式代碼漏洞2222

12.9.4攻擊手法222

12.9.5防範的方法222

12.10檔案上傳攻擊223

12.10.1程式代碼漏洞223

12.10.2攻擊手法224

12.10.3防範的方法224

12.11目錄穿越攻擊225

12.11.1程式代碼漏洞225

12.11.2攻擊手法226

12.11.3防範的方法226

12.12遠程檔案引入攻擊226

12.12.1程式代碼漏洞227

12.12.2攻擊手法1227

12.12.3攻擊手法2227

12.12.4防範的方法227

12.13變數指定攻擊228

12.13.1程式代碼漏洞228

12.13.2攻擊手法228

12.13.3防範的方法229

第13章漏洞掃描器231

13.1什麼是“漏洞掃描器”232

13.2Nessus漏洞掃描器232

13.2.1Nessus的特點233

13.2.2下載與安裝233

13.2.3執行Nessus234

13.2.4Nessus檢查漏洞的方式237

13.3MaxPatrol漏洞掃描器238

13.4Paros漏洞掃描器240

13.4.1Paros的特點240

13.4.2下載與安裝241

13.4.3設定瀏覽器的Proxy241

13.4.4執行Paros243

13.4.5掃描漏洞244

13.4.6檢視HTTP請求與回響的內容245

13.4.7Paros的Trap功能245

13.4.8URL編碼與解碼246

第14章開發安全的Web程式247

14.1什麼是“安全的Web應用程式”248

14.2過濾輸入的數據248

14.2.1為什麼要過濾數據249

14.2.2基本的數據過濾程式251

14.2.3數字數據的過濾252

14.2.4字元串數據的過濾253

14.2.5HTML與PHP標籤的過濾254

14.2.6檔案路徑的過濾255

14.2.7序列化字元串的過濾256

14.3轉義輸出的數據257

14.3.1基本的轉義程式257

14.3.2轉義SQL表達式的字元串258

14.3.3使用addslashes函式258

14.4RegisterGlobals259

14.4.1隱藏RegisterGlobals所發生的問題260

14.4.2$_REQUEST變數261

14.4.3$_SERVER變數261

14.5magic_quotes_gpc261

14.6錯誤信息的報告262

14.7檔案的安全263

14.8Session的安全264

14.8.1Session固定攻擊264

14.8.2Session的保存265

14.9虛擬主機266

14.9.1可預測的臨時檔案名稱稱266

14.9.2隱藏表頭的信息267

14.9.3系統異常的監測267

附錄

附錄ATelnet使用說明269

A.1Telnet簡介270

A.2打開Windows的Telnet服務270

A.3Telnet使用說明272

A.4使用Telnet連線到本地主機273

A.5在HTTP表頭內加上要執行的檔案275

附錄B查看HTTP請求與回響的實際內容277

B.1如何查看HTTP請求與回響的實際內容280

B.2修改HTTP請求/回響的內容281

B.3顯示HTTP請求/回響的參數282

B.4顯示上傳檔案的HTTP請求283

附錄CURL編碼與解碼285

附錄D構建PHP的測試環境285

D.1AppServ整合包288

D.2安裝AppServ整合包289

D.3測試AppServ是否正確安裝293

D.4伺服器的資料夾位置293

附錄E找出網站的IP位址285

E.1使用Ping命令296

E.2使用NetInfo296

E.3無法找出IP位址297

……

相關詞條

相關搜尋

熱門詞條

聯絡我們