�@�ʏ탊���[�g����T�[�oOS�̃R�}���h�����s���邽�߂ɂ́Atelnet��ssh�Ȃǂ��g���ă��O�C�����āA�R�}���h�����s����B�ʏ�Web�T�[�o�ł́A�����̃T�[�r�X�������Ă����Ƃ��Ă����������Ǘ��p�ŁA����ł��g����悤�ɂ͂Ȃ��Ă��Ȃ��͂����B
�@�����ŁAtelnet��ssh�ł͂Ȃ�Web�A�v���P�[�V�������o�R����OS�R�}���h�����s���Ă��܂����A�Ƃ����̂����̍U�����B
�@OS�R�}���h�����s���邱�Ƃ��ł���A�C�ӂ̃t�@�C���̓ǂݏo���E�ύX�E�폜�AOS��f�[�^�x�[�X�̃p�X���[�h�R�����A�ň��̓T�[�o�̊Ǘ��Ҍ����܂ŒD���Ă��܂��ȂǁA��Q�͌v��m��Ȃ��B
�@�قƂ�ǂ̃v���O��������ɂ́A�O���R�}���h�����s������@���p�ӂ���Ă���B
Perl | exec() |
---|---|
system() | |
`command` | |
PHP | exec() |
system() | |
shell_exec() | |
passthru() | |
popen() | |
`command` | |
Java | java.lang.Runtime.exec() |
C���� | exec() |
system() | |
�\2 �e�v���O��������̊O���R�}���h�̎��s���@ |
�@�A�v���P�[�V�������ŊO���R�}���h���g�������Ƃ��ɂ͂����̕��@�𗘗p���邱�ƂɂȂ�̂����A�g���������ƈӐ}���Ă��Ȃ��R�}���h�܂Ŏ��s����Ă��܂����ƂɂȂ�B
void CommandExec(String filename) throws IOException{ Process process = Runtime.getRuntime().exec("cat ../html/"+filename+".html"); // �� exec �R�}���h BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while((line=reader.readLine()) != null){ System.out.println(line); } }
�@exec���\�b�h���g���ăR�}���h�����s���Ă���Bfilename�Ƃ����p�����[�^�[���g���Ă��邪�A����Ƀ��[�U�[���͒l���g���Ă���ꍇ�댯�ƂȂ�B
�@�܂��A�O��Љ��Path Traversal�̖�肪����̂�������Bfilename��../../admin/secret�Ɠ��͂����ƁA�ق��̃f�B���N�g�����̃t�@�C�����\������Ă��܂��B
�@����ł́Afilename�ɂ���ȃp�����[�^������Ƃǂ��Ȃ邾�낤���H
`uname -a>/tmp/out.html;echo ../../../../../../tmp/out`
���̏o�͎͂��̂悤�ɂȂ�B
Linux okd 2.4.20-13.9 #1 Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux
�@�܂�A��L�p�����[�^�̒��Ŏw�肵��uname -a�Ƃ����R�}���h�̎��s���ʂ��o�͂����B�����ł́u`�i�o�b�N�N�I�[�g�j�v���g����OS�R�}���h�����s���������A�ق��ɂ��A
command ; badcommand command && badcommand command | badcommand
�ȂǂƂ�������@�ŁA���ӂ̂���R�}���h�����s�ł���ꍇ������B
�@��́A��������͒l�`�F�b�N�ƃT�j�^�C�W���O���B���͒l�`�F�b�N���m���ɍs���A����������蔲���Ă��܂����ꕶ���ɂ��ăT�j�^�C�W���O���s���B�eOS��R�}���h���̃p�����[�^���g�p����ꏊ�ɂ���Ē��ӂ���K�v��������ꕶ�����قȂ�̂ŁA�������Ȃ��悤�ɂ��Ă������������B
| ! & ` | �R�}���h�̎��s�Ɏg���� |
---|---|
x00 | Null�����B�������t�@�C�����𒆒f���� |
x20 | �����B�p�����[�^�̋��Ɏg���� |
x04 | EOT�����B�t�@�C���̏I���Ɏg���� |
x0D x0A | ���s�����B�lj��R�}���h�̎��s�A���[���̋U���A�t�@�C���̕ύX�Ɏg���� |
x1B | �G�X�P�[�v���� |
x08 | �o�b�N�X�y�[�X�����B���O�t�@�C���̋U���A�t�@�C���̕ύX�Ɏg���� |
x7F | �폜���� |
" ' | ������̋��Ɏg���� |
/ - | �p�����[�^�̎w��Ɏg���� |
* ? | ���K�\���Ŏg���� |
~ . / | �f�B���N�g���w��Ɏg���� |
�t�@�C������Ɏg���� | |
$ | ���ϐ��̎Q�ƂɎg���� |
( { [ ] } ) | �R�}���h�̋��Ɏg���� |
�\3 UNIX�nOS�R�}���h�ł̓��ꕶ�� |
; | & | �R�}���h�̎��s�Ɏg���� |
---|---|
x00 | Null�����B�������t�@�C�����𒆒f���� |
x20 | �����B�p�����[�^�̋��Ɏg���� |
x04 | EOT�����B�t�@�C���̏I�����U������ |
x0A x0D | ���s�����B�lj��R�}���h�̎��s�A���[���̋U���A�t�@�C���̕ύX�Ɏg���� |
x1b | �G�X�P�[�v���� |
x08 | �o�b�N�X�y�[�X�����B���O�t�@�C���̋U���A�t�@�C���̕ύX�Ɏg���� |
x7f | �폜���� |
" | ������̋��Ɏg���� |
/ - | �p�����[�^�̎w��Ɏg���� |
* ? | ���K�\���Ŏg���� |
. \ | �f�B���N�g���w��Ɏg���� |
�t�@�C������Ɏg���� | |
% | ���ϐ��̎Q�ƂɎg���� |
�\4 DOS�nOS�R�}���h�ł̓��ꕶ�� |
�@���ӂ���K�v������̂��A���ڊO���R�}���h���Ăяo�����߂�API�������Ƃ����Ƃ����ł͂Ȃ��B�ق���API�ł��A�O���R�}���h�����s�ł�����AAPI�����I�ɊO���R�}���h���Ăяo���Ă���ꍇ������B
�@���X�g3�́A�O��ڂ����t�@�C����ǂݏo���ďo�͂���Perl�v���O�����ł���B
#!/usr/bin/perl # �w�b�_�����̏o�� &print_header�i�j; # ���C���R���e���c�̏o�� open FILE, "$PARAMETER{file}.html"; while�i<FILE>�j{ print; } # �t�b�^�����̏o�� &print_footer�i�j;
�@�O��Ō�ɁuPath Traversal�̖�肾���łȂ�����Ɋ댯�ȃZ�L�����e�B�z�[�����܂�ł���v�Ƃ������A�����ɂ�OS Command Injection�̖�肪����B
�@Perl��open���ɂ́A�t�@�C�����̐擪�Ɂu|�v������ꍇ�́A�t�@�C�������R�}���h���Ɖ��߂��Ď��s����A�Ƃ����@�\������B��������p���A
|cat+/etc/passwd%00
�Ƃ����l���p�����[�^�ɂ킽�����Ƃɂ���āA
cat /etc/passwd
�Ƃ����R�}���h�����s����邱�ƂɂȂ�B
�@���̂悤�ȉB�ꂽOS�R�}���h�Ăяo��API�����ׂĔc�����Ă����̂́A���̌���̎����܂ŏڍׂɒm���Ă���l�ȊO�ɂ͓�����낤�B�T�j�^�C�W���O���悤�ɂ��A�ǂ̕��������ꕶ���Ȃ̂����c��������Ȃ��B���̂��߂ɂ��A���͒l�`�F�b�N�̒i�K�ň��S�ȕ��������ɐ������Ă��������B
�@����́A�ł��댯�Ǝv����SQL Injection��OS Command Injection�ɂ��ďЉ���B�o���Ƃ���{�I�ɂ͓��͒l�`�F�b�N�ƃT�j�^�C�W���O�ŏ\������ł���B�����̑��XSS�Ɠ��l�Ɏ��ۂ̃v���O���~���O���s���v���O���}�̐ӔC�ł��邩��A��������Ƒ�����Ă����Ă������������B
�@����́A�v���O���~���O�ȑO�̐v�i�K�Ő��荞�ރZ�L�����e�B�z�[���ɂ��Đ�������B
�����T�i������ �䂽���j
�O�䕨�Y�Z�L���A�f�B���N�V�����Ζ��B�Z�L�����e�B�R���T���^���g�Ƃ��āA�s���A�N�Z�X�Ď���Z�L�����e�B�����Ȃǂɏ]�����Ă���B���Z�@�ցA�������A��萻���ƂȂǂւ̃Z�L�����e�B�V �X�e���̓����A�Z�L�����e�B �����Ȃǂ̎��т����B
��ɁA�s���A�N�Z�X�Ď��T�[�r�X�A�Z�L�����e�B�����A�Z�L�����e�B�|���V�[����x���Ȃǂ̃T�[�r�X���Ă���B�܂��A�Z�L�����e�B�Ɋւ��鋳��T�[�r�X�����{���B
Copyright © ITmedia, Inc. All Rights Reserved.