Writeup 2026_0829

crazython - AlpacaHack

1
2
3
4
5
6
7
8
9
#coding:L1
import zlib,hashlib
b=bytes("""x��X�n7��)��D��C�@}��(���Ȇ�E��{gmɽ{0��r9�o���^�<ܟ��=�|��x����q��΀砪�r�ZY\r�BpD�ҫ'�n��'��k*�X:��w�wD4c\r�z����v�Vd� ƈd ���l�Չ�\0�ٰ*�����{ �
w�TM�%(2L�i��4�,���F�:6���T�z= �^X�F��]�I*-��,�-t �,M��6#�G�B�=�Ν�*K.��x�g��)C�'�XSrư�V[p
�'s�
�S���e%s�V��U��,� @�1�RE5Zu��H�-u�[�7h8F�0�JxEK�0�=���A���f�݀�_)>�Mh֓�c� ��&�4 ��[-�R̐%%A�=nIq+[���<H�:T�q�$-������9��i�\r[�eHN�&T�>�n�ii�s�dz�DjS��Қ��jc����8����A�������� j�����u��)�HP��I��F�dNCbKѲ�ag������yf#�`%+(�. 6���U'VŹ��(�1oŇh��\rs�Ҹ�GҨ�5��'� Ҝ�âJbZ\0d�[�[�AB2P�a�B3�iM�dEID8 E��,ك6��3#"2b=m��-�G挜CGa�5��)�hB�SKZQr"ғ��|���<���&�A���K�ɬBNR 3L*���4�0�ZT�jzt�\0Z�*m���J�ݢ�mQO���B��lQ�ފo�����}��p�V�����7�[��-���:5�ud���1D�j\r�h9-½���&b�M�eN�Cm�C��Ok(:cB��jt�>j'紆Z.Ne�tU ���f�Mr�9h��/o�����ͅ����q9��>�.��d�e]�^.�W�O���nq��t�~���ww_�I����wQ8>�D��������/�?Kﯗ�������ߟCn��]�/��Ѯ/��^O_>����e����r�ӭ��/��+��~Q�z<��p�,|����ܫ��������[{|���>.�x�C�z�b��|�}���[>�����ORr>�<�R�b&o""",'L1')
assert hashlib.md5(b).hexdigest()=='c0c42cbe7318e7e7d9c58ca4800e9681','corrupted, you may have broke it during re-saving'

exec(zlib.decompress(b))

print(zlib.decompress(b).decode())した。
フラグ一文字ずつのハッシュ値を比較してるので、フラグの候補になる文字で総当りした。

Emojify - AlpacaHack
secret.jsを見てみると、http://secret:1337/flagにアクセスすることができるとフラグを取得できそうです。
クエリパラメータで?path=hogeをすると、URL(hoge, “http://backend:3000")でURLを新しく作るみたいです。
hogeが絶対パスかつwaf()をうまいこと抜け出すことでhttp://secret:1337/flagにアクセスできました。

shellcode-101 - AlpacaHack
AIに書いてもらったcat flag.txtをバイト列にして投げました。

Author

kiku

Posted on

2026-08-30

Updated on

2026-09-03

Licensed under