File_Upload.script分析
-> = true -> 插件运行结束
-> == false -> 判断是否存在或
startTesting()
1.如果检测到文件传输(
然后调用
2.1如果
2.2如果
3.0如果调用aws s3 调用接口
不管
4.若获得路径(
5.0调用
6.0调用
7.0调用**this.existFileUpload()**判断上传的文件是否可见,如果不可见,将不再测试
8.0调用
这里
9.1
9.2
依次调用**TestFileUpload()
if
(
!await this.TestFileUpload
(
"Applet" + random
(maxRandomNumber
) +
".class",
"image/jpeg", appletPayload, appletPayload
)) await this.TestFileUpload
(
"Applet" + random
(maxRandomNumber
) +
".jar",
"image/jpeg", appletPayload, appletPayload
)
; //
test xss via svg await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".svg",
"application/xml", b642plain
(
"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCjx1c2UgeGxpbms6aHJlZj0iZGF0YTphcHBsaWNhdGlvbi94bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklqNE5DanhrWldaelBnMEtQR05wY21Oc1pTQnBaRDBpZEdWemRDSWdjajBpTlRBaUlHTjRQU0l4TURBaUlHTjVQU0l4TURBaUlITjBlV3hsUFNKbWFXeHNPaUFqUmpBd0lqNE5Danh6WlhRZ1lYUjBjbWxpZFhSbFRtRnRaVDBpWm1sc2JDSWdZWFIwY21saWRYUmxWSGx3WlQwaVExTlRJaUJ2Ym1KbFoybHVQU2RoYkdWeWRDZ3hLU2NnYjI1bGJtUTlKMkZzWlhKMEtESXBKeUIwYnowaUl6QXdSaUlnWW1WbmFXNDlJakZ6SWlCa2RYSTlJalZ6SWlBdlBnMEtQQzlqYVhKamJHVStEUW84TDJSbFpuTStEUW84ZFhObElIaHNhVzVyT21oeVpXWTlJaU4wWlhOMElpOCtEUW84TDNOMlp6NGcjdGVzdCIvPg0KPC9zdmc+ICAg"
),
'<use xlink:href="data:application/xml;base64,',
0,
'svg'
)
; //
test xsscanonUrl
if
(
!await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".htm",
"text/html", b642plain
(
"PHNjcmlwdD5hbGVydCgnc2FuZ2ZvciB4c3MgdGVzdCcpOzwvc2NyaXB0Pg=="
),
"<script>alert('sangfor xss test');</script>",
0,
'html'
)) await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".htm",
"image/jpeg", b642plain
(
"PHNjcmlwdD5hbGVydCgnc2FuZ2ZvciB4c3MgdGVzdCcpOzwvc2NyaXB0Pg=="
),
"<script>alert('sangfor xss test');</script>",
0,
'html'
)
; //
test shell upload ScriptProgress
(ComputeProgress
(
2, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".php",
"image/jpeg", b642plain
(
"/9j/4AAQSkZJRgABAQEASABIAAD//gAyPD9waHAgZWNobyhtZDUoJ3Nhbmdmb3JyLWZpbGUtdXBsb2FkLXRlc3QnKSk7ID8+/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q=="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
3, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".php.php.rar ",
"image/jpeg", b642plain
(
"/9j/4AAQSkZJRgABAQEASABIAAD//gAyPD9waHAgZWNobyhtZDUoJ3Nhbmdmb3JyLWZpbGUtdXBsb2FkLXRlc3QnKSk7ID8+/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q=="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
4, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".php3",
"image/jpeg", b642plain
(
"/9j/4AAQSkZJRgABAQEASABIAAD//gAyPD9waHAgZWNobyhtZDUoJ3Nhbmdmb3JyLWZpbGUtdXBsb2FkLXRlc3QnKSk7ID8+/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q=="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
5, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".php\x00.jpg",
"image/jpeg", b642plain
(
"/9j/4AAQSkZJRgABAQEARwBHAAD//gAyPD9waHAgZWNobyhtZDUoJ3Nhbmdmb3JyLWZpbGUtdXBsb2FkLXRlc3QnKSk7ID8+/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAEAAQAwEiAAIRAQMRAf/EABYAAQEBAAAAAAAAAAAAAAAAAAQAAf/EACIQAAEEAgEEAwAAAAAAAAAAAAIBAwQFBhEHABITMSFBYf/EABUBAQEAAAAAAAAAAAAAAAAAAAQH/8QAIhEBAAECBAcAAAAAAAAAAAAAERIAEwMEFUEiJTJCYqGx/9oADAMBAAIRAxEAPwB1CxxdV8a01pk9Lb3OQ2kmajcaHZymyMQlutivaDqCKIIiKaT5169r1t9H4utONLm1xelt6bIauTCRyNMs5ThNi5LabJe03VEkUSIV2nxv16XovHzvH7IVFhkmT2tfMhx7CG/EYqZZkPklSDbcbeBshRex7e039fvVyA7x+63cWGN5Ra2EybHr4jEN+plgReKVHNxxx420FV7Gd7XX3+dI5vqvfC55BL5VPhlmLiXVeIZ9IAb+9q//2Q=="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
6, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".phtml",
"image/jpeg", b642plain
(
"/9j/4AAQSkZJRgABAQEASABIAAD//gAyPD9waHAgZWNobyhtZDUoJ3Nhbmdmb3JyLWZpbGUtdXBsb2FkLXRlc3QnKSk7ID8+/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q=="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
7, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".php",
"text/plain", b642plain
(
"PD9waHAgZWNobyhtZDUoJ2FjdW5ldGl4LWZpbGUtdXBsb2FkLXRlc3QnKSk7ID8+"
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
8, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".php.jpg",
"image/jpeg", b642plain
(
"/9j/4AAQSkZJRgABAQEASABIAAD//gAyPD9waHAgZWNobyhtZDUoJ3Nhbmdmb3JyLWZpbGUtdXBsb2FkLXRlc3QnKSk7ID8+/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q=="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
9, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".php.123",
"image/png", b642plain
(
"/9j/4AAQSkZJRgABAQEASABIAAD//gAyPD9waHAgZWNobyhtZDUoJ3Nhbmdmb3JyLWZpbGUtdXBsb2FkLXRlc3QnKSk7ID8+/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q=="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
10, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".php::$DATA",
"image/png", b642plain
(
"/9j/4AAQSkZJRgABAQEASABIAAD//gAyPD9waHAgZWNobyhtZDUoJ3Nhbmdmb3JyLWZpbGUtdXBsb2FkLXRlc3QnKSk7ID8+/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q=="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
11, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".htaccess",
"image/jpeg", b642plain
(
"I1Nhbmdmb3IgLmh0YWNjZXNzIEZpbGUgVXBsb2FkIHRlc3QNCkFkZFR5cGUgYXBwbGljYXRpb24veC1odHRwZC1waHAgLmpwZyAucG5nIC5naWYgLmh0bSAuaHRtbCA="
),
"# .htaccess File Upload test"
))
return
; ScriptProgress
(ComputeProgress
(
12, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".php.ajpg",
"image/jpeg", b642plain
(
"/9j/4AAQSkZJRgABAQEARwBHAAD//gAyPD9waHAgZWNobyhtZDUoJ3Nhbmdmb3JyLWZpbGUtdXBsb2FkLXRlc3QnKSk7ID8+/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAEAAQAwEiAAIRAQMRAf/EABYAAQEBAAAAAAAAAAAAAAAAAAQAAf/EACIQAAEEAgEEAwAAAAAAAAAAAAIBAwQFBhEHABITMSFBYf/EABUBAQEAAAAAAAAAAAAAAAAAAAQH/8QAIhEBAAECBAcAAAAAAAAAAAAAERIAEwMEFUEiJTJCYqGx/9oADAMBAAIRAxEAPwB1CxxdV8a01pk9Lb3OQ2kmajcaHZymyMQlutivaDqCKIIiKaT5169r1t9H4utONLm1xelt6bIauTCRyNMs5ThNi5LabJe03VEkUSIV2nxv16XovHzvH7IVFhkmT2tfMhx7CG/EYqZZkPklSDbcbeBshRex7e039fvVyA7x+63cWGN5Ra2EybHr4jEN+plgReKVHNxxx420FV7Gd7XX3+dI5vqvfC55BL5VPhlmLiXVeIZ9IAb+9q//2Q=="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
13, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".asp",
"image/jpeg", b642plain
(
"PCUgUmVzcG9uc2UuV3JpdGUoIjRkMDIwNzBlZmZkZDdlMzE5IiArICJjYTU2MWJjNjY2MTdhOGEiKSAlPg=="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
14, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".aspx",
"image/png", b642plain
(
"PHNjcmlwdCBydW5hdD0ic2VydmVyIiBsYW5ndWFnZT0iQyMiPg0Kdm9pZCBQYWdlX0xvYWQob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpew0KICBSZXNwb25zZS5Xcml0ZSgiNGQwMjA3MGVmZmRkN2UzMTkiICsgImNhNTYxYmM2NjYxN2E4YSIpOw0KfQ0KPC9zY3JpcHQ+DQo="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
15, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".asp",
"text/plain", b642plain
(
"PCUgUmVzcG9uc2UuV3JpdGUoIjRkMDIwNzBlZmZkZDdlMzE5IiArICJjYTU2MWJjNjY2MTdhOGEiKSAlPg=="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
16, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".asp;.jpg",
"image/jpeg", b642plain
(
"PCUgUmVzcG9uc2UuV3JpdGUoIjRkMDIwNzBlZmZkZDdlMzE5IiArICJjYTU2MWJjNjY2MTdhOGEiKSAlPg=="
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
17, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".jsp",
"image/jpeg", b642plain
(
"PCUgb3V0LnByaW50KCI0ZDAyMDcwZWZmZGQ3ZTMxOSIgKyAiY2E1NjFiYzY2NjE3YThhIik7ICU+"
),
"963151c21d0fe4a98606a053e7cc9208"
))
return
; ScriptProgress
(ComputeProgress
(
18, numberTests
))
;
if
(await this.TestFileUpload
(
"SanTest" + random
(maxRandomNumber
) +
".jpg",
"image/jpeg", b642plain
(
"/9j/4AAQSkZJRgABAQEASABIAAD//gAyPD9waHAgZWNobyhtZDUoJ3Nhbmdmb3JyLWZpbGUtdXBsb2FkLXRlc3QnKSk7ID8+/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q=="
),
"963151c21d0fe4a98606a053e7cc9208",
1
))
return
;
prepareUploadURLs()
为所有的文件输入创建数组
判断输入类型是否是文件,如果是则加入到数组
如果
如果
则将数组提交给框架函数
定义数量为数组
运行结束
TestXXEFileUpload()
首先创建一个长度为10的随机值
为所有的文件输入创建
判断输入类型是否是文件,如果是则加入到类
如果类
如果类
对数组
然后依次使用
将这个带有dnslog的文件发包,如果响应包不报错或错误代码为
startTesting()调用方式:
先用**this.TestXXEFileUpload(“SanTest” + random(maxRandomNumber) + “.xml”, “text/xml”)**方式调用,如果返回为false,
则用**this.TestXXEFileUpload(“SanTest” + random(maxRandomNumber) + “.jpg”, “image/jpeg”)**方式调用。
不管上述两次调用结果如何都再用**this.TestXSLTFileUpload(“SanTest” + random(maxRandomNumber) + “.xml”, “text/xml”)**方式调用一次
TestPerlJam2()
初始化变量
构造一个带有
发送带有数据包
TestZipSymlinkUpload()
创建变量
为所有的文件输入创建
判断输入类型是否是文件,如果是则加入到类
如果类
如果类
对数组
然后依次使用
然后发包,如果响应包不报错
先判断响应包中带是否有特殊字符串(root、bin等),有则调用
没有则将响应包的数据进行一次base64解密,解密后的内容如果带有特殊字符串(root、bin等)则调用
TestImageUploadExifXSS()
创建变量
为所有的文件输入创建
判断输入类型是否是文件,如果是则加入到类
如果类
如果类
对数组
然后依次使用
然后发包,如果响应包不报错且html解析之后识别到
TestFileUpload()
1.0为所有的文件输入创建
判断输入类型是否是文件,如果是则加入到类
如果类
如果类
对数组
然后依次使用
然后发包。
如果文件名中带有“
如果响应包不报错
2.1判断**this.uploadURLs[varIndex]
2.2如果
先测试之前判定的文件上传目录,构造url = 扫描路径 + 文件名
2.2.1调用函数
2.2.2调用函数
2.2.3如果2.2.1、2.2.2判断都没成功,则创建变量
如果数组
2.2.4如果2.2.3判断也没有成功,就将变量
2.3 变量
如果变量
如果
随后调用函数**TestUploadedFileOnUrl()**如果返回为true,并且
3.0上述条件都不符合,说明不存在文件上传漏洞,return false
TestUploadedFileOnUrl()
直接发包(发包信息在调用函数时传入),如果响应包中存在变量
existFileUpload()
为所有的文件输入创建
判断输入类型是否是文件,如果是则加入到类
如果类
然后依次使用setInputFileName、setInputContentType、setInputValue从fileInputList中创建文件名、文件类型、文件内的值(随机字符串在这里)
然后发送带有随机字符串的数据包,如果响应包不报错或者错误代码为0xF0003,且响应包内有之前发送的随机字符串则调用