OWASP Top 10十大風險——解析及實例

在這裏插入圖片描述

A1: 2017-注入

將不受信任的數據作爲命令或查詢的一部分發送到解析器時,會產生諸如SQL注入、NoSQL注入、OS注入和LDAP注入的注入缺陷。攻擊者的惡意數據可以誘使解析器在沒有適當授權的情況下執行非預期命令或訪問數據。

在這裏我分享一下SQL注入有回顯情況下最基礎的Union注入語句

①查詢該數據表的字段數
order by 1-99

②查看回顯結果
id =-1 union select 1,2,3

③查看數據庫
id =-1 union select 1,database(),3

④查看數據表
在上述database()的位置替換爲
(select table_name from information_schema.tables where table_schema = 'sql ’ limit 0,1)

⑤查看數據列
(select column_name from information_schema.columns where table_schema =‘sql’ and table_name = ‘emial’ limit 0,1)

⑥查看對應數據
(select emial_id from sql.emial limit 0,1)

舉個在線靶場的SQL注入栗子

注入語句
1 and 1=2 UNION SELECT 1,database(),column_name,4 from information_schema.columns where table_schema=‘mozhe_Discuz_StormGroup’ and table_name=‘StormGroup_member’ limit 0,1

頁面回顯
在這裏插入圖片描述



A2: 2017-失效的身份認證

通常,通過錯誤使用應用程序的身份認證會話管理功能,攻擊者能夠破譯密碼、密鑰或會話令牌,或者利用其它開發缺陷來暫時性或永久性冒充其他用戶的身份

在黑客筆記靶場中,我們只需要拿到對手的Cookie,我們可以不通過用戶名和密碼,直接在請求中帶上對手的Cookie,直接僞造對手提交請求,所以保護好自己Cookie很重要。

在這裏插入圖片描述



A3: 2017-敏感數據泄露

許多Web應用程序和API都無法正確保護敏感數據,例如:財務數據、醫療數據和PII數據。攻擊者可以通過竊取或修改未加密的數據來實施信用卡詐騙、身份盜竊或其他犯罪行爲。未加密的敏感數據容易受到破壞,因此,我們需要對敏感數據加密,這些數據包括:傳輸過程中的數據、存儲的數據以及瀏覽器的交互數據。

在以前會發現很多網站的賬戶登錄頁面,賬戶名和密碼是直接明文傳輸的,我們一抓包就能看見。而現在這種情況少了很多,尤其是大廠基本上都不會是明文傳輸

這裏以QQ登錄頁面爲例,試試看能不能抓包到用戶名和密碼

這裏我用戶名輸入:[email protected] 密碼輸入:123456

在這裏插入圖片描述
仔細觀察,並未發現有關於用戶名和密碼的關鍵信息


A4: 2017-XML 外部實體(XXE)

許多較早的或配置錯誤的XML處理器評估了XML文件中的外部實體引用。攻擊者可以利用外部實體竊取使用URI文件處理器的內部文件和共享文件、監聽內部掃描端口執行遠程代碼和實施拒絕服務攻擊

[root@host myzoo]# cat ailx10.xml 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root[
<!ENTITY name "ailx10">]>
<root>
&name;
</root>

該截圖來自於知乎答主alix10
通過SYSTEM "file:///etc/passwd"獲取隱私信息。
libxml2.9.0以後,默認不解析外部實體。也就是說XML外部實體攻擊成了個保護動物,很難再見到了



A5: 2017-失效的訪問控制

未對通過身份驗證的用戶實施恰當的訪問控制。攻擊者可以利用這些缺陷訪問未經授權的功能或數據,例如:訪問其他用戶的帳戶、查看敏感文件、修改其他用戶的數據、更改訪問權限等。

在攻防世界靶場中,假如一個網頁不添加任何訪問限制,只是隱藏的話,那麼只要在瀏覽器地址欄中輸入該頁面的地址,就能對其進行訪問,如直接訪問PHP頁面

在這裏插入圖片描述
在這裏插入圖片描述

A6: 2017-安全配置錯誤

安全配置錯誤是最常見的安全問題,這通常是由於不安全的默認配置不完整的臨時配置開源雲存儲錯誤的HTTP 標頭配置以及包含敏感信息的詳細錯誤信息所造成的。因此,我們不僅需要對所有的操作系統、框架、庫和應用程序進行安全配置,而且必須及時修補和升級它們。

比如說之前某大型連鎖酒店數據庫被脫庫事件。這個事件的原因就是安全配置錯誤,據說是該酒店公司員工一時疏忽將管理員密碼上傳到了github上。

在這裏插入圖片描述


A7: 2017-跨站腳本(XSS)

當應用程序的新網頁中包含不受信任的、未經恰當驗證或轉義的數據時,或者使用可以創建HTML或JavaScript 的瀏覽器API 更新現有的網頁時,就會出現XSS 缺陷。XSS 讓攻擊者能夠在受害者的瀏覽器中執行腳本,並劫持用戶會話、破壞網站或將用戶重定向到惡意站點。

比如我們輸入,

<script>alert('xss')</script>

則頁面彈窗

在這裏插入圖片描述

其實XSS漏洞除了可以用來顯示彈窗之外,還可以盜取Cookie會話劫持,甚至還可以專門寫一個XSS蠕蟲



A8: 2017-不安全的反序列化

不安全的反序列化會導致遠程代碼執行。即使反序列化缺陷不會導致遠程代碼執行,攻擊者也可以利用它們來執行攻擊,包括:重播攻擊注入攻擊特權升級攻擊

[root@host myzoo]# cat ailx10.php 
<?php #黑客筆記靶場 反序列化 臨時演示文件
class AI
{
    var $hack='hey hack';
    function __destruct()
    {
        echo $this->hack;
    }
}
$ailx10 = $_GET['hack'];
$ailx11 = unserialize($ailx10);
?>




該截圖來自於知乎答主alix10
可以看到反序列化輸出了瀏覽器中我們自主可控的字符串:ailx10studying 。


A9: 2017-使用含有已知漏洞的組件

一些含有漏洞的組 件組件(例如:庫、框架和其他軟件模塊)擁有和應用程序相同的權限。如果應用程序中含有已知漏洞的組件被攻擊者利用,可能會造成嚴重的數據丟失或服務器接管。同時,使用含有已知漏洞的組件的應用程序和API可能會破壞應用程序防禦、造成各種攻擊併產生嚴重影響。

對於我們來說,也就是適時打補丁。比如之前勒索病毒爆發後,各安全平臺後續推出防勒索病毒的補丁,打上就好

在這裏插入圖片描述


A10: 2017-不足的日誌記錄和監控

不足的日誌記錄和監控,以及事件響應缺失或無效的集成,使攻擊者能夠進一步攻擊系統、保持持續性或轉向更多系統,以及篡改、提取或銷燬數據。大多數缺陷研究顯示,缺陷被檢測出的時間超過200天,且通常通過外部檢測方檢測,而不是通過內部流程或監控檢測。

對於公司來說,也就是做好審計,別都被DDos攻擊一下了,公司的相關人員卻渾然不知。

在這裏插入圖片描述

本文參考自OWASP Top 10 2017-RC1官方文檔以及知乎大V alix10有關於OWASP Top 10十大風險的知識專欄。非常感謝來自大牛的知識分享。

以上文章,作爲自己的學習筆記,僅供參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章