시작
안녕하세요 :D
이번엔 Level 9 → Level 10
를 풀어보도록 하겠습니다!
root@goorm:/# ssh bandit9@bandit.labs.overthewire.org -p2220
문제
The password for the next level is stored in the file data.txt in one of the few human-readable strings, beginning with several ‘=’ characters.
data.txt
파일 안에 human-readable
, 사람이 읽을 수 있는 문자열로 패스워드가 저장되어 있답니다.
몇 개의 =
문자 뒤에 나온다고 하네요.
지금까지 했던 대로 cat
후에 grep
해보겠습니다.
bandit9@bandit:~$ cat data.txt | grep "===="
Binary file (standard input) matches
Binary file
이기 때문에 grep
명령어가 먹히질 않습니다..
grep
은 바이너리 파일을 처리할 수 없기 때문인데요.
이럴 땐 어떻게 해야 할까요??
grep -a
:-a
옵션으로 인해 바이너리 파일을 텍스트파일처럼 처리할 수 있습니다.
cat data.txt | grep -a "===="
G@?>�|wٝ�c��N���̷X`��UyH%u��L/��^�5�h�M0d>uG��^�\��
�*���Ĝ"a`*��+F��OH��Xy�9��D�P�^L�Ȗ��'
�l��P*���<���a�z���38zT�}4�\H�-S�|�Ҙ� �)Šb�bz%��\\���G��-0���@��^R�l�"S��B+�D�t��
H����FB���ȭ���*�/E\N���ٔz���}�7�g`mNg H�=d����.�G����r1�J��H��Y�c��8�M.M�?]��J���:U[,���g@�b��qs*Y)�%���W̄D
�h`��e�N��V%�!�+c?
Vh�r��[��-�����3�sw���W�P� �o&9�8��T㖶�K3�`�CEhL5d(}��,����h�W��h�Ə
c4|�"�X����m���Y��GB7�ճ&�ե���p����s#�k&K��1����s��֯F�B0�2========== the�X�#��!�n�~�
Q�tR�epO�~c��|�K�$��U��D�^wo���Ӹ�`���^Q���" mV�5ߖT����
Sf2 ��6��r�¼�<CN��x�B�l1͑�
��2|���T�]Sij@)��m'T��I��ʲ<�k�%U��/UG���Y�o���+�` O�a
X���bZ�?���LB��C9��5iu^B�����=2D=`����oD˂�n�Kh��Ȳ=}���"�vH����u9F#e1[u�>��
�C��9'����u�b}7��J��-��n1p A�?R��8�o�@�# �D�O-I�ِH�9�w�1����ߋ� \=��/O�L�@����0���%��TE[S�h� �T$���[<�2n�5���b�
a
%E�j8���n��a;0\�F*s�^"5 �³�=�]���L,7��3EQi�u�)'0U���u
l�_�az|Y+���k�B��B�8.M�9�=�k��7�1�-1T���
�U�!�w]Ov�û�
12����J�Q���< ~k�y@g�Y&�T"u�M<��1���n��;�=QXa��.
�D#w�3�[��`4F<N���51��k�|f���a�[�iF�>{F̮~��c#p
&K����ds��h���6z4����P��ƞ'���}Q�w�2�av5�=|�/
�W�5A���
Ԩ�P�FrZ�YL�@��)2���i����gG
��˴H�+����OaT�v����)��E�M�y�k'r�yU��Tf.�6r�������G �����}����
�
�tf�<��#�/������:�'[�!ǐ/;��+�M��~�B>���SJ�p���97c��c�W�w�=�� ʴt8lHX u�@�����y��'��U�����Aw�'^(�ߍ������m�)�w���P1��
W��_H�Y�Y��ĤdX���*�4�B��� �z0e��g��S�V]�O��J Q`�*TdI�K.:}F1���'�� \Ӽ
�7P
[]���i$2w��t�Z��$��5����e��.f�O��qݡ6������-�G�
uG��)�^����@!g7��L�Ѯ�2���#Gd��; ��岬�MS��v�epg~���|ݞ$q�q�k�mU��hu��z��� �^����*�?�T﷿������0Q�>Q�{]��gU����7f~��e~��%��V�&�
�Ys�|��ƅ��b:�i^eE��
'(U�#O��TӲ����T�m����z��*�S\���g���M&T����þ========== password��Z���
ە�
�'��ϰm
DgdJ�&E�"�Z9I���2�--�0@��]<��
���w�c _<9>Ds��Qc�9�:/�|\4����`Lܔ�����Igzz����G�!�M^,�9Ų6i���//Jr��Ы�]�MF�9�:DLq��1xI���~�
qEk9s��0�ѐNT�(�tQ�P���p%?�hc�纸���Lq�����1�6���.���e�S�E�QO���ci`2�u���H�.��~@��Q�H��u��ړo��T�
_K�T�th��ߦ�{���%
������q��O%��
$�WI�T}�0p��ʦ�m�t�/�G2��8�
�F��P3c([t�' �kmx��Ê^E"�R�� TN�^6 �z�����r�Dw0���y>?+��~X����ʒ��fut�Mf�� �䳷%LˤnW�s�=$�P�:�
H��jgF5X.�T}~_Z]��9�r�4/�K
�93�4��n�@�JT�;���������========== isa�4>�P-+i��_��Z�0u�#��$OGuEz&.���y v�����u3 5wB���+˸�����
K�)�
��I�����-Mz�"���� ~��AG�
z"========== truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk
처리가 되었긴 했는데, 너무 더럽네요 :(
조금 더 깔끔한 방법을 찾아보겠습니다.
strings : 파일에 포함된 문자열을 출력합니다.
strings
를 사용하면 파일 안에 포함된 문자열을 뽑아낼 수 있습니다.
이를 |
를 통해 grep
에게 넘겨준다면 =
문자열 뒤에 나오는 human-readable
텍스트만 출력되겠죠??
bandit9@bandit:~$ strings data.txt | grep "===="
2========== the
========== password
========== isa
========== truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk
bandit10
으로 가는 패스워드는 truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk
였습니다!!
마무리
바이너리 파일을 옵션 없이 grep
할 수 없다는 것을 처음 알았습니다..
그걸 해결하기 위한 -a
옵션이 있다는 것도 신기하네요.
다음엔 Level 10 → Level 11
에서 뵙겠습니다!! :D
'CTF_Write_UP > overthewire' 카테고리의 다른 글
Overthewire : Bandit Level 11 → Level 12 (0) | 2019.04.14 |
---|---|
Overthewire : Bandit Level 10 → Level 11 (0) | 2019.04.13 |
Overthewire : Bandit Level 8 → Level 9 (0) | 2019.04.11 |
Overthewire : Bandit Level 7 → Level 8 (0) | 2019.04.11 |
Overthewire : Bandit Level 6 → Level 7 (0) | 2019.04.11 |