ASP模拟POST 提交验证码错误问题。请教大神解决办法!

zmh2519 2016-04-20 05:31:37
小弟本地架设了WEB:
http://192.168.1.100/1.asp
想远程POST提交登录www.xxx.com/login.asp。但是这个login.asp需要验证验证码。小弟怎么试。验证码都是错误的。
请问大神们问题出在哪里?
代码如下
http://192.168.1.100/1.asp

<form name='leftForm' id="leftForm" method='post' action='http://192.168.1.101/post.asp' onSubmit="javascript:return checkLogin();">
<table width="500" border="0" cellspacing="5" cellpadding="0">
<tr>
<td align="right">帐号:</td>
<td><input type='text' name='rName' id='rName' class='w120' maxlength='10' /></td>
</tr>
<tr>
<td align="right">密码:</td>
<td><input type='password' name='password' id='password' class='w120 h16' maxlength='12' /></td>
</tr>
<tr>
<td height="35"><div align="center">验证码:
<input name="yzm" type="text" id="yzm" style="font-family: Verdana; font-size: 12px; width: 41; height: 21; border: 1px solid #336600; padding-left: 3px; padding-right: 3px; padding-top: 2px" size="20" maxlength="4" />
<img src="http://www.xxxxx.com/code.asp" alt="换一张" id="safecode" border="0" onclick="reloadcode()" style="cursor:pointer;padding:2px 8px 0pt 3px;" /><a href="javascript:reloadcode()">换一张</a></div></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" class="button" value="登录" />
</td>
</tr>
</table>
</form>

这里提交的表单为本地WEB的http://192.168.1.100/post.asp
而验证码是远程WEB。http://www.xxxxx.com/code.asp
-------------------------------------------------------------------------
http://192.168.1.100/post.asp 代码如下


<%
。。。。。。。。。。。。。。。。。。省略
On error resume next '容错处理

Function GetBody(ips)
Set https = Server.CreateObject("MSXML2.XMLHTTP")
With https
.Open "Post", "http://www.xxx.com/login.asp", False
.setRequestHeader "referer","http://www.xxx.com/login.asp"'
.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
.Send "username="&username&"&pass="&password&"&yzm="&yzm&""
GetBody = .ResponseBody
End With
GetBody = BytesToBstr(GetBody,"GB2312")
Set https = Nothing
End Function

Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function

Response.Write GetBody("")
%>

而提交是正确的。验证码都是错误
...全文
266 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dogfish 2016-04-23
  • 打赏
  • 举报
回复
先生成一个session,然后和提交的对比。 记得要没空格。所有最后trim一下。
tiankong_bear 2016-04-21
  • 打赏
  • 举报
回复
说句实话, 楼上那些“最简单”的方法其实也不简单。。。 没有一定底层开发经验基本没戏 放弃吧,孩子。。
Go 旅城通票 2016-04-21
  • 打赏
  • 举报
回复
引用 6 楼 zmh2519 的回复:
[quote=引用 5 楼 showbo 的回复:] 验证码当然可以,但是你怎么识别是个问题。验证码是要将内容识别出来后发送的,不是直接发图片内容就行的
我是直接 填写远程的验证码地址。<img src="http://www.xxxxx.com/code.asp" 然后手动填写。传给/post.asp 进行处理的,然后传给/post.asp 的验证码。全部都是错的。网上查了好多资料。说什么要COOKIE一起传递啥的[/quote] 或者最简单的方法就是你去他们网站登录后,用开发工具获取登录成功后cookie值,直接发送获取到cookie值到他们网站就可以访问需要验证的页面信息了。。省略掉模拟登录那部分,
Go 旅城通票 2016-04-21
  • 打赏
  • 举报
回复
引用 6 楼 zmh2519 的回复:
[quote=引用 5 楼 showbo 的回复:] 验证码当然可以,但是你怎么识别是个问题。验证码是要将内容识别出来后发送的,不是直接发图片内容就行的
我是直接 填写远程的验证码地址。<img src="http://www.xxxxx.com/code.asp" 然后手动填写。传给/post.asp 进行处理的,然后传给/post.asp 的验证码。全部都是错的。网上查了好多资料。说什么要COOKIE一起传递啥的[/quote] 看连接里面的示例,你人工输入需要用asp请求验证码,然后输出验证码图片,同时用session存储验证码返回的cookie,提交验证码后再次发送验证码和相关账户信息,连带上次请求验证码地址获取到的存储在session的cookie一起发送到验证接口,然后判断是否验证成功,验证成功还需要更新一次cookie存储到session中,然后之后后续的请求都附带cookie就可以获取到需要登录后才能看到的内容了
Go 旅城通票 2016-04-20
  • 打赏
  • 举报
回复
要识别验证码才行,这个用asp搞基本没戏,用asp.net之类的,而且要底层的xhr对象发送cookie asp模拟网站登录采集需要验证的页面信息
slwsss 2016-04-20
  • 打赏
  • 举报
回复
验证码由服务端获取再输出到浏览器 还要传递cookie
zmh2519 2016-04-20
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
验证码当然可以,但是你怎么识别是个问题。验证码是要将内容识别出来后发送的,不是直接发图片内容就行的
我是直接 填写远程的验证码地址。<img src="http://www.xxxxx.com/code.asp" 然后手动填写。传给/post.asp 进行处理的,然后传给/post.asp 的验证码。全部都是错的。网上查了好多资料。说什么要COOKIE一起传递啥的
zmh2519 2016-04-20
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
要识别验证码才行,这个用asp搞基本没戏,用asp.net之类的,而且要底层的xhr对象发送cookie asp模拟网站登录采集需要验证的页面信息
大神。asp无法实现传送验证码吗??
Go 旅城通票 2016-04-20
  • 打赏
  • 举报
回复
引用 4 楼 zmh2519 的回复:
[quote=引用 2 楼 showbo 的回复:] 要识别验证码才行,这个用asp搞基本没戏,用asp.net之类的,而且要底层的xhr对象发送cookie asp模拟网站登录采集需要验证的页面信息
大神。asp无法实现传送验证码吗??[/quote] 验证码当然可以,但是你怎么识别是个问题。验证码是要将内容识别出来后发送的,不是直接发图片内容就行的
zmh2519 2016-04-20
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
验证码由服务端获取再输出到浏览器 还要传递cookie
大神。那具体要怎么弄呢?

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧