文章来源:先知社区(dazhige )
原文地址:https://xz.aliyun.com/t/7837
故事的开始,是一个老套的任意文件下载漏洞。
发现这个漏洞,自然要利用起来,读读文件。
一看这个的dbconn.asp,就是跟数据库连接有关的,于是读取一下:
连接密码啥的没直接写,不过略微思考就能想到:不写在这个文件里面,那就是写在了web.config里面了。然而直接读取根目录的web.config并没有,一番寻找之后发现在admin/web.config里面。
可惜不能直接连,扫了下端口发现就开了80。
没办法,读了几个文件发现这个系统参数都做了sql过滤,看了下过滤得还挺细,大概是将关键字像单引号、select啥的直接替换掉,想绕估计得找黑名单之外的关键字进行代替,有些麻烦,暂时先放这。
扫目录发现了fckeditor:
然而不能用,fckeditor目录下所有asp文件都不能执行。
这下也没别的办法了,只能找找上传点。
于是我根据目录扫描的结果继续读取后台的文件:
可以看到这个菜单文件,里面没有直接写出后台各个部分的路径。
试试直接访问:
找到源码中对应的部分,发现直接访问也获取不到,估计是没登陆的缘故(后面拿到账户密码证实了这一点)。
没有办法,扫目录没什么进展,而且直接读文件没有找到上传的地方或者其他可利用的点,卡在这里卡了好一会.
经过一番仔细地观察,我发现扫admin子目录的时候,有个report目录,直接访问是403的:
再看上上张图里面的html源代码,正好有个#report超链接。因此,可以大胆的猜测,会有/board、/sys这些与menu.asp这个菜单文件中的菜单同名的目录。
测试发现确实如此:
因为前台的/board目录有附件,所以后台对应应该有上传,于是去猜测/admin/board/这个目录下的文件,最后找到个news.asp,于是读取一下:
根据源码,一路跟踪到news_edit2.asp这个文件才发现上传表单,但是需要登陆:
又迷茫了好一阵。。。
没办法继续找,常规的思维告诉我们,后台的系统设置什么的可能存在上传,比如上传logo什么的,于是我又跑去猜admin/sys目录下的文件:
好家伙,有个upload.asp(前面居然没扫出来。。。),访问:
然而难受的是点击上传之后会跳转到登陆。。。
就当我以为gg的时候,看了眼burp,发现是上传成功了,然后跳转的:
于是开始针对这个上传点,不过直接上传是不行的:
没关系,我们可以读源码:
好家伙,后缀控制得很死。
然而文件名可以钻空子,让我们看看文件名的构成:
ufp = upload.form("schyy")&upload.form("exid")&upload.form("idno") & upload.form("extend") &"."&upfilename(ubound(upfilename))
前面三个参数都是我们可控的,这样我们直接进行在前三个参数进行截断就行了:
这里我还跳转了一下目录,跳到上面一层去了,因为默认的那个目录,不管访问啥都是403:
好家伙,终于拿到了shell:
往期推荐
对某专属厂商的逻辑漏洞挖掘
大力出奇迹—从目录爆破到getshell
某医院管理系统Getshell
浅谈轰炸漏洞攻防思路