成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

小議驗證碼的安全性及如何繞過

安全 數據安全
在實際業務及生產中,某些功能會要求有CAPTCHA。而不安全的CAPTCHA,將會導致敏感數據被竊取,認證攻擊,DOS用戶甚至管理員等嚴重問題的發生。因此對于開發人員和使用者而言,具有一個好的設計和實施的CAPTCHA至關重要!

一、什么是驗證碼?

CAPTCHA是(全自動區分計算機和人類的圖靈測試)的簡稱,是用于區分計算機和人類的一種程序算法,這種程序必須能生成并評價人類能很容易通過但計算機卻通不過的測試。

像我們平時最常遇到的,就是基于圖片的驗證碼。這類圖片驗證碼通常包含的,都是些易于用戶識別簡單的驗證信息。如下圖所示。用戶必須準確的識別圖像內的字符,并以此作為人機驗證的答案,方可通過驗證碼的人機測試。相反如果驗證碼填寫錯誤,那么驗證碼字符將會自動刷新并更換一組新的驗證字符,直到用戶能夠填寫正確的驗證字符為止。

orwell

二、驗證碼的重要性

1. 防止與認證相關的攻擊行為

以下列舉的是一些較易受到暴力攻擊的點。例如:

  • 登錄:一旦缺少驗證碼的保護,攻擊者則很可能通過暴力破解的方式非法接管用戶賬戶。
  • 忘記密碼:如果網絡應用程序使用詳細消息響應帳戶存在或不存在,那么攻擊者則可以進行用戶名的枚舉。
  • 注冊:程序批量創建垃圾賬戶。此外還可以進行用戶名的枚舉。(正常情況下沒有應用程序會允許用戶,同時注冊兩個相同用戶名的賬號)

2. 避免垃圾郵件和DOS

我們知道很多網站都有提交表單的功能,并需要由站點管理員審核通過。例如:會員申請,聯系我們,反饋表,調查表等。這些功能都需要驗證碼的保護,如果不加以防護那么將會導致以下情況的出現:

  • 大量的垃圾表單可能產生,不僅會影響網站的訪問速度,還會加大站點管理員的工作量,而且一些合法用戶的請求,也可能會因此被拒絕。
  • 電子郵件轟炸:一些功能可以發送電子郵件到一個任意的郵件地址。如果沒有得到有效的驗證保護,那么惡意攻擊者則可以利用程序,向特定的目標發送大量的垃圾郵件。

3. 保護數據挖掘機器人

  • 某些包含大量數據的站點極易遭受數據挖掘攻擊,因此它們也需要驗證碼的保護。例如:社交網絡和搜索引擎。

三、驗證碼為什么能被繞過?

驗證碼被繞過,有以下兩個原因:

  • 設計問題
  • 執行問題

在以下的內容,我將會帶大家認識到這兩個問題所在。以及如何解決這些問題,建立更為安全的人機驗證。

1. 設計問題

設計問題則意味著驗證碼本質上的脆弱性,但執行卻不存在問題。以下演示將有助于我們了解設計問題的真正原因,以及如何破解它:

(1) 設計問題#1:

以下的示例中我們可以看到,這里的驗證碼就是一道數學運題。而這里的問題就出在頁面的HTML源碼上。

captcha-arith.png

你可以在Github上下載到該驗證碼的源碼:

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/tree/master/ArithmeticCAPTCHA

如何破解?

在這種情況下攻擊者往往都會通過獲取該頁面的HTML源碼,計算答案并提交HTTP響應來破解驗證碼。

captha-arith-crack.png

你可以在Github上下載到該利用代碼:

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/tree/master/CaptchaExploits

(2) 設計問題#2:

某些驗證碼可能會采用相對有限的問題數據庫。例如以下是一個基于圖片的驗證碼,很顯然這里不能再利用上面提到的破解方案來破解。但這里的問題出在,這里的圖片驗證碼字符是固定并且有限的,在本例中該驗證碼只會在來回10個固定字符組合中更換。因此一旦掌握了它的問題數據庫,那么破解也自然就不成問題了。

captcha-ten.png

你可以在Github上下載到該驗證碼的源碼:

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/tree/master/TenRepeatedCAPTCHA

如何破解?

攻擊者首先必須手動解決這10個驗證碼問題,并同時記錄下這些問題的答案。然后通過工具將這些問題的答案存放在自己的數據庫中,進行不斷的暴力攻擊嘗試即可。

captcha-tenrepeated-crack.png

你可以在Github上下載到該利用代碼:

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/tree/master/CaptchaExploits

2. 執行問題

執行問題則意味著驗證碼由于執行不力而可被破解,但從設計的角度來看是完美的。

以下示范將有助于我們了解,執行問題的真正含義以及如何破解它:

(1) 執行問題#1:

在演示中,我們正在使用Google reCAPTCHA人機驗證。我們使用API將用戶解決的CAPTCHA響應發送給Google的端點。更多請點擊:

https://www.google.com/recaptcha/intro/index.html 。API以JSON的輸出形式回復請求,以及HTTP狀態碼。到現在為止,還沒發現什么問題 !!

但是執行問題也就出在這里。開發人員無法檢查JSON響應,而以檢查發送的HTTP狀態碼是否為200 OK,作為驗證碼正確與否的判斷依據。

weak-captcha-1.png

你可以在Github上下載到該驗證碼的源碼:

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/blob/master/GooglereCAPTCHA/weakcaptcha1.php

weak-captcha-1-code.png

如何破解?

攻擊者只需要制作一個腳本即可將任何值發送給人機驗證碼,并且都將會被服務器所接收,因為無論你發送什么答案,服務器都只會通過檢查Google API發送的狀態碼是否為200 OK來作為判斷依據。下圖中,我們作為答案發送的值是“InvalidAnswerOfCAPTCHA”

你可以在Github上下載到該利用代碼:https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/tree/master/CaptchaExploits

(2) 執行問題#2:

驗證碼存在于web頁面,在用戶提交后將被驗證,但問題卻出在了if和else一個簡單的子句中。這個錯誤是由于開發人員將響應碼寫在了其它部分形成的。所以這里即使驗證碼答案是錯誤的,應用程序仍將給予用戶積極的響應。

weak-captcha-2.png

weak-captcha-2-code.png

你可以在Github上下載到該驗證碼的源碼:https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/blob/master/GooglereCAPTCHA/weakcaptcha2.php

如何破解?

攻擊者只需要制作一個腳本,即可向驗證碼發送任意值。在下圖中,我們作為答案發送的值是“InvalidAnswerOfCAPTCHA”

“InvalidAnswerOfCAPTCHA

你可以在Github上下載到該利用代碼:https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/tree/master/CaptchaExploits

(3) 執行問題#3:

驗證碼存在于web頁面,但在提交后未在服務器端進行驗證。

weak-captcha-3.png

你可以在Github上下載到該驗證碼的源碼:

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/blob/master/GooglereCAPTCHA/weakcaptcha3.php

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/blob/master/GooglereCAPTCHA/weakcaptcha4.php

如何破解?

攻擊者只需通過輸入錯誤的驗證碼和任意電子郵件,就可以輕松地繞過它。

你可以在Github上下載到該利用代碼:

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/tree/master/CaptchaExploits

四、如何保護自己免受CAPTCHA攻擊?

其實這個問題也很簡單,大家可以按照以下步驟,來制作一個強大的CAPTHCA功能:

設計:實施設計良好的CAPTCHA方案。從以上示例中我們可以看到,大多數我們自己設計的驗證碼都或多或少的存在一些問題。因此,我建議大家盡可能的使用像Google這樣的第三方CAPTCHA。

執行:在你選擇了具有良好設計的人機識別系統后,下一步是正確的執行。我們已經看到,盡管有一個設計良好的CAPTCHA,但是如果不能正確執行,仍然可以被破解。如果你使用的是Google reCAPTCHA,請參照以下操作步驟:

  • 以檢查Google發送的JSON響應取代HTTP狀態碼檢查。
  • 在if和else子句中實現正確的邏輯,區分有效和無效的答案。
  • 不要透露你的私人CAPTCHA密鑰。

如何保護自己免受CAPTCHA攻擊?

你可以從這里下載安全的CAPTCHA代碼:

https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script/blob/master/GooglereCAPTCHA/goodcaptcha.php

五、總結

在實際業務及生產中,某些功能會要求有CAPTCHA。而不安全的CAPTCHA,將會導致敏感數據被竊取,認證攻擊,DOS用戶甚至管理員等嚴重問題的發生。因此對于開發人員和使用者而言,具有一個好的設計和實施的CAPTCHA至關重要!

所有腳本的Github鏈接:https://github.com/securelayer7/Captch-Bypass-Vulnerable-Script

責任編輯:趙寧寧 來源: FreeBuf
相關推薦

2017-12-21 07:38:19

2022-01-20 10:54:23

移動手機短信驗證碼隱患

2017-05-18 09:36:11

大數據爬蟲驗證碼

2023-07-11 10:38:24

區塊鏈文件驗證安全

2012-12-26 10:53:26

2015-09-21 15:31:05

php實現驗證碼

2018-11-23 09:36:11

Python驗證碼KNN

2021-10-19 06:05:20

網站安全網絡威脅網絡攻擊

2013-06-19 10:19:59

2013-01-23 10:08:45

2012-07-30 10:07:01

2022-02-11 07:10:15

驗證碼

2021-01-19 10:29:34

短信驗證碼密碼

2016-10-09 13:33:12

2009-06-26 13:35:50

安全審計信息安全吉大正元

2014-03-31 11:29:14

虛擬服務器安全性合規性

2012-08-22 10:27:16

2012-05-10 09:50:53

云計算安全
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩一区在线播放 | 黄色片免费 | 综合久久久久 | 日韩av成人| 日一区二区三区 | 欧美一级欧美一级在线播放 | 午夜精品久久久久久不卡欧美一级 | 农村黄性色生活片 | 成人精品国产 | 夜夜爽99久久国产综合精品女不卡 | www.中文字幕.com | 欧美一区二区三区电影 | 精精国产xxxx视频在线播放 | 久久婷婷国产麻豆91 | 成人在线观看网址 | 欧美lesbianxxxxhd视频社区 | 国产精品久久久久久妇女6080 | 久久久久成人精品亚洲国产 | 亚洲国产精品视频 | 精品一区二区在线观看 | 色婷婷av一区二区三区软件 | 亚洲一区二区三区久久 | 视频一区 国产精品 | 国产精品久久久久久久久久免费看 | 国产精品久久久久久妇女6080 | 亚洲成人黄色 | 欧美精品成人一区二区三区四区 | 中文字幕国 | 国产精品国产精品 | www.狠狠干 | 中文字幕亚洲一区 | 婷婷丁香在线视频 | 成人片免费看 | 亚洲精品自在在线观看 | 人人艹人人爽 | 国产精品一区二区电影 | 99久久久久久99国产精品免 | 国产精品福利久久久 | 精品免费国产一区二区三区四区介绍 | 国产精品久久久久婷婷二区次 | 免费视频久久 |