找回密码
 加入
搜索
查看: 10410|回复: 18

[IE类操作] POST 无法登录??[已解决]

 火.. [复制链接]
发表于 2011-1-4 22:32:09 | 显示全部楼层 |阅读模式
本帖最后由 woeiwoei 于 2011-1-11 10:29 编辑

POST 无法登录?哪里出问题了呢?是验证码不对吗?
抓包得到的 数据:

以下是源码:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <File.au3>
$size = FileGetSize (@ScriptFullPath)
Global $url="http://union1.sogou.com/validateCode"
Global $gif = @TempDir&'\sogougou'&$size&'.jpg'
FileInstall("jz.jpg",@TempDir&"\jz.jpg")
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("test", 304, 249, 192, 114)
$Pic1 = GUICtrlCreatePic(@TempDir&"\jz.jpg", 64, 50, 108, 36,BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Label3 = GUICtrlCreateLabel("验证码:", 20, 64, 43, 17)
$Edit1=GUICtrlCreateEdit("", 16, 112, 265, 121)
$Button1 = GUICtrlCreateButton("注册", 216, 16, 59, 25)
$input3=GUICtrlCreateInput("", 184, 64, 89, 21,$ES_NUMBER)
GUISetState(@SW_SHOW)
Sleep(500)
GUICtrlSetData($Edit1,"程序启动成功!"&@CRLF,1)        
#EndRegion ### END Koda GUI section ###
Button1Click()
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        Case $Button1
                   xxx()
        EndSwitch
WEnd

Func xxx()
Dim $oHttp = ObjCreate("winhttp.winhttprequest.5.1")
$cc=GUICtrlRead($input3)
$oHttp.Open("Post", "http://union1.sogou.com", False)
$oHttp.setRequestHeader("Accept","image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/x-ms-xbap, application/x-ms-application, application/QVOD, application/QVOD, */*")
$oHttp.setRequestHeader("Referer", "http://union.sogou.com")
$oHttp.setRequestHeader("Accept-Language", "zh-cn")
$oHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oHttp.setRequestHeader("Accept-Encoding", "gzip, deflate")
$oHttp.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)")
$oHttp.setRequestHeader("Host", "union1.sogou.com")
$oHTTP.setRequestHeader("Content-Length", "51")
$oHTTP.setRequestHeader("Connection", "Keep-Alive")
$oHttp.setRequestHeader("Cache-Control", "no-cache")
$oHttp.setRequestHeader("Cookie", "JSESSIONID=abcndT0qTYJIv6Sc0or1s")
$oHTTP.send("username=xal&password=35345&activecode="&$cc)
_FileWriteLog("log.txt",$oHTTP.responseText)
;MsgBox(0,0,$b)
;ShellExecute("http://union1.sogou.com/index.action")
EndFunc

Func Button1Click()
        download()
        GUICtrlSetImage ($Pic1,$gif)
EndFunc
Func download()
        InetGet ($url,$gif, 1, 0)
EndFunc
大侠们帮忙看看呀~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-1-5 00:14:45 | 显示全部楼层
加密方法对吗?我也在研究加密POST
 楼主| 发表于 2011-1-5 00:56:05 | 显示全部楼层
回复 2# 51ak


   这个是关闭IE 就不能再登录了。。问题好像就是处在cookies上。。
发表于 2011-1-5 09:07:28 | 显示全部楼层
回复 1# woeiwoei

首先,36行有一个非常明显的错误,Winhttp的POST必需大写。

其次,没看懂你验证码怎么获取的。
 楼主| 发表于 2011-1-5 09:37:52 | 显示全部楼层
回复 4# republican


    貌似真的是验证码 出了问题啊,和登录的时候不是同一个验证码??
我POST提交数据前 通过http://union1.sogou.com/validateCode 这个网页获取验证码。
然后POST 数据。。。如果是验证码不能统一的话?大侠有什么好的方法吗?
发表于 2011-1-5 10:17:24 | 显示全部楼层
回复 5# woeiwoei

保持hSession及Cookies一致即可。
发表于 2011-1-5 10:42:16 | 显示全部楼层
回复 1# woeiwoei


    没有账号.... 测试不了,我的程序只能返回账号错误信息
发表于 2011-1-5 11:05:29 | 显示全部楼层
你打开 http://union1.sogou.com的时候验证码就在上面了,这个才是你真正的验证码,单独GET是不行的.
另外,请尝试去了解什么叫Session
 楼主| 发表于 2011-1-5 11:19:36 | 显示全部楼层
回复 7# guland


    由于帐号 涉及了 公司财务方面的东西。不方便提供。所以抱歉了~~
能提供下你的 程序吗?我测试看看。谢谢~~
 楼主| 发表于 2011-1-5 11:23:31 | 显示全部楼层
你打开 的时候验证码就在上面了,这个才是你真正的验证码,单独GET是不行的.
另外,请尝试去了解什么叫Sessio ...
ceoguang 发表于 2011-1-5 11:05


现在问题是 如何解决 验证码统一的问题。。。额。。头大了。。
网站这块是一窍不通啊~~~还有 我POST 登录总帐号后,还要POST 提交其他数据 注册子帐号。
现在是页面一关闭,POST 登录总帐号就 OVER了。提示错误~超时。。。更别说 要登录其他子帐号~
发表于 2011-1-5 11:24:38 | 显示全部楼层
我测试一下看看....
发表于 2011-1-5 11:33:54 | 显示全部楼层
回复 8# ceoguang

验证码的真实地址确实在:http://union1.sogou.com/validateCode 中,需要用Cookies来进行区分。
 楼主| 发表于 2011-1-5 11:39:53 | 显示全部楼层
回复 12# republican


    嗯 是的 。我程序 原来就是 运行从 上述地址加载图片到 我的GUI 中。然后手动 填入。点按钮然后POST 数据。。。我担心的是 读取到的 和 POST 时候验证码不一致。。导致登录失败!

用Cookies 如何区分 验证码呢???
 楼主| 发表于 2011-1-5 11:40:42 | 显示全部楼层
回复 11# lxz


    嘿嘿,谢谢帮忙~~~
 楼主| 发表于 2011-1-5 11:48:24 | 显示全部楼层
刚想了个笨办法 打算 加载页面后 从 C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files 中把 验证码的图片复制出来。。但是复制不到?!WHY??名字也不一样 ~~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-12 15:40 , Processed in 0.094168 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表