-5

Can I get any help figuring out what's wrong with the code? it gives me this error when I run it:

Traceback (most recent call last):
  File "ap_settings.py", line 19, in <module>
    AP_NUMBER = SETTINGS[TEST_SETTINGS_INDEX][0]
IndexError: list index out of range

This is the file ap_settings.py:

# Define variables
# SETTINGS is [ (AP_NUMBER, SAVE_RESULTS, SKIP) ]

TEST_SETTINGS_INDEX = 3

SETTINGS = [
            (0, 0, 0),
            ]

# Defining the fuzzing MAC address device
STA_MAC = "00:20:A6:61:2D:09"

# Defining the injection interface
IFACE   = "ath0"

##### BELOW VARIABLES SHOULD NOT BE TWEAKED BY THE USER

AP_NUMBER = SETTINGS[TEST_SETTINGS_INDEX][0]
SAVE_RESULTS = SETTINGS[TEST_SETTINGS_INDEX][1]
SKIP = SETTINGS[TEST_SETTINGS_INDEX][2]

# Defining fuzzing specific variables
AP = [
        ('kikoo', '00:11:22:33:44:55', 11, 'WPA-PSK'),
        ][AP_NUMBER]

SSID = AP[0]
AP_MAC = AP[1]
CHANNEL = chr(AP[2])
AP_CONFIG = AP[3]

# Defining the number of retries when authenticating/associating to the AP
CRASH_RETRIES = 10
DELAY = 1
STATE_WAIT_TIME = 2
DELAY_REBOOT = 10
LOG_LEVEL = 3
CRASH_THRESHOLD = 3
TRUNCATE = True

# Defining the log file
FNAME = [None, 'audits/ap-%s-%s.session' % (AP_MAC, AP_CONFIG)][SAVE_RESULTS]
Mark Skelton
  • 3,663
  • 4
  • 27
  • 47
  • Have you ever heard of the PEP8 style convention for python? All caps is not proper python style for naming variables. – Mark Skelton Mar 17 '16 at 09:53

2 Answers2

3

At the top of your file you have this:

TEST_SETTINGS_INDEX = 3
SETTINGS = [
            (0, 0, 0),
            ]

Then a little further down you have this:

AP_NUMBER = SETTINGS[TEST_SETTINGS_INDEX][0]
SAVE_RESULTS = SETTINGS[TEST_SETTINGS_INDEX][1]
SKIP = SETTINGS[TEST_SETTINGS_INDEX][2]

You are trying to access index position 3 of SETTINGS because that is what TEST_SETTINGS_INDEX is set to, but SETTINGS only has one item in it, so you should be looking at index 0:

AP_NUMBER = SETTINGS[0][0]
SAVE_RESULTS = SETTINGS[0][1]
SKIP = SETTINGS[0][2]
Pep_8_Guardiola
  • 5,002
  • 1
  • 24
  • 35
0

SETTINGS list contains a tuple of (0,0,0) so basically your list contains only one element. i.e len(SETTINGS)=1

so your code says

AP_NUMBER=SETTINGS[TEST_SETTINGS_INDEX][0]

where TEST_SETTINGS_INDEX=3, i:e

AP_NUMBER=SETTINGS[3][0]

which means you are accessing 3rd element of the list which doesn't exists, that's why you are getting the error 'index out of range'.

Also list contains n elements then to access nth element you need to use n-1. for example

 x = [1,2,3,4] then x[0]=1, x[1]=2, x[2]=3, x[3]=4

So in your case code should be

AP_NUMBER = SETTINGS[0][TEST_SETTINGS_INDEX]

Also since len of tuple in the SETTINGS list is 3 i:e

len((0,0,0)) = 3

Therefore your value of TEST_SETTINGS_INDEX should range from 0 to 2.

AP_NUMBER = SETTINGS[0][0]
AP_NUMBER = SETTINGS[0][1]
AP_NUMBER = SETTINGS[0][2]

For more info refer list and tuples

sumit pandit
  • 963
  • 7
  • 9