异常处理
try/except用于处理异常,在正在运行的程序或脚本的上下文环境中处理错误。
try:
print("[+] 1337/0 ="+str(1337/0))
except:
print("[-] Error.")
可以将异常的报错消息储存到变量e中,以便方便其打印出来,同时需要显示式的将变量e转换成一个字符串。
try:
print("[+] 1337/1 = "+str(1337/0))
except Exception as e:
print("[-] Error="+str(e))
函数
在python中,函数提供了高效的可重用的代码块。通常,这使得程序员能够编写一个用以完成一个任务单一、(与程序的其他部分)高度耦合的操作的代码块。关键字def()表示函数开始。
小脚本用于探测目标主机FTP服务。
import socket
def retBanner(ip,port):
try:
socket.setdefaulttimeout(2)
s = socket.socket()
s.connect((ip,port))
banner = str(s.recv(1024))
return str(banner)
except Exception as e:
print ("[-]Error="+str(e))
def main():
ip1 = '127.168.0.177'
ip2 = '192.168.0.219'
port = 21
banner1 = retBanner(ip1,port)
if banner1:
print('[+]' + ip1 + ':' + banner1)
banner2 = retBanner(ip2,port)
if banner2:
print('[+]' + ip2 + ':' + banner2)
if __name__ == '__main__':
main()
对输出banner值进行检查。
import socket
def retBanner(ip,port):
try:
socket.setdefaulttimeout(2)
s = socket.socket()
s.connect((ip,port))
banner = str(s.recv(1024))
return str(banner)
except Exception as e:
print ("[-]Error="+str(e))
def checkVulns(banner):
if "FTP" in banner:
print("[+]The target FTP OPEN")
else:
print("[-]The target is not vulnerable")
def main():
ip1 = '127.168.0.177'
ip2 = '192.168.0.219'
port = 21
banner1 = retBanner(ip1,port) #在主函数中调用自定义函数retbanner
if banner1:
print('[+]' + ip1 + ':' + banner1)
checkVulns(banner1) #在主函数中调用定义的函数checkvulns
banner2 = retBanner(ip2,port)
if banner2:
print('[+]' + ip2 + ':' + banner2)
checkVulns(banner2) #在主函数中调用定义的函数checkvulns
if __name__ == '__main__':
main()