27���Ρ���ά�ˤȤ�ERB�Ȥ����դ��ä���褫�ä��Τ��פη��䤵���դˤ���ERB��¤�Ǥ��äƤ��줿��
���ơ��Ȥ�����Ϥɤ�����������
27�����������إ��˥����������ʥ����ڡ���٤Ȥϲ����פϡ���������������ߤ������������פä����狼��ˤ�����Τˤʤä� ����餷���Τǡ������������������ʤ����Ƥߤ롣
�Ȥ���Ϣ�ܤϡ��Ǹ�ޤ��ɤ�ǤߤƤ��ä��礯�����㤤������ä����������� ��Ρ֥��˥�������ȯ��ˡ�פȤ����͡��ߥ��餷�ơ����Υ���äפ���� �餫�齭�äƤ�����
�ɤΤ����꤬�ּ����㤤�פ�ΤʤΤ��������Ĥ��Ƥ�����
ʣ���ڡ����֤ˤ����륻�å�����������뤿��ˡ�Web�֥饦���λ���Cookie�ʥ��å����ˤȤ������Ȥߤ����Ѥ���뤳�Ȥ�¿��������Cookie �Ȥ�����Τϡ�����ȥ桼������Web�ڡ����Υե���������Ϥ����������Ū�˥��饤�����PC����¸���Ƥ�������¸���줿�����Cookie�ȸƤ֡ˡ�Web������¦�Dz��餫�Υե������ɽ������Ȥ���Cookie�����Ȥ����ե������ɽ���ǡ�������������Ȥ�����Τ������Τ��ᡢ���դ��륹�ѥ��������ʤɤ�Cookie�����ȴ�����褦�ʹ٤�����뤵��Ƥ��롣
���ѥ����Υ��˥�������ȯ��ˡ ��1��, ITmedia, 2005ǯ12��1��
�֥ե������ɽ���ǡ����������פȤ����Τ���̣����������ʸ̮�ǡ�cookie�� ȴ����븶����֥��ѥ��������פȤ��Ƥ���Τ������������֤��Τ���פȤ� ����³�줬�����ʸ̮�ˤĤʤ��äƤ��ʤ����ʤ�cookie��ȴ�������Ȥޤ� ���Τ��ȡ�cookie��ȴ������븶���Ȥ���Web���ץ���ȼ������٤� �Ȥ�����
�ޤ����ץ������¦�˥Х����ʤ����Ǥ�Ŀ;�����¸����Ƥ���ե����뼫�ΤΥѡ��ߥå��������ʥե�������ɤ߽Ф���¹Ը��¤ʤɤ�°������ˤ���Ŭ�ڤˤʤäƤ���ȡ����ҤΤ褦�˥֥饦���ǡʥե�����̾�ޤǤΡ�URL��ľ�Ǥ���������ǡ�ï�Ǥ⤽�Υե��������Ƥ����ȤǤ��Ƥ��ޤ����Ȥˤʤ롣
���ѥ����Υ��˥�������ȯ��ˡ ��2��, ITmedia, 2005ǯ12��7��
�ե�����ݸ�������ե�������֤����ǤϤʤ����ե�����Υѡ��ߥå��� ������������ª���Ƥ���Ȥ������������ˤ��ǿͽ�����
�������������Τ����åѥ�ʵ�������Cookie�ϰ����ʤ��פ���ͳ�Ϥ�������� ������Ƥʤ�������ϳ�̥ѥ�����ο��¡פʤ�Ƥ��ʤ���
�֥饦�����ư��륹����ץȥ����ɤȤ��Ƥϡ����褫��JavaScript��¸�ߤ��뤬���Ƕ��JavaScript���ȤΥС�������夬�äƤ��ꡢɽ���Ϥ������Ƥ��롣���դ��륹����ץȥ����ɤ������ä��к����֤����Ƥ��ʤ��ȡ���������PC�������ȴ����Ƥ��ޤ�Ǥ�դΥ����Фʤɤؼ�ư�����Ȥ��ä����Ȥ�Ǥ��Ƥ��ޤ���
IE�ʤɤǻȤ���ActiveX�ϡ����;�ǥ쥸���ȥ���ɤ߽Ф����ǽ�Ȥ��Ƥ��뤿�ḷ�Ť����դ�ɬ�פȤʤ롣��������������椨�ε�ǽ�ǤϤ��뤬���������ƥ�����������ʢ�Ȥ⤤����Τ���
���ѥ����Υ��˥�������ȯ��ˡ ��4�� Perl�ϰ����ʤ�����CGI�������ƥ��ۡ������Ȥ���, ITmedia, 2005ǯ12��20��
�ʤ㤳��㡣�٤Ĥˡ�ɽ���Ϥ������Ƥ���פ櫓����ʤ����� ActiveX�����դ�ɬ�פ��Ȥ��Ƥ٤Ĥˡ֥쥸���ȥ���ɤ߽Ф����ǽ�פ����� �ܼ����������ʤ�������Perl�ϰ����ʤ��פϰ�̣���������� ��CGI�������ƥ��ۡ������Ȥ���פ������Ƥʤ�����
Perl�ϡȼ�³��������ɤΰ��Ǥ��ꡢ���餫�ν�����Ԥ碌�������ˤϡ����餫�����Ѱդ���Ƥ���ؿ���ƤӽФ����Ȥǽ�������ǽ�Ȥʤ롣���Τ��Ȥ�Perl�˸¤餺���ۤ��Υץ�����ߥ���Ǥ�ͤ������Ѥ��ʤ��������̣���뤫�Ȥ����ȡ����Τ褦�ʶ�����
���ѥ����Υ��˥�������ȯ��ˡ ��5��, ITmedia, 2005ǯ12��21��
�ޤä���̵�̤����
�����ȤϤ�����������̵����������Web���ץꥱ�������Υ������ƥ��ۡ�����ȼ����ˤ����٤Ƥʤ��ʤ�Ȥ����櫓�ǤϤʤ��������ޤǥ��˥������ϥ������ƥ��ۡ����XSS���к��Τ���ΰ���ʤˤ����ʤ����Ȥ�ǧ�����Ƥ����Ƥۤ�����ͽ�����̾���ϳ�������ɤ�����Ρ��Ǹ���ڤ껥�ȹͤ��Ƥ����Τ��褤��������
���ѥ����Υ��˥�������ȯ��ˡ ��7�� �����Ф�ʣ�������Ѥ����������ƥ��֥��˥������פȤ�, ITmedia, 2005ǯ12��27��
�ֺǸ���ڤ껥�ס��� �����������������
�ǥ٥��åѡ��Τ���ˤ⤦�����ͤù��������⼨���Ƥ���������ά��
Perl�Ǥϥ����Ȥ��#�פǻϤޤ��Ԥǵ��Ҥ��뤳�Ȥ��Ǥ��롣�����Ȥϥץ�������ư��ˤϲ���ƶ���Ϳ���ʤ���Τ����������������ɤβ��������ɤ����뤿��˻Ĥ���Τ��������Ȥ�Ŭ�ڤ��դ���줿�����ɤϡ����ƥʥ�ɬ�פʤȤ����ɤߤ䤹���ץ������Ȥʤ롣
Perl�Ǥ��ѿ����$�פǻϤޤ�ʸ��������Ѥ��뤳�Ȥ��Ǥ��롣�ץ������ˤ������ѿ��Ϥ���а��Ū�ʥ����ΰ�Ǥ��롣
���ѥ����Υ��˥�������ȯ��ˡ ��7�� �����Ф�ʣ�������Ѥ����������ƥ��֥��˥������פȤ�, ITmedia, 2005ǯ12��27��
�֥ǥ٥��åѡ��פˤȤäƤޤ�ä���̵�̤����
�ºݤν����ϥ������ִ��Ȥ�������ץ�ʤ�Τ������ץ����������ν����ǤϤʤ�����ճ��ȸ���Ȥ���䤹����
���ѥ����Υ��˥�������ȯ��ˡ ��7�� �����Ф�ʣ�������Ѥ����������ƥ��֥��˥������פȤ�, ITmedia, 2005ǯ12��27��
��̣������
����饤��å��֥��ѥ����Υ��˥�������ȯ��ˡ�פǤϡ�����ޤǾ���ϳ�������Ф����ɸ���ޤ��ޤʴ���������⤷�Ƥ�����
�֥����Ф�ʣ�������Ѥ����������ƥ��֥��˥������פȤϡפǤϡ�Web���� �ꥱ�������ˤ����륵�˥������λ��Ȥߤ���⤷���ֹ�̯������ͥå����� ���������פȡ֤���CGI������å�����Ƥ��ޤä���ͳ�פǤϡ�Perl����� ��ˤ����ɸ���ν�����������������⤬�����ӥ��ظ��ȤʤäƤ���Web �����Ȥǽ��뤷�ʤ���Фʤ�ʤ��ɸ�Υ��ϥ��Ф������
Ϣ�ܺǸ�Ȥʤ뺣��Υݥ���Ȥϡ�
���ѥ����Υ��˥�������ȯ��ˡ ��8�� , ITmedia, 2005ǯ12��28��
7���Ϣ�ܤ��Ƥ��Ƥ����������Perl��open���äȡ�XSS���Ƥ���������� ���Τ������ˤ�������äƤΤϡ����ꥨ�ʥ���
�֥��˥������פȤ������äƤ���С��ʤ�Ȥʤ�����äݤ�����Τ褦�ʤ�� ���Ǥ��Ƥ��ޤ��Ȥ������֥��˥���������ڤΰ��ƶ���Ĥ��ˤ����ޤ�ã�������� �Ȼפ��Τ餵�줿�������ä���
���Τ褦�ʵ��䤬�ФƤ��뤫�⤷��ʤ���
�֥��˥����������ʡפȤ����Ƥ⡢�������˥����������Ϥ��ȼ����� �Ĥ��Ƥϡ��֡�ʸ����Ϣ��ǹ�������ƥ����Ȥ�ʸˡ�˱����ơ˥ʸ���Υ� �������פ���פȸ����Ф褤�Τ��Ȥ��ơ������ɡ�blog����Τ褦��HTML �����Ϥ��������Web���ץꥱ�������ˤ����Ƥ��к��Τ��ȤϤɤ����ä��� �褤�Τ������줳���֥��˥������פʤ�ʤ��Ρ�
�����ϴ�ñ���֥�����ץȤζػߡס֥�����ץȽ���ס֥�����ץȤ�̵������ �ʤɤ����̤θ��դǸ����Ф褤���ʤ��虜�虜�Ѥʸ��դ�����Ф�ɬ�פ����� �Τ���
��HTML�����ε��������blog���ץ�ʤɤǤϡ�������ץȤν��ɬ�פǤ��� �Ȥ����褦����������Ф褤��
�Ƕ�Ǥϡ���ǽ�ʰ�̣�ǡ֥��˥������פ�Ȥ��ͤ������Ƥ�������ñ��Ȥ��� ��sanitize�ϡ־��Ǥ���פȤ�����̣�����������虜�虜��̣���Ѥ��ơ�̵ ��������פ������ͤ���Ω�Ĥ褦�ˤʤäƤ����������طʤˤϡ������Ϥ��к� ���뤳�Ȥ�����Ǥ���פȤ�����Ŧ���Ф��ơ��ֽ��Ϥ��к����뤳�Ȥ⥵�˥� �����ȸƤӤ����פȤ����ͤ�Ư���Ƥ���Τ�������
�־��Ǥ���פȤ���ɽ���ˤϡ����ѿ��˥���á�����äȾ��DZդ��Ƥ����� �Ȥ����˥奢������褦�˻פ��롣�Ĥޤꡢ���Ϥ��ʳ��ǥѥ��˰�Χ �˾��Ǥ��Ƥ��������Ȥϼ�ͳ�˻Ȥ��Ȥ�����ȯ��������ޤ�ɽ������ ��ΤΤ褦�˻פ��롣�ץ������κǽ��ʤǤ���HTML���ϤΤ��줾��ξ��� ���������������뤳�Ȥ�־��Ǥ���פ�ɽ������ΤϤ���ä��Ի��礤�ʴ� �������롣�������к��˻Ȥ�����դȤ��ƹ����褦�Ȥ����Τ����顢�־� �ǡפǤϻ����ʤ��Τǡ���̵�����פʤɤȤ����ۤʤä������ФƤ����ΤǤ� �ʤ�����
��̵�����פȸƤ֤��餤���ä��顢���ȼ����ӽ��פȸ����Ф褤���������� �����к����̵�����פȸƤ֤��餤���ä��顢���ȼ����ӽ��פȸ����ΤȰ�� �ʤ���
�����ޤǡ֥��˥������פΰ�̣���������Ƥ��ޤ��ȡ��֥��˥������פȸ��� ���Ȥ����Dz��������ˤ�ʤ�ʤ����������ʱ�ñ���Ȥ����ȤǤ������⤽�� �˲�������Ū�ʤ�Τ����뤫�Τ褦�ʽ��������Ф���䤷���̤����ʤ���
�����������Ȥ��äƤ���ȡ��֥��˥������פȤ������դ�Ȥ����������� ��褦�ʿ�ã���ФƤ��ơ��֥��ѥ����Υ��˥�������ȯ��ˡ�פΤ褦��ʵ�� ��������Ƥ��롣
���Х����ƥ��2005ǯ12���ˡ����۵�������Web�� �ץꡦ�������ƥ� ¿�ؤ��ɱҥ饤��ǥ����ƥ�����פȤ��������� �ФƤ��뤬�����ε������ޤ��֥��˥������פ���*1�ˤʤäƤ��롣
������̤ˤ��ơ����ε����ˤϴ�̯�ʤ��Ȥ���Ƥ��롣
���к��Ѥߡפ������ʤ�
����Ǥ��ܻ���ɼԤʤ�С����ˡ��к��Ѥߡפ��⤷��ʤ������������ΰ¿� �����������ͤʤ�������å��ϡ���ȯ�Ԥ��к��ѤߤǤ��뤳�� �����Ⱝ�Ѥ��������������ͤ��褦�ʹ���ѥ�������Ԥ߽Ф���
�۵������� Web���ץꡦ�������ƥ� ¿�ؤ��ɱҥ饤��ǥ����ƥ����, ���Х����ƥ��2005ǯ12���
���к��ѤߤǤ��뤳�Ȥ��Ѥ���פȤ����Τϡ����ä����ɤ�������̣������
�ɤ߿ʤ�Ƥ����ȡ��ɤ���餳��ϼ��Τ��Ȥ�ؤ��Ƥ���褦����
�ǿ��ι����ˡ��Ŭ�����Ƥ������Ȥϡ��桼������Ȥ�SI�٥������ô���Ԥ� �ϲ٤��Ť��������Υƥ��ȤǤ���������������ǿ�ư���ؤ�Ŭ�������䤦�� ��ˡ��������ƥ�������Ȥˤ�륻�����ƥ��ƺ������ӥ���Ŭ�����Ѥ��� ����
�㤨�С���������ɥ�������SQL�����������פȤ���������� �����Υƥ��ȤǤϥƥ��ȹ��ܤȤ��Ƶ�Ť餤�����ι���ϡ����� Ū�˸����Ƥ����SQL������������к��פǤ��ɤ��ʤ���ħ�����롣
����å��ϡ��桼��������������ͤ˥���������Ȥ��������������� �Ȥ����SQL������������к���ռ�˼�롣���˥桼�����������Ͽ�� �ѹ�����褦�ʥ��ץꥱ�������Ǥ��ι��⤬��������С���7�Τ褦��¾�� �Υѥ���ɤ�ͳ�˽������Ƥ��ޤ���
�۵������� Web���ץꡦ�������ƥ� ¿�ؤ��ɱҥ饤��ǥ����ƥ����, ���Х����ƥ��2005ǯ12���
�֥�����ɥ�������SQL������������ (second-order SQL injection)�� �ϡ�Next Genration Security Software����2002ǯ��ȯɽ������ʸ�����̾�դ�����ΤǤ��ꡢ����� �ʲ����ɤ�롣
[Second-Order SQL Injection]
Even if an application always escapes single - quotes, an attacker can still inject SQL as long as data in the database is re-used by the application.
�ʤ��Ȥ����ץꥱ�������˥��륯�����Ȥ������פ��Ƥ��Ƥ⡢ ����ԤϤʤ��⡢�ǡ����١�����Υǡ��������Υ��ץꥱ�������Ǻ����Ѥ� ���Ȥ���SQL�����Ȥ��뤳�Ȥ��Ǥ��롣��
For example, an attacker might register with an application, creating a username
Username: admin'-- Password: password���㤨�С�����Ԥ����ץꥱ����������Ͽ���ơ��桼��̾��admin'--�ס� �ѥ���ɡ�password�פΥ桼��̾���ä��Ȥ��褦����
The application correctly escapes the single quote, resulting in an 'insert' statement like this:
�ʤ��Υ��ץꥱ�������ϥ��륯�����Ȥ����������������פ������Τ褦 ��INSERTʸ������롣��
insert into users values( 123, 'admin''--', 'password', 0xffff)Let's say the application allows a user to change their password. ����
�ʤ��Υ��ץꥱ��������桼���ˤ��Υѥ���ɤ��ѹ����뤳�Ȥ������ ����Ȥ��褦���ˡ�ά��
The query to set the new password might look like this:
�ʿ��ѥ���ɤåȤ��륯����Ϥ���ʴ����ˤʤ뤫�⤷��ʤ�����
sql = "update users set password = '" + newpassword + "' where username = '" + rso("username") + "'"Given the username admin'--, the query produces the following query:
�ʥ桼��̾ admin'-- ��Ϳ������ȡ��ʲ��Υ����꤬����������
update users set password = 'password' where username = 'admin'--'The attacker can therefore set the admin password to the value of their choice, by registering as a user called admin'--.
�ʤ������äƹ���Ԥϡ�admin'-- �Ȥ����桼������Ͽ���뤳�Ȥˤ�äơ�admin �Υѥ���ɤ�ͳ�˥��åȤǤ��롣��
�����äϡ����Х����ƥ�ۤε�������7�Dz��⤵��Ƥ��롣
������פ���˲��������Τ��Ȥ����ȡ�
sql = "update users set password = '" + newpassword + "' where username = '" + rso("username") + "'"
����ʬ�ǡ�����rso("username")�פ��ͤ��Ф��ơ�'�פΥ������������� ���ʤ��Τ�������
���Τ褦�˽줿�ץ������������ؤ��ơ�
�ȸ����ΤϤ������ʤ�Τ�������Ū�˸����Ƥ����SQL������������к��פǤ��ɤ��ʤ�
�۵������� Web���ץꡦ�������ƥ� ¿�ؤ��ɱҥ饤��ǥ����ƥ����, ���Х����ƥ��2005ǯ12���
������SQL������������к��ϡ�ʸ����Ϣ���SQLʸ�������褦�Ȥ����� �Ƥβս�ǡ���'�פdz�ä���ʬ�������༰���ͤ��Ф��ơ�'�פΥ��������� ������ܤ��Ȥ�����Τ��������ø���ȿ�Ԥ��Ƥ���Ф��Τ褦�ʤ��ȤˤϤ� ��ʤ���
������ˡ�
������������ɥ�������SQL�����������ϡ��������к�����̤� �롣���ι�����ɤ��ˤ����������4�ˡ��ѿ���Ȥ� ��SQLʸ���Ȥ�Ω�ƤƤ��뤹�٤ƤθĽ�ǥ��˥����������סʥ�� �������ƥॽ��塼�����5����Ĺ�һ��������Ȥ��礫���ʤ���
�㤨�С��ǡ����١����˳�Ǽ�Ѥߤ��ͤ����Ѥ�����䡤�ե��������¸���� �ͤ����Ѥ�����ʤɤ⡤ɬ�����˥��������롣
�۵������� Web���ץꡦ�������ƥ� ¿�ؤ��ɱҥ饤��ǥ����ƥ����, ���Х����ƥ��2005ǯ12���
�Ƚ�Ƥ���Τ������ؤ��Ƥ���Τ������������������֤���ˡפȸ� ���ΤϤ������ʤ�Τ������٤Ƥβս�ǥ��������פ���Τ����������ʤΤǤ� �ꡢ�������Ȥ������Ȥ�������٤��Ǥ��롣
����å��ϡ��桼��������������ͤ˥���������Ȥ����� ���������ɤȤ����SQL������������к���ռ�˼�롣
�۵������� Web���ץꡦ�������ƥ� ¿�ؤ��ɱҥ饤��ǥ����ƥ����, ���Х����ƥ��2005ǯ12���
�Ȥ���褦�ˡ����ε����������Ȥ����Ρְ���Ū�˸����Ƥ����к��פȤϡ� ��CGI�����ϥѥ����Ф��ƥ��������פ���פ��Ȥ�����CGI�����ϥѥ� �˰�¸�����ѿ����Ф��ƥ��������פ�ɬ�ספȤ�����ΤʤΤ������������ϡ� �������ͤ˥���������Ȥ����к����������ʤ��פȤ������Ȥ�ϥå���� ���٤�����
�֥��˥������פʤ�Ƹ��դ�ȤäƤ��뤫�顢�������ͤ���̤�פμ������� ƨ����ʤ������˥������ɸ����ΰ��ƶ��Ϥ����������Ǹ���Ƥ��롣
*1 ���Τˤϡ֥��˥������� �Ƚ�Ƥ��롣̵�̤ˡ֥����ˤ��Ƥ���ʬ����������˿��ʲ��Ǥ��� ����Ȥ�������Τ���
���ڹ�������ΤȤ����ǰ����������ꤢ���äƤ���֥��˥����������ʥ����ڡ���פ�̩���˻�Ʊ���Ƥ���ΤǤ�������Ϥ������ʳ���HTML���λ��Ȥؤν������äƤ���CGI��¿��¸�ߤ��Ƥ����������֥��˥������������ʤǤ��٤���ΡפȤ���������Ĺ���Ƥ��ޤä�..
���ڹ������������֥��˥����������ʥ����ڡ���פ�ĥ���Ƥ����ͤǤ����� �֤��㤢�ʤ�ȸ����Ф����Τ��פäơ� �Ȥ�����������ȥ����ǡ� �־��Ǥ���פȤ���ɽ���ˤϡ����ѿ��˥���á�����äȾ��DZդ��Ƥ����פȤ����˥奢������褦�˻פ��롣�Ĥޤꡢ..
���Ǥˤ����ޤǤ������꤬�ʤ�Ǥ����ʳ����٤��˰路�Ƥ��봶�⤢��Τ�����ɤ⡣ ���ڹ���������������Ƕ�Ǥϡ���ǽ�ʰ�̣�ǡ֥��˥������פ�Ȥ��ͤ������Ƥ�������ñ��Ȥ��� ��sanitize�ϡ־��Ǥ���פȤ�����̣�����������虜�虜��̣���Ѥ��ơ�̵ ���������..
������ʸ������Ѵ����������С֥��˥������ѤߡפĤޤ�������ȻפäƤ�͡�¿����Ǥ����͡������ʸ��դϤ��Ф��пͤ����ߤ˴٤�롣
...
�����������֥��˥����������ʥ����ڡ���פ��äƤ���ä����Τǻ��ä��ޤ��� �����ǡ��֥��˥����������ʥ����ڡ���פȤ� ���ڹ�������������� - ³���֥��˥����������ʥ����ڡ���פȤ� ���˥������äƤ������դ�Ȥ�ʤ��褦�ˤ��ޤ��礦�� ��Ȥ�Ȳ���..