ASP小偷程序如何利用XMLHTTP实现表单的提交
程序员文章站
2022-03-04 16:57:33
[原创]asp小偷程序如何利用xmlhttp实现表单的提交以及cookies或session的发送 利用xmlhttp来制作小偷的具体细节落伍很多人都发过和讨论过了,但是在...
[原创]asp小偷程序如何利用xmlhttp实现表单的提交以及cookies或session的发送
利用xmlhttp来制作小偷的具体细节落伍很多人都发过和讨论过了,但是在制作asp小偷的过程中,很多人就发现asp小偷不如php小偷的那么强
大了。确实,如果在原网站如果存在表单提交或cookies的验证,对于asp来说,不使用基于socket的组件就难以完成,其实,xmlhttp的另外两
个方法被我们忽略了,而这正是问题的关键。
下面首先来说说这个方法
1。.send()
由于流行的小偷是使用的get而不是post来传送数据,所以很多人忽略了这个方法,而使用send发送数据也很简单,就是send("内容"),可是,
发送表单就不是这么简单,因为你发送的表单如果是中文的话,就要牵扯到编码的问题了。
首先,你在open 时要确定是用post 即 .open("post",地址,是否异步)
然后,在send里面加上你表单的内容,比如说,你要提交的表单有3个表单域,分别是a,b,c,对应的值分别是1,2,3,那么,你在send里这
样写就可以提交表单了,.send("a=1&b=2&c=3"),怎么样,很简单吧,是不是没想到呢?但是别高兴的太早了,我前面说到了,如果表单的值是
中文的话,数据传输的就会出错了。这里我们借助一个函数escape(),熟悉javascript的朋友都应该知道这个函数的作用了,现在vbscript同样支持这个函数。.send("a=escape('值1')&b=escape('值2')&c=escape('值3')")
2。.setrequestheader()
接着上面的所说,你的数据send出去了,对方却不会接收到,为什么了,其实,那是因为你的http头少了一个东西,然后用这个函数把加上去就可以了,具体就是.setrequestheader("content-type","application/x-www-form-urlencoded"), 告诉对方你是提交了一个urlencode编码的表单。
好的,说完了表单的提交来说怎么传送cookies和session
[ last edited by 墨鼠 on 2005-4-13 at 13:20 ]
其实传送cookies也很简单了,同样利用这个函数在http头里添加东西,比如,我当前在落伍的cookies是
cdb_sid=ybbik0; cdb_cookietime=315360000; cdb_oldtopics=d869008d; cdb_visitedfid=1d45; cdb_auth=aqyhxvfdgerdsggvqa1vyugxqdwfvv1dualwfafrxvwu%2fbaijb1lucg; cdb_fid45=1113370145
现在我要发送这个cookies就直接是.setrequestheader("cookie","cdb_sid=ybbik0; cdb_cookietime=315360000; cdb_oldtopics=d869008d; cdb_visitedfid=1d45; cdb_auth=aqyhxvfdgerdsggvqa1vyugxqdwfvv1dualwfafrxvwu%2fbaijb1lucg; cdb_fid45=1113370145")
当然,有些网站页面有页面判断功能,这个也不难,就是.setrequestheader("referer","来路的绝对地址")
这里还有个重要问题,就是这个方法由于是写http头的,所以不能更改现有的http头,对于怎么用asp获取对方页面的cookies或session并且发出去,就下次在发文说明,请先给个精华吧。
为了偶的墨猫mm,写的累死了:cool:
use xmlhttp's getresponseheader and setrequestheader method
dim logxml, idpw, postxml, info, cookie
idpw="id=abc&pw=pass"
set logxml = server.createobject("microsoft.xmlhttp")
logxml.open "post", "http://myserver/login", false
logxml.send idpw
cookie = logxml.getresponseheader("set-cookie")
info="title=hello&content=world"
set postxml = server.createobject("microsoft.xmlhttp")
postxml.open "post", "http://myserver/post", false
postxml.setrequestheader("cookie",cookie)
postxml.send
利用xmlhttp来制作小偷的具体细节落伍很多人都发过和讨论过了,但是在制作asp小偷的过程中,很多人就发现asp小偷不如php小偷的那么强
大了。确实,如果在原网站如果存在表单提交或cookies的验证,对于asp来说,不使用基于socket的组件就难以完成,其实,xmlhttp的另外两
个方法被我们忽略了,而这正是问题的关键。
下面首先来说说这个方法
1。.send()
由于流行的小偷是使用的get而不是post来传送数据,所以很多人忽略了这个方法,而使用send发送数据也很简单,就是send("内容"),可是,
发送表单就不是这么简单,因为你发送的表单如果是中文的话,就要牵扯到编码的问题了。
首先,你在open 时要确定是用post 即 .open("post",地址,是否异步)
然后,在send里面加上你表单的内容,比如说,你要提交的表单有3个表单域,分别是a,b,c,对应的值分别是1,2,3,那么,你在send里这
样写就可以提交表单了,.send("a=1&b=2&c=3"),怎么样,很简单吧,是不是没想到呢?但是别高兴的太早了,我前面说到了,如果表单的值是
中文的话,数据传输的就会出错了。这里我们借助一个函数escape(),熟悉javascript的朋友都应该知道这个函数的作用了,现在vbscript同样支持这个函数。.send("a=escape('值1')&b=escape('值2')&c=escape('值3')")
2。.setrequestheader()
接着上面的所说,你的数据send出去了,对方却不会接收到,为什么了,其实,那是因为你的http头少了一个东西,然后用这个函数把加上去就可以了,具体就是.setrequestheader("content-type","application/x-www-form-urlencoded"), 告诉对方你是提交了一个urlencode编码的表单。
好的,说完了表单的提交来说怎么传送cookies和session
[ last edited by 墨鼠 on 2005-4-13 at 13:20 ]
其实传送cookies也很简单了,同样利用这个函数在http头里添加东西,比如,我当前在落伍的cookies是
cdb_sid=ybbik0; cdb_cookietime=315360000; cdb_oldtopics=d869008d; cdb_visitedfid=1d45; cdb_auth=aqyhxvfdgerdsggvqa1vyugxqdwfvv1dualwfafrxvwu%2fbaijb1lucg; cdb_fid45=1113370145
现在我要发送这个cookies就直接是.setrequestheader("cookie","cdb_sid=ybbik0; cdb_cookietime=315360000; cdb_oldtopics=d869008d; cdb_visitedfid=1d45; cdb_auth=aqyhxvfdgerdsggvqa1vyugxqdwfvv1dualwfafrxvwu%2fbaijb1lucg; cdb_fid45=1113370145")
当然,有些网站页面有页面判断功能,这个也不难,就是.setrequestheader("referer","来路的绝对地址")
这里还有个重要问题,就是这个方法由于是写http头的,所以不能更改现有的http头,对于怎么用asp获取对方页面的cookies或session并且发出去,就下次在发文说明,请先给个精华吧。
为了偶的墨猫mm,写的累死了:cool:
use xmlhttp's getresponseheader and setrequestheader method
dim logxml, idpw, postxml, info, cookie
idpw="id=abc&pw=pass"
set logxml = server.createobject("microsoft.xmlhttp")
logxml.open "post", "http://myserver/login", false
logxml.send idpw
cookie = logxml.getresponseheader("set-cookie")
info="title=hello&content=world"
set postxml = server.createobject("microsoft.xmlhttp")
postxml.open "post", "http://myserver/post", false
postxml.setrequestheader("cookie",cookie)
postxml.send
上一篇: AJAX 客户端响应速度提高分析
下一篇: ajax poller