这个CAPTCHA看起来很脆弱,这个其他CAPTCHA是否有相同的漏洞,我该如何破解它?

时间:2014-09-17 11:41:06

标签: python html string captcha decode

我正在为一个网络安全课程的实验室(一个特意易受攻击的网站,在沙盒虚拟机上)工作。该实验室的目标是绕过验证码。

我有一个脚本可以从HTML站点中提取VIEWSTATE,EVENTVLIDATION和CaptchaId。我想弄清楚我如何解码Captcha ID。这是我正在抓的那条线

<div id="CaptchaImage"><img src="Captcha.ashx?CaptchaId=1d7a4981-ad6b-429e-aefc-011b691b6db0" />

此编码的验证码值为tzfifq

我的脚本给我的值为1d7a4981-ad6b-429e-aefc-011b691b6db0

这是我的剧本:

import requests
import urlparse
import lxml.html
import sys
from bs4 import BeautifulSoup

print "Enter the URL"
url = raw_input()
print url

# Parse Site
r = requests.get(url)
c = r.content
soup = BeautifulSoup(c)

#Finding Captcha
captcha = soup.findAll("input", {"type" : "hidden", "name" : "CaptchaId"})
print captcha[0]['value']

#Finding ViewState
viewstate = soup.findAll("input", {"type" : "hidden", "name" : "__VIEWSTATE"})
print viewstate[0]['value']

#Finding eventvalidation
eventval = soup.findAll("input", {"type" : "hidden", "name" : "__EVENTVALIDATION"})
print eventval[0]['value']

这是HTML。这是一个屏幕截图,因为它在没有剪贴板访问的虚拟机中运行。

source bigger

对于上下文,这是另一个“CAPTCHA”,它引导我提出这个问题:

source bigger

提前致谢。 -Phil

1 个答案:

答案 0 :(得分:1)

如果CAPTCHA值得盐,则ID为surrogate ID。将其视为随机生成的数字。 CAPTCHA的要点是这两件事之间的联系是秘密的(仅在服务器上知道),但可以由人解码。如果机器可以做到这一点只是对ID进行逆向工程,那就不是CAPTCHA。

查看格式,这看起来像Microsoft GUID,它是随机生成的数字的组合。它不是编码值,因此无需解码。

机器视觉(OCR)很难做到,但有些项目致力于使用它来破解CAPTCHAS。如果它像对ID进行逆向工程一样简单,那么人们就不会为机器视觉而烦恼。