大致 原理.用 socket 连接对方 WEB 服务器.
先把登陆表单里的表单变量POST到登陆页. 取得设置的SID(可能在URL中,可能在COOKIE中),大部分是COOKIE了. 取得COOKIE 然后.再GET附件URL即可(记得附上取得的COOKIE值.如果你觉得烦,可以找人付费制作.
先把登陆表单里的表单变量POST到登陆页. 取得设置的SID(可能在URL中,可能在COOKIE中),大部分是COOKIE了. 取得COOKIE 然后.再GET附件URL即可(记得附上取得的COOKIE值.如果你觉得烦,可以找人付费制作.
解决方案 »
- php中调用onsubmit的问题
- Apache和MySQL的运行机制是什么?
- MYSQL UPDATE动态更新问题
- PHP运行超时问题,如何超过指定时间后能继续运行后跳到下一页。
- 一个相册系统中,统计一段时间内图片被观看次数的问题
- 想在网站中加上统计访问来源,访问量等信息的功能,不知是否会对服务器带来很大压力,牛人指点,谢谢!
- 如何把800001,800002.......的值传给一个php变量?
- 自己写的程序运行在自己买的服务器上,最近发现mysql运行两三天后,速度会很慢直到死掉,我发现里面有很多locked和sleep进程导致的,这些
- 我觉得 smarty 等模板似乎用处也不是很大, 因为...
- 再给分:怎样判断checkbox被选中了?
- 简单问题,怎么不能得到get方式的值?
- 急!一个发票校正号的问题,比较复杂,高手请进!
先把登陆表单里的表单变量POST到登陆页. 取得设置的SID(可能在URL中,可能在COOKIE中),大部分是COOKIE了. 取得COOKIE 然后.再GET附件URL即可(记得附上取得的COOKIEasp
xml4组建,原理类似,不是socket 编程,直接发送
查看成功后,包头。然后用socket 伪造 包头登陆即可。PS:如果对方网站检验特别严格的话,这种方法可能失败。
Discuz是的登录是使用Cookie的
这样每次操作都需要连接数据库验证用户身份
是不是效率很低?
挺郁闷的
用JavaScript结合XMLHTTP的方法具体如何实现呢?
http://livehttpheaders.mozdev.org/installation.html#
我一般用www.k1m.com 的类,很小巧.功能也不错.
http://www.tianjiaonet.com/blog.php?aid=7&BlogID=1
登录页面:http://bbs.pdafans.com/logging.php?action=login
用户名:testphp
口令:123456
欲获取的html代码的页面:http://bbs.pdafans.com/viewthread.php?tid=14020&extra=page%3D1谢谢。
详细参考手册,另外,PEAR的手册在 pear.php.net 中有下载或者在线看。
/* 构造用户名,密码字符串 */
$str = ("action=login&formhash=be21cb66&referer=index.php&cookietime=2592000&username=testphp&password=123456"); //准备传输登录参数$response = GetWebContent("bbs.pdafans.com","POST /logging.php HTTP/1.0", $str,""); //调用GetWebContent函数
echo $response['location'].$response['content']."<br>"; //显示登录后结果
echo $response['sessid']."<br>"; //显示Session ID号
if ( preg_match('/error\.php/i',$response['location']))
{
echo "登陆失败<br>";
} else {
echo "登陆成功<br>";
// 不可以访问user.php,因为不带sessid参数
$response = GetWebContent("bbs.pdafans.com","GET /viewthread.php HTTP/1.0", 'tid=14020', '');
echo $response['location']."<br>"; // 结果:error.php?errcode=2 // 可以访问user.php
$response = GetWebContent("bbs.pdafans.com","GET /viewthread.php HTTP/1.0", 'tid=14020', $response['sessid']);
echo $response['location']."<br>"; // 结果:user.php
} 请帮看看有什么不足?
不过,具体代码我没时间写.你吧他的代码放在你的服务器上,自己登自己的,若能登成功,那么你吧哪个登陆页面的session,cookie 都打印出来,再用下面代码发送出去,至于如何吧
session,cookie 装入数组,那就是你的事了!function HttpRequire()
{
global $host,$path,$url,$cookieval,$postval,$length,$headers,$html,$link,$port;
/////////////////连上指定端口并发送构造的HTTP报文
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp)
{
echo "$errstr ($errno)<br />\n";
exit();
}
else
{
$out = "POST $link HTTP/1.0\r\n";
$out .= "Host: $host\r\n";
$out .= "User-Agent: Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)\r\n";
$out .= "Referer: $url\r\n";
if(count($cookieval)>0)
{
foreach($cookieval as $k=>$v)
{
$out .= "Cookie: $k=$v;\r\n";
}
}
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Content-Length: $length\r\n";
$out .= "\r\n";
$out .= $postval;
}
fwrite($fp, $out);
$fheader=1;$headers="";$html="";$line="";
while (!feof($fp))
{
$line=fgets($fp, 128);
if($fheader==1)
{
if($line=="\r\n")
$fheader=0;
else
$headers.=$line;
}
else
{
$html.=$line;
}
}
fclose($fp);
}
以上代码是一个网页代理程序的部分,全部代码是我和我同学写的!没好处不给,也没必要给,你说是不!
我们也是新手,希望高手能完善这个代理程序的图片处理部分,链接替换功能!谢谢!<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<!--
编写日期:2005-9-20-----2005-9-30
作者:湘潭大学信息工程学院计算机科学与技术专业2004级计算机五班伍侃&易岳城
说明:本程序仅实现大部分的功能,对图片处理没有做过多细致的工作.欢迎大家修改,但请不要删除本段注释.
-->
<?php
////////////////////////////认证处理
//if(md5($dxtu)!=$mxtu)
//{
// header('location: ../enter.php');
// exit();
//}
$time1=time();////////////////////////////变量定义
// http://localhost/bbs/faq.php?page=usermaint&myid=123456789#6$host=""; //目标地址的HOST名 如localhost
$path=""; //目标的PATH 如/bbs/faq.php
$link=""; //目标的LINK 如/bbs/faq.php?page=usermaint&myid=123456789#6
$cookieval=""; //从用户得到的cookie数组,将发给学校
$postval=""; //从用户得到的POST字符串,将发给学校
$headers=""; //从目标得到的头信息
$html=""; //从目标得到的HTML内容
$port=80; //目标的端口号
$ip="127.0.0.1"; //目标的IP
$filename=""; //目标的文件名///////////////////////////链接部分链接的信息
$serverpath="http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?enter="; //提供链接的路径
$collegepath="";
$schoolpath="";
if(!isset($enter))
$url="http://localhost/bbs/";
else $url=$enter;
/**************************
对url安全处理
****************************/
function safe($a)
{
$a=addslashes($a);
$a=str_replace("_","\_",$a);
$a=str_replace("%","\%",$a);
return $a;
}
/**************************
对目标的ip进行过滤
****************************/
function Allow($ip)
{
////////////////////////////////////////////////////////////////
$schoolnet=array("127.0.0.1");
if(!in_array($ip,$schoolnet))
{ error_messages("您所请求的页面不在可访问列表!");
exit();
}
}
/**************************
发送错误信息
****************************/
function error_messages($why)
{
echo $why;
exit();
}
/**************************
处理所有的url
****************************/
function DealURL()
{
global $url,$host,$path,$link,$schoolpath,$collegepath,$serverpath,$port,$ip,$filename;
/////////////////////处理url得到安全正确的url
$url= preg_replace("/(.*?)['\"](.*?)['\"](.*?)/is","\\2",$url);
$url=str_replace('\\',"",$url);
$url = preg_replace("/ /i", "%20", $url);
$url=safe($url);
$url = preg_replace("/\/\//i", "/", $url);
$url = preg_replace("/:\//i", "://", $url);
//////////////////////得到HOST,IP,处理目标IP是否在可访问列表中
$urlparsed=parse_url($url);
$host=$urlparsed['host'];
$ip=gethostbyname($host);
// Allow($ip);
if(isset($urlparsed['path']))
$path=$urlparsed['path'];
//////////////////////处理得到path中的目录
$array=explode("/",$path);
$dir="";
$filename="";
foreach($array as $k=>$v)
{
if($k<count($array)-1)
$dir=$dir.$v."/";
elseif(strrpos($v, ".")==true)
{
$filename=$v;
break;
}
else $dir=$dir.$v."/";
}
$path=$dir.$filename;
////////////////////得到LINK
if(isset($urlparsed['port']))
$port=$urlparsed['port'];
else $port=80;
$link="";
if(isset($urlparsed['query']))
{
$link.="?$urlparsed[query]";
}
if(isset($urlparsed['fragment']))
{
$link.="#$urlparsed[fragment]";
}
$link=$path.$link;
////////////////////得到学校的dir,不包括文件名
$schoolpath="http://$host:$port".$dir;
////////////////////得到院的dir,不包括文件名,不过要加上学校的IP
$urlparsed=parse_url($serverpath);
$serverhost=$urlparsed['host'];
$tmp_path=$urlparsed['path'];
$array=explode("/",$tmp_path);
$tmp_dir="";
$tmp_filename="";
foreach($array as $k=>$v)
{
if($k<count($array)-1)
$tmp_dir=$tmp_dir.$v."/";
elseif(strrpos($v, ".")==true)
{
$tmp_filename=$v;
break;
}
else $tmp_dir=$tmp_dir.$v."/";
}
$tmp_path=$tmp_dir.$tmp_filename;
$collegepath="http://$serverhost".$tmp_dir."$ip/";
}
/**************************
从用户得到的cookie放到数组中去
****************************/
function FetchCookie()
{
global $cookieval;
$cookieval=$_COOKIE;
}
/**************************
从用户得到的POST组成一字符串
****************************/
function FetchPost()
{
global $postval,$length;
$postval="";
$length=0;
if(count($_POST)>0)
{
foreach($_POST as $k=>$v)
{
$postval .=urlencode($k)."=".urlencode($v)."&";
}
$postval=substr($postval,0,-1);
}
$length=strlen($postval);
}
------------------------
请给个具体链接好吗?找不到呀。您可以帮我解决这个问题吗?谢谢了。Q我103571306或SMS我13423522244
不过只能取得一些。<script>var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
xmlhttp.open("post","http://bbs.pdafans.com/logging.php?action=login",false)
xmlhttp.send()
if (xmlhttp.readyState==4)
document.write("<textarea cols=50 rows=10>"+xmlhttp.getAllResponseHeaders()+"</textarea>")</script>
我给出的只是例子,登陆是不是成功每个网站的做法都不一样的,我的例子里
出错会重定向到error.php页面去,而且其他网站可能不是重定向而是输出错误信息,
搜索错误字符串就可以了。