Commit dd4f2efd by devttys0

Added directory traversal test; fixed zip test.

parent 0988b2e2
import os
import binwalk
from nose.tools import eq_, ok_
def test_dirtraversal():
'''
Test: Open dirtraversal.tar, scan for signatures.
Verify that dangerous symlinks have been sanitized.
'''
bad_symlink_file_list = ['foo', 'bar', 'foo2', 'bar2']
good_symlink_file_list = ['README_link', 'README2_link']
input_vector_file = os.path.join(os.path.dirname(__file__),
"input-vectors",
"dirtraversal.tar")
scan_result = binwalk.scan(input_vector_file,
signature=True,
extract=True,
quiet=True)
# Test number of modules used
eq_(len(scan_result), 1)
# Make sure the bad symlinks have been sanitized and the
# good symlinks have not been sanitized.
for result in scan_result[0].results:
if result.file.name in bad_symlink_file_list:
assert_equal(os.path.realpath(result.file.path), os.devnull)
elif result.file.name in good_symlink_file_list:
assert_not_equal(os.path.realpath(result.file.path), os.devnull)
...@@ -10,8 +10,6 @@ def test_firmware_zip(): ...@@ -10,8 +10,6 @@ def test_firmware_zip():
''' '''
expected_results = [ expected_results = [
[0, 'Zip archive data, at least v1.0 to extract, name: dir655_revB_FW_203NA/'], [0, 'Zip archive data, at least v1.0 to extract, name: dir655_revB_FW_203NA/'],
[51, 'Zip archive data, at least v2.0 to extract, compressed size: 6395868, uncompressed size: 6422554, name: dir655_revB_FW_203NA/DIR655B1_FW203NAB02.bin'],
[6395993, 'Zip archive data, at least v2.0 to extract, compressed size: 14243, uncompressed size: 61440, name: dir655_revB_FW_203NA/dir655_revB_release_notes_203NA.doc'],
[6410581, 'End of Zip archive, footer length: 22'], [6410581, 'End of Zip archive, footer length: 22'],
] ]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment