網站建設,網頁設計,網站優化,廣州網絡公司

廣州 | 深圳 | 東莞 | 繁體版 | 搜聯宣傳冊 | 服務熱線︰(020) 87560378
SEO技術論壇

站內搜索︰
網站優化服務介紹
Google優化
google與microsoft
Google推廣-Google排...
Google排名中的補充材...
工具條能幫助網頁被Go...
怎樣進行Google優化
更多>>>
Yahoo優化
雅虎完成搜索引擎擴充...
YAHOO開始采用自有YST...
Yahoo與Google搜索能...
國外英文目錄索引---Y...
Yahoo!英文的基本收錄...
更多>>>
百度優化
百度研究︰如何使你的...
突破百度貼吧的驗證碼...
“百度與站長”更新︰...
剖析百度,優化百度〞...
網站針對baidu如何優...
更多>>>
優化案例
廣州三九禮品有限公司
廣州東奧電器有限公司
廣州市黃埔區譽本機械...
廣州旭海現代辦公設備...
豐美萊豐胸
更多>>>
突破百度貼吧的驗證碼限制
 
發表時間︰2007-03-26 09:57:02 瀏覽人數︰100

百度,作為國內搜索引擎的大戶,為了進一步擴大自己的用戶群,專門開設了“百度貼吧”(2003年11月百度貼吧 (http://post.baidu.com)自從誕生以來逐漸成為世界最大的中文交流平台!當用戶在百度搜索引擎中搜索出需要搜索的關鍵字,點擊“貼吧”即可進入以關鍵字為專題的相應貼吧)的服務。操作簡單而又針對性,這是貼吧火極一時的重要原因,可正因為如此,百度貼吧的安全性又怎麼樣呢?這就是我們今天探討的話題!
    相信大家都有在論壇灌水的經歷吧?但是如果你連續發表統一內容的東西在論壇中,不久論壇的整個板塊就全是你發表的信息了,其他信息全被擠在了後面。假設你發表的信息夠多,版主都刪不完時,那麼這個論壇基本就報廢了!其他的商業論壇也意識到了防止惡意灌水的重要性,紛紛使用了一些防止惡意灌水的措施,有發貼間隔時間的限制、同一IP地址的發貼數限制、內容不能重復等,但是這些都不是今天的重點,由于百度使用的是一個公用發貼表單,允許匿名發帖,需要突破唯一的難點是驗證碼。(為了防止某個黑客對某一個特定注冊用戶用特定程序暴力破解方式進行不斷的登陸嘗試或是防止不斷提交某網絡信息而采用的一種網絡通行方式。隨機生成字符信息放入圖片中,防止計算機直接識別。比如招商銀行的網上個人銀行,騰訊的QQ社區等等)

    這時驗證碼在整個系統中就扮演了了一個至關重要的角色。如果我們能突破它,寫一個自動發布的程序,那麼我們來算一算︰假設每兩秒程序post一次,一分鐘就是30次、 一小時就有30×60=1800次、 一天就有1800×24=43200次!如果我們把發貼程序或是密碼窮舉程序掛在很多肉雞上,進行同時工作,那麼結果可想而知!筆者曾親目睹過國內某著名安全論壇就是驗證碼被人破解,導致被人惡意灌水,最後完全崩潰!當然還有某網絡銀行也因此類原因導致用戶密碼被盜等眾多事件。筆者也作如下聲明︰下文介紹的方法並不是有意針某公司或是某機構,只是作為技術交流,如果部分讀者利用本文介紹的方法進行破壞或是窮舉他人密碼,這已經違法了法律,那麼責任由他自己承擔,與筆者無關!


    好了,我們可以進入正題了(以下出現的代碼為delphi寫的部分源碼,為了防止任意利用,我以介紹方法為主,如果讀者感興趣,可以自己組合編寫完整,在本文附帶的程序中,筆者提供了一個驗證碼參數確定程序(附源碼))。驗證碼分為如下幾類︰數字型、字符型、符號型、綜合型。

    我們看了看百度貼吧的驗證碼如圖︰ 是屬于數字型的!不過其圖片中生成了不少彩色和黑白的噪音點(指驗證圖片上的斑點)。那麼我們應該怎麼去識別呢?傳統的驗證碼識別方式很簡單,由于數字的位置是固定的,所以我們只需要提取每一幅數字的圖片(沒有噪音點的)然後把每一個特殊數字獨有的象素位置記錄下來,然後在網絡上提取需要破解的特征碼,祛除噪音點,對其位置和記錄位置進行比對,那就是麼就能確定相應的數字了。


總結一下傳統的就是︰
 
1.先分析驗證碼,前景顏色是否不定
2.然後把驗證碼的寬度/驗證碼文字個數,比如一驗證碼下載後寬度為60,有4個數字,那麼就60/4=15,然後保存每個字,如果只有數字保存0-9數字到位圖文件,如果英文那更麻煩點,0-9,A-Z都要保存到位圖,位圖的前景色都不變,保持一種顏色,背景隨便你改不改
3.如果前景要變則將文字統一為同種顏色,每個數字0-9的點陣都有個公共點,取該公共點顏色然後把前景全部統一成一種顏色,比如白色{255,255,255},位圖的結構是BGR,而不是RGB
4.然後進行比較,如果驗證碼的一點為白色,第2步保存的位圖同一點也是白色,那麼頻率增加1
5.最後頻率最高的就是驗證碼了!
可是這種傳統的識別方法卻遇到了挑戰!如果圖片數字的位置也是隨機出現,大小也是隨機出現,那麼這種識別方法也就失效了,百度貼吧的就是這樣的驗證碼。
筆者這里向大家引入一個專有名詞︰“hough變換”也許學習計算機圖像學的朋友知道,筆者還是簡要介紹一下︰
直線hough變換︰直線Hough變換利用圖像空間和Hough參數空間的點-線對偶性,把圖像空間中的檢測問題轉換到參數空間。通過在參數空間里進行簡單的累加統計,然後在Hough參數空間尋找累加器峰值的方法檢測直線。例如,圖1(a)中的九條線段對應于如圖1(b)所示的其Hough參數空間的九個累加器峰值。圖1(b)中,Hough參數空間的橫縱坐標分別為直線極坐標方程:ρ=x×cos(θ) + y×sin(θ) 的兩個參數ρ和θ。九個峰值的ρ和θ值唯一的確定其對應線段所在直線的兩個參數。並且線段的長度決定坐標(ρ,θ)處的累加值的大小。

 

1(a) 
1(b)
沒有明白的讀者可以多讀兩遍(數學啊數學!),還是比較好理解。

 
合作伙伴
東莞網絡公司 天河網絡公司 廣州網絡公司 深圳網站優化
花都網絡公司 番禺網絡公司 廣州網頁設計 廣州網站優化 廣州網站建設 廣州網絡公司 深圳網絡公司